UNPKG

obniz

Version:

obniz sdk for javascript

252 lines (158 loc) 6.05 kB
# <a name="i2c">i2c</a> available only i2c0 ## request: <a name="-request-i2c-init_master">init_master</a> internal pull-up is available. But, We recommend use external pull-up resistor. | path | type | conditions | description | |:---- |:---- |:---- |:---- | | `i2cX.mode` | string | <ul><li>required</li><li>const `"master"`</li></ul> | &nbsp; | | `i2cX.sda` | [pinSetting](#pinsetting) | <ul><li>required</li></ul> | &nbsp; | | `i2cX.scl` | [pinSetting](#pinsetting) | <ul><li>required</li></ul> | &nbsp; | | `i2cX.clock` | integer | <ul><li>required</li><li>1 &le; value &le; 1000000</li></ul> | frequency (Hz)&nbsp; | ``` // Json Example [ { "i2c0": { "mode": "master", "sda": 0, "scl": 1, "clock": 500000 } } ] ``` ## request: <a name="-request-i2c-init_slave">init_slave</a> Related item - [/response/i2c/slave](#-response-i2c-slave) | path | type | conditions | description | |:---- |:---- |:---- |:---- | | `i2cX.mode` | string | <ul><li>required</li><li>enum <ul><li>`"master"`</li><li>`"slave"`</li></ul></li></ul> | &nbsp; | | `i2cX.sda` | [pinSetting](#pinsetting) | <ul><li>required</li></ul> | &nbsp; | | `i2cX.scl` | [pinSetting](#pinsetting) | <ul><li>required</li></ul> | &nbsp; | | `i2cX.slave_address` | integer | <ul><li>required</li><li>0 &le; value &le; 1023</li></ul> | &nbsp; | | `i2cX.slave_address_length` | integer | <ul><li>default `7`</li><li>const `7`</li></ul> | &nbsp; | | `i2cX.address` | integer | <ul><li>0 &le; value &le; 1023</li></ul> | &nbsp; | | `i2cX.address_bits` | integer | <ul><li>default `7`</li><li>const `7`</li></ul> | &nbsp; | | `i2cX.data` | [dataArray](#dataarray) | &nbsp; | &nbsp; | | `i2cX.read` | integer | <ul><li>0 &le; value</li></ul> | &nbsp; | ``` // Json Example [ { "i2c0": { "mode": "master", "sda": 0, "scl": 1, "slave_address": 511, "slave_address_length": 7, "address": 511, "address_bits": 7, "data": [16, 34, 242], "read": 500 } } ] ``` ## request: <a name="-request-i2c-write">write</a> if address over 0b01111111; then address treated as 10bit address automatically. or specify address_bits: 10 to force 10bit address mode. | path | type | conditions | description | |:---- |:---- |:---- |:---- | | `i2cX.address` | integer | <ul><li>required</li><li>0 &le; value &le; 1023</li></ul> | &nbsp; | | `i2cX.address_bits` | integer | <ul><li>default `7`</li><li>const `7`</li></ul> | &nbsp; | | `i2cX.data` | [dataArray1024](#dataarray1024) | <ul><li>required</li></ul> | &nbsp; | ``` // Json Example [ { "i2c0": { "address": 511, "address_bits": 7, "data": [100, 255, 21, 0, 21] } } ] ``` ## request: <a name="-request-i2c-read">read</a> if address over 0b01111111; then address treated as 10bit address automatically. or specify address_bits: 10 to force 10bit address mode. Related item - [/response/i2c/master](#-response-i2c-master) | path | type | conditions | description | |:---- |:---- |:---- |:---- | | `i2cX.address` | integer | <ul><li>required</li><li>0 &le; value &le; 1023</li></ul> | &nbsp; | | `i2cX.address_bits` | integer | <ul><li>default `7`</li><li>const `7`</li></ul> | &nbsp; | | `i2cX.read` | integer | <ul><li>required</li><li>0 &le; value &le; 1024</li></ul> | &nbsp; | ``` // Json Example [ { "i2c0": { "address": 511, "address_bits": 7, "read": 512 } } ] ``` ## request: <a name="-request-i2c-deinit">deinit</a> | path | type | conditions | description | |:---- |:---- |:---- |:---- | | `i2cX` | null | <ul><li>required</li></ul> | &nbsp; | ``` // Json Example [ { "i2c0": null } ] ``` ## response: <a name="-response-i2c-master">master</a> | path | type | conditions | description | |:---- |:---- |:---- |:---- | | `i2cX.mode` | string | <ul><li>required</li><li>const `"master"`</li></ul> | &nbsp; | | `i2cX.address` | integer | <ul><li>required</li><li>0 &le; value &le; 1023</li></ul> | &nbsp; | | `i2cX.data` | [dataArray](#dataarray) | <ul><li>required</li></ul> | &nbsp; | ``` //Response Example [ { "i2c0": { "mode": "master", "address": 511, "data": [16, 34, 242] } } ] ``` ## response: <a name="-response-i2c-slave">slave</a> | path | type | conditions | description | |:---- |:---- |:---- |:---- | | `i2cX.mode` | string | <ul><li>required</li><li>const `"slave"`</li></ul> | &nbsp; | | `i2cX.address` | integer | <ul><li>required</li><li>0 &le; value &le; 1023</li></ul> | &nbsp; | | `i2cX.is_fragmented` | boolean | <ul><li>required</li></ul> | &nbsp; | | `i2cX.data` | [dataArray](#dataarray) | <ul><li>required</li></ul> | &nbsp; | ``` //Response Example [ { "i2c0": { "mode": "slave", "address": 511, "is_fragmented": true, "data": [16, 34, 242] } } ] ``` # type defines ## <a name="dataarray">dataArray</a> | type | conditions | examples | description | |:----|:----|:----|:----| | array | <ul><li>items<br/><ul><li>0 &le; value &le; 255</li></ul></li></ul> | <ul><li>`[16, 34, 242]`</li><li>`[100, 255, 21, 0, 21]`</li></ul> | Binary data array.&nbsp; | ## <a name="dataarray1024">dataArray1024</a> | type | conditions | examples | description | |:----|:----|:----|:----| | array | <ul><li>length &le; 1024</li><li>items<br/><ul><li>0 &le; value &le; 255</li></ul></li></ul> | <ul><li>`[100, 255, 21, 0, 21]`</li></ul> | &nbsp; | ## <a name="pinsetting">pinSetting</a> | type | conditions | examples | description | |:----|:----|:----|:----| | integer | <ul><li>0 &le; value &le; 11</li></ul> | <ul><li>`0`</li><li>`1`</li><li>`2`</li><li>`3`</li><li>`4`</li><li>`5`</li><li>`6`</li></ul> | &nbsp; |