Commit Graph

235 Commits

Author SHA1 Message Date
Glenn Ruben Bakke
7449f8d861 nrf5/hal/timer: Changing hardcoded hal timer instance base to a lookup, so that IRQ num can be detected automatically without the need of using struct param on it. Size of binary does not increase when using Os. 2017-04-30 19:42:19 +02:00
Glenn Ruben Bakke
071e551b79 nrf5/modules/machine: Updating PWM module with two new kwargs parameters. One for setting pulse with more fine grained. This value should not exceed the period value. Also, adding support for setting PWM mode, whether it is LOW duty cycle or HIGH duty cycle. By default, high to low is set (this could be changed). 2017-04-18 21:00:52 +02:00
Glenn Ruben Bakke
1e79bdf0b4 nrf5/modules/machine: Updating Pin module to register a IRQ callback upon GPIO polarity change events. 2017-04-11 13:58:58 +02:00
Glenn Ruben Bakke
c7c2285ab9 nrf5/modules/machine: Style fix in pin object, indention. 2017-04-09 23:19:26 +02:00
Glenn Ruben Bakke
320b9ecde7 nrf5/modules/machine: Adding placeholder for irq method to pin object class. 2017-04-09 23:18:00 +02:00
Glenn Ruben Bakke
2c90d94dc7 nrf5/modules/machine: Adding pin irq type and basic functions and structures. 2017-04-09 23:16:07 +02:00
Glenn Ruben Bakke
6446105689 nrf5/modules/machine: Removing toggle event trigger as that will be a combination of the rising and falling together. 2017-04-09 21:52:57 +02:00
Glenn Ruben Bakke
32083a9443 nrf5/modules/machine: Adding new constants to pin object for polarity change triggers using the enumerated values in hal_gpio.h. 2017-04-09 21:50:11 +02:00
Glenn Ruben Bakke
d7cfae3639 nrf5/usocket: Removing network modules related to Bluetooth 6lowpan implementation as it depends on SDK libraries for now. Will be moved to seperate working branch. 2017-04-09 18:53:58 +02:00
Glenn Ruben Bakke
4dd86178bc nrf5: Removing custom display, framebuffer and graphics module to make branch contain core components instead of playground modules. 2017-04-09 18:25:15 +02:00
Glenn Ruben Bakke
a026d3475f nrf5/modules/usocket: Updating import of netutils.h after upmerge with upstream master. 2017-04-09 17:48:48 +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
5fc6a9d9a2 nrf5/modules/machine: Cleaning up uart a bit more. Removing unused any() method, and aligning print and local dict names to use machine_uart prefix. 2017-03-13 17:56:39 +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
1aecf560da nrf5/uart: Moving UART from pyb to machine module. 2017-03-10 22:48:43 +01:00
Glenn Ruben Bakke
611b829138 nrf5/uart: Refactoring UART module and HAL driver
Facilitating for adding second HW uart. Moving pyb_uart into
machine_uart. Adding return error codes from hal_uart functions,
if the hardware detects an error.
2017-03-10 22:21:19 +01:00
Glenn Ruben Bakke
f8d1ea80ae nrf5/modules: Updating uart object to allow baudrate configuration. 2017-03-07 23:18:03 +01:00
Glenn Ruben Bakke
2e1335b051 nrf5/modules/machine: Adding __WFI() on machine.deepsleep() 2017-03-06 23:36:36 +01:00
Glenn Ruben Bakke
4e1b9aca79 nrf5/modules/machine: Adding __WFE() on machine.sleep() 2017-03-06 23:35:32 +01:00
Glenn Ruben Bakke
4afa41ac36 nrf5/modules/machine: Adding enable_irq() and disable_irq() method to the machine module. No implementation yet for the case where bluetooth stack is used. 2017-03-06 23:30:56 +01:00
Glenn Ruben Bakke
5acba015ef nrf5/modules/rtc: Adding support for stopping and restarting rtc (if periodic) for all the instances of RTC. 2017-03-06 23:05:03 +01:00
Glenn Ruben Bakke
7c50cd26a2 nrf5/modules: Updating RTC kwarg from type to mode to set ONESHOT or PERIODIC mode. 2017-03-06 22:59:43 +01:00
Glenn Ruben Bakke
3debb43e83 nrf5/modules: Adding support for periodic RTC callback. 2017-03-06 21:33:29 +01:00
Glenn Ruben Bakke
f50a56dbb5 nrf5/modules: Updating rtc module with non-const machine object list in order to allow setting callback function in constructor. 2017-03-06 20:09:04 +01:00
Glenn Ruben Bakke
7000e0a2a0 nrf5/modules: Moving irq priority settings in RTC object to rtc_init0 when initializing the hardware instances. Also modifying comments a bit. Adding simple example in comment above make_new function on how the object is intended to work. 2017-03-06 01:13:19 +01:00
Glenn Ruben Bakke
1ef7c732e8 nrf5/modules: Added RTC into the machine module globals dict. 2017-03-06 00:56:58 +01:00
Glenn Ruben Bakke
7144696e17 nrf5/modules: Updating rtc module. Not working yet. Updated to align with new hal_rtc interface. Added start and stop methods. Allowing callback function set from init. This should be moved to start function, not set in main. 2017-03-06 00:56:18 +01:00
Glenn Ruben Bakke
9ddd62e73e nrf5/modules: Updating machine uart module to use new hal uart interface name. 2017-03-05 22:37:52 +01:00
Glenn Ruben Bakke
ee5884bfe9 nrf5/modules: Updating readfrom function in machine i2c module to use the new hal function which has been implemented. 2017-03-04 21:44:23 +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
glennrub
c1ffac9998 Merge pull request #1 from ajbaabf/nrf5_no_sdk
added support for hardware temperature sensor
2017-02-28 08:33:11 +01:00
Bander Ajba
0e723091f9 minor documentation and extra tabs removal fixes 2017-02-28 09:34:13 +03:00
Bander Ajba
12a6cb0fbf fixed temp module to allow for instance support 2017-02-27 21:46:53 +03:00
Bander Ajba
e52ebb095c fixed temp module to allow for instance support 2017-02-27 21:37:32 +03:00
Bander Ajba
378c40b4da did required modification to merge the temperature sensore module 2017-02-26 11:14:17 +03: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
Bander Ajba
3882b0e2ff added support for hardware temperature sensor 2017-02-24 00:38:08 +03:00
Glenn Ruben Bakke
7fee0cdde1 nrf5/modules: Expose ubluepy characteristic and peripheral types as external declaration in ublupy header. 2017-02-22 19:10:18 +01:00
Glenn Ruben Bakke
acb5c7b4ee nrf5/modules: Updating ubluepy example in header to align with bluetooth uart service characteristic's. 2017-02-20 21:28:07 +01:00
Glenn Ruben Bakke
c9bfcb5bc5 nrf5/modules: Implementing characteristic write method. Possible to use write for both write and notifications. 2017-02-20 21:27:21 +01:00
Glenn Ruben Bakke
601f07cbf2 nrf5/modules: Adding props and attrs parameter to ubluepy characteristic constructor to override default values. Adding method for reading characteristic properties. Adding values to the local dict table that gives possibility to OR together a configuration of properties and attributes in the keyword argument during construction. 2017-02-20 20:28:19 +01:00
Glenn Ruben Bakke
89fc67a9f8 nrf5/modules: Adding new members to ubluepy characteristic object, props and attrs. Adding enum typedefs for various properties and attributes. 2017-02-20 20:22:23 +01:00
Glenn Ruben Bakke
7c0195da6c nrf5/modules: Syncing uart module code after upmerge with upstream master. 2017-02-19 19:06:12 +01:00
Glenn Ruben Bakke
10e7c16351 nrf5/modules: Adding new gatts handler and registration of it during creation of a peripheral object. Also, added forwarding to python callback function (for now the same as for GAP). 2017-02-19 00:10:27 +01:00
Glenn Ruben Bakke
ac14bb4736 nrf5/modules: Adding new callback type in modubluepy for gatts events. 2017-02-19 00:09:11 +01:00
Glenn Ruben Bakke
45144ee8a8 nrf5/modules: Adding constant for CCCD uuid in ubluepy constants dict. 2017-02-18 23:11:12 +01:00
Glenn Ruben Bakke
842b83cbd8 nrf5/modules: Adding template for ubluepy descriptor class implementation. 2017-02-18 22:49:18 +01:00
Glenn Ruben Bakke
6a374dc5a2 nrf5/modules: Adding object structure for ubluepy descriptor. 2017-02-18 22:48:48 +01:00
Glenn Ruben Bakke
9a08ed1a08 nrf5/modules: Adding getCharacteristic method in ublupy service class. This function returns the characteristic with the given UUID if found, else None. The UUID parameter has to be of UUID class type, any other value, like strings will throw an exception. 2017-02-18 18:38:31 +01:00
Glenn Ruben Bakke
71475bb028 nrf5/modules: Updating method documentation in ubluepy peripheral and service. 2017-02-18 18:16:07 +01:00
Glenn Ruben Bakke
655d6c9bcd nrf5/modules: Adding new method, getCharacteristics(), in the ubluepy service class. The method returns the list of characteristics which has been added to the service instance. 2017-02-18 18:14:27 +01:00
Glenn Ruben Bakke
307c2d6aed nrf5/modules: Updating method documentation in ubluepy peripheral class. 2017-02-18 18:12:37 +01:00
Glenn Ruben Bakke
1da82b2aeb nrf5/modules: Updating ubluepy service. Creating empty characteristic list in constructor. Appending characteristic to the list when added. 2017-02-18 18:06:58 +01:00
Glenn Ruben Bakke
15d7353cb3 nrf5/modules: Changed return in ubluepy addService() function to return mp_const_none instead of boolean. 2017-02-18 17:59:10 +01:00
Glenn Ruben Bakke
63ed32ecaa nrf5/modules: Correcting tabbing in ubluepy periheral impl. 2017-02-18 17:57:59 +01:00
Glenn Ruben Bakke
577bf0724a nrf5/modules: Updating ubluepy peripheral. Creating empty service list in constructor. Appending services to the list when added. Added new function for retreiving the service list; getServices(). 2017-02-18 17:57:10 +01:00
Glenn Ruben Bakke
8ffd167d4b nrf5/modules: Adding new members in ubluepy peripheral and service object to keep track of child elements. Peripheral will have a list of services, and service will have a list of charactaristics. 2017-02-18 17:54:47 +01:00