Commit Graph

119 Commits

Author SHA1 Message Date
Glenn Ruben Bakke 0865fbd92d nrf5/modules/ubluepy: Register central GAP event handler before issuing connect to a peripheral. Has to be done before connect() function as a connected event will be propergated upon successfull connection. The handler will set the connection handle which gets connect function out of the busy loop waiting for connection to succeed. 2017-05-13 15:06:58 +02:00
Glenn Ruben Bakke 18e73d4214 nrf5/modules/ubluepy: Fixing compilation bug of wrong variable name when registering gattc event handler in ublupy peripheral connect function (central mode). 2017-05-12 20:11:30 +02:00
Glenn Ruben Bakke 54656044f7 nrf5: Syncing code with upstream master and converting all module and method tables to use MP_ROM macros. Also adding explicit casting of local dicts to (mp_obj_dict_t*). 2017-05-09 22:54:58 +02:00
Glenn Ruben Bakke 587c6277c4 nrf5/modules/ubluepy: Adding method Peripheral object to stop any ongoing advertisment. Adding compile guard to only include advertise and advertise_stop if peripheral role is compiled in. 2017-04-04 21:25:28 +02:00
Glenn Ruben Bakke 46c21ff6ba nrf5/modules/ubluepy: Adding support for starting advertisment from BLE UART REPL, by delaying registration of gatt/gatts and gattc handlers until needed in advertise or connect. If non connectable advertisment is selected, handlers in peripheral new is not anymore overriding the other peripheral instances which has set the callbacks. 2017-04-04 20:24:43 +02:00
Glenn Ruben Bakke 0559be4ffc nrf5/bluetooth: Adding possibility to configure whether advertisment should be connectable or not. 2017-04-02 18:34:56 +02:00
Glenn Ruben Bakke f7fbf55a45 nrf5/modules/ubluepy: Open up Peripheral advertise method to pass custom data to the bluetooth driver. Allowing method to allow kwargs only if no args is set. To support setting data kwarg only. 2017-04-02 15:50:07 +02:00
Glenn Ruben Bakke 58238a43b3 nrf5/modules/ubluepy: Adding new members to the ublupy advertisment parameters, to hold custom data payload if set. 2017-04-02 15:48:32 +02:00
Glenn Ruben Bakke 5f645b6c8e nrf5/modules/ubluepy: Adding compile guard for UBLUEPY_CENTRAL around the char_read() call to ble_drv_attr_c_read(). 2017-04-02 00:31:28 +02:00
Glenn Ruben Bakke 33b1028b50 nrf5/modules/ubluepy: Turn all attributes (addr, addr_type and rssi) to method calls instead of using common .attr callback. Adding getScanData implementation, which parses the advertisment data and returns a list of tuples containing (ad_type, desc, value). Description is generated by peeking into the ad_types local dicts map table, and do a reverse lookup on the value to find the QSTR. 2017-04-01 22:43:54 +02:00
Glenn Ruben Bakke bb196a2b09 nrf5/modules/ubluepy: Adding ad_types constants in new object. Linking in ad_types object into the ubluepy.constants local dict. 2017-04-01 22:37:39 +02:00
Glenn Ruben Bakke 0887b95bb9 nrf5/modules/ubluepy: Expose ubluepy constant objects as externs in modubluepy.h to be able to get access to the local dict tables in order to do a reverse lookup on value to resolve QSTR from external modules in c. 2017-04-01 22:34:51 +02:00
Glenn Ruben Bakke 706bc97c92 nrf5/modules/ubluepy: Upon advertisment event, also store the advertisment data. 2017-04-01 22:32:55 +02:00
Glenn Ruben Bakke 276073b494 nrf5/modules/ubluepy: Adding callback function to handle read response if gatt client has issued a read request. Also adding method for returning the uuid instance from the object. 2017-04-01 16:39:51 +02:00
Glenn Ruben Bakke 5a7ab4686c nrf5/modules/ubluepy: Adding value data member to the characteristic object. This can hold the value data when gatt client perform a read and value has to be transferred between interrupt and main thread. 2017-04-01 16:36:15 +02:00
Glenn Ruben Bakke bb7130a813 nrf5/modules/ubluepy: Adding uuid() function to service object to return UUID instance of the service. 2017-03-31 21:52:59 +02:00
Glenn Ruben Bakke f9a351d527 nrf5/modules/ubluepy: Adding binVal() function to the ubluepy UUID object. For now returning the uint16_t value of the UUID as a small integer. 2017-03-31 21:51:57 +02:00
Glenn Ruben Bakke 7c6f041b8c nrf5/modules/ubluepy: Adding dummy function call to ble_drv_attr_c_read. 2017-03-30 23:44:00 +02:00
Glenn Ruben Bakke ebb7925a16 nrf5/modules/ubluepy: Tab-fix 2017-03-30 22:53:25 +02:00
Glenn Ruben Bakke bd2981681f nrf5/modules/ubluepy: Updating peripheral object to handle characteristic discovery (central mode). 2017-03-30 22:47:14 +02:00
Glenn Ruben Bakke 31a71517ab nrf5/modules/ubluepy: Adding start and end handle to service object. 2017-03-30 22:42:08 +02:00
Glenn Ruben Bakke 75148ee6ca nrf5/modules/ubluepy: Updating ubluepy peripheral object to new bluetooth driver API. Starting to populate service objects and uuid objects. Also adding the service to the peripheral object throught the regular static function for adding services. Handle value for the primary service is assuming that it is the first element in the handle range; start_handle reported by the service discovery. 2017-03-29 23:37:32 +02:00
Glenn Ruben Bakke a139d5e8f7 nrf5/modules/ubluepy: Adding some work in progress on service discovery. 2017-03-28 23:40:28 +02:00
Glenn Ruben Bakke c230bc021a nrf5/modules/ubluepy: Update connect method to parse dev_addr parameter and pass it to the bluetooth driver, going through a allocated heap buffer. Adding call to the bluetooth driver to issue a connect. Hardcoding address type for now. 2017-03-26 20:45:21 +02:00
Glenn Ruben Bakke 4d147beedb nrf5/modules/ubluepy: Adding template function for central connect() in peripheral object. 2017-03-25 17:51:52 +01:00
Glenn Ruben Bakke 098e64b122 nrf5/modules/ubluepy: Adding locals dict to Scan Entry introducing function to retreive Scan Data. Not working as expected together with .attr. It looks like locals dict functions are treated to be attributes and cannot be resolved. 2017-03-25 17:39:44 +01:00
Glenn Ruben Bakke 8a884de7b9 nrf5/modules/ubluepy: Return BLE peer address as string instead of bytearray. Updated struct in modubluepy.h to use a mp_obj_t to hold a string instead of a fixed 6-byte array. Stripped down ScanEntry print out to only contain class name, peer address available through addr attribute. 2017-03-22 23:18:41 +01:00
Glenn Ruben Bakke 327754a953 nrf5/bluetooth: capture address type in addition to advertisment type in bluetooth advertisment reports. 2017-03-16 22:46:26 +01:00
Glenn Ruben Bakke 3468972299 nrf5/modules/ubluepy: Correcting rssi member in scan_entry object to be int instead of uint. 2017-03-14 23:18:51 +01:00
Glenn Ruben Bakke 442e46f4be nrf5/modules/ubluepy: Adding attribute to ScanEntry object for getting address (returning bytearray), type (returning int) and rssi (returning int). 2017-03-14 23:14:55 +01:00
Glenn Ruben Bakke 609a174f8d nrf5/modules/ubluepy: Copy address type and rssi to the ScanEntry object upon reception of an advertisment report callback. 2017-03-14 23:13:13 +01:00
Glenn Ruben Bakke 445b45ee13 nrf5/modules/ubluepy: Swapping address bytes when copying bluetooth address over to ScanEntry object during advertisment scan report event. 2017-03-14 22:14:05 +01:00
Glenn Ruben Bakke 08883c619a nrf5/modules/ubluepy: Extending print of ScanEntry object to also include the bluetooth le address. 2017-03-14 22:12:33 +01:00
Glenn Ruben Bakke a444390115 nrf5/modules/ubluepy: Create new adv report list for each individual scan. Create a new ScanEntry object instance on each advertisment event recieved and append this to the current adv_report list. 2017-03-14 21:28:42 +01:00
Glenn Ruben Bakke 9a20d9ca91 nrf5/modules/ubluepy: Adding print function to scan_entry object. 2017-03-14 21:27:29 +01:00
Glenn Ruben Bakke 4a97cfe3ea nrf5/modules/ubluepy: Populating ubluepy_scan_entry_obj_t with members that are interesting to keep for the ScanEntry object. 2017-03-14 08:20:28 +01:00
Glenn Ruben Bakke c066344a14 nrf5/bluetooth: Moving callback definitions to bluetooth driver header. Refactoring bluetooth driver, setting new names on callback functions and updating api to use new callback function name prefix. 2017-03-14 08:13:32 +01:00
Glenn Ruben Bakke e028eda0bc nrf5/modules/ubluepy: Extracting advertisment reports and adding some data to list before returning it in scan() method. 2017-03-14 08:05:54 +01:00
Glenn Ruben Bakke ada69c40c6 nrf5/modules/ubluepy: Adding adv_reports member to scanner object, to hold the result of scan. 2017-03-14 07:57:20 +01:00
Glenn Ruben Bakke 89095f861f nrf5/modules/ubluepy: Adding scan method to the Scanner object. Adding locals dict table. 2017-03-12 19:52:12 +01:00
Glenn Ruben Bakke ee5ecac7cc nrf5/modules/ubluepy: Adding constructor function to scanner object. 2017-03-12 14:40:56 +01:00
Glenn Ruben Bakke 7ea966d844 nrf5/modules/ubluepy: Adding print function to Scanner object. 2017-03-12 14:28:11 +01:00
Glenn Ruben Bakke 851705fc3a nrf5/modules/ubluepy: Disable all functions central related functions in the Peripheral object for now, even if MICROPY_PY_UBLUEPY_CENTRAL is enabled. 2017-03-12 14:27:09 +01:00
Glenn Ruben Bakke 242b40e917 nrf5/modules/ubluepy: Activate Scanner and ScanEntry objects if MICROPY_PY_UBLUPY_CENTRAL is set. 2017-03-12 14:25:49 +01:00
Glenn Ruben Bakke 11c40892ac nrf5/modules/ubluepy: Adding template object typedefs for scanner and scan entry, and extern definition for scanner and scan_entry object type in modubluepy.h 2017-03-12 14:20:41 +01:00
Glenn Ruben Bakke 91652882a9 nrf5/modules/ubluepy: Adding templates for central role Scanner and ScanEntry objects. 2017-03-12 12:34:11 +01:00
Glenn Ruben Bakke df31508d6f nrf5/modules: Updating example in ubluepy header to use handle instead of data length upon reception of an event. 2017-03-03 00:05:09 +01:00
Glenn Ruben Bakke db3dd8bc8b nrf5/modules: Updating ubluepy peripheral to pass handle value to python event handler instead of data length. Data length can be derived from the bytearray structure. 2017-03-03 00:04:13 +01:00
Glenn Ruben Bakke 4efedb67b6 nrf5/modules: Enable ubluepy constants for CONNECT and DISCONNECT for other bluetooth stacks than s132. 2017-03-02 22:43:06 +01:00
Glenn Ruben Bakke bfda169dfe nrf5/modules: Updating ubluepy example to print out gatts write events with data. 2017-02-24 15:08:32 +01:00