コード例 #1
0
 def to_c(self):
     info = driver.ble_gap_enc_info_t()
     info.ltk = util.list_to_uint8_array(self.ltk).cast()
     info.lesc = self.lesc
     info.auth = self.auth
     info.ltk_len = len(self.ltk)
     return info
コード例 #2
0
 def ble_gap_device_name_set(self, name):
     if isinstance(name, str):
         name = name.encode("utf8")
     write_perm = BLEGapSecMode(0, 0).to_c()
     length = len(name)
     data = util.list_to_uint8_array(name).cast()
     return driver.sd_ble_gap_device_name_set(self.rpc_adapter, write_perm, data, length)
コード例 #3
0
ファイル: gatt.py プロジェクト: jiemde/blatann
 def to_c(self):
     self.__data_array = util.list_to_uint8_array(self.value)
     params = driver.ble_gatts_value_t()
     params.offset = self.offset
     params.len = len(self.value)
     params.p_value = self.__data_array.cast()
     return params
コード例 #4
0
 def ble_gap_auth_key_reply(self, conn_handle, key_type, key):
     if key is not None:
         key_buf = util.list_to_uint8_array(key).cast()
     else:
         key_buf = None
     return driver.sd_ble_gap_auth_key_reply(self.rpc_adapter, conn_handle,
                                             key_type, key_buf)
コード例 #5
0
ファイル: gap.py プロジェクト: notmikeb/blatann
 def to_c(self):
     data_list = self.to_list()
     data_len = len(data_list)
     if data_len == 0:
         return data_len, None
     else:
         self.__data_array = util.list_to_uint8_array(data_list)
         return data_len, self.__data_array.cast()
コード例 #6
0
 def ble_gatts_sys_attr_set(self, conn_handle, sys_attr_data, flags=0):
     if sys_attr_data is not None:
         data = util.list_to_uint8_array(sys_attr_data).cast()
         length = len(sys_attr_data)
     else:
         data = None
         length = 0
     return driver.sd_ble_gatts_sys_attr_set(self.rpc_adapter, conn_handle, data, length, flags)
コード例 #7
0
ファイル: gatt.py プロジェクト: jiemde/blatann
    def to_c(self):
        params = driver.ble_gatts_authorize_params_t()
        params.gatt_status = self.gatt_status.value
        params.update = int(self.update)
        params.offset = self.offset

        self.__data_array = util.list_to_uint8_array(self.data)
        params.p_data = self.__data_array.cast()
        params.len = len(self.data)

        return params
コード例 #8
0
    def get_device_name_cfg(self):
        config = driver.ble_cfg_t()
        cfg = config.gap_cfg.device_name_cfg
        cfg.current_len = len(self.device_name)
        cfg.max_len = cfg.current_len
        cfg.p_value = util.list_to_uint8_array(self.device_name).cast()
        cfg.write_perm.sm = 0
        cfg.write_perm.lv = 0
        cfg.vloc = driver.BLE_GATTS_VLOC_USER

        return driver.BLE_GAP_CFG_DEVICE_NAME, config
コード例 #9
0
ファイル: gatt.py プロジェクト: jiemde/blatann
    def to_c(self):
        self.__data_array = util.list_to_uint8_array(self.data)
        write_params = driver.ble_gattc_write_params_t()
        write_params.p_value = self.__data_array.cast()
        write_params.flags = self.flags.value
        write_params.handle = self.handle
        write_params.offset = self.offset
        write_params.len = len(self.data)
        write_params.write_op = self.write_op.value

        return write_params
コード例 #10
0
    def to_c(self):
        irk_key = driver.ble_gap_id_key_t()

        irk = driver.ble_gap_irk_t()
        irk.irk = util.list_to_uint8_array(self.irk).cast()
        irk_key.id_info = irk

        if self.peer_addr:
            addr = self.peer_addr.to_c()
            irk_key.id_addr_info = addr
        return irk_key
コード例 #11
0
ファイル: gatt.py プロジェクト: jiemde/blatann
 def to_c(self):
     self.__data__array = util.list_to_uint8_array(self.value)
     params = driver.ble_gatts_attr_t()
     params.p_uuid = self.uuid.to_c()
     params.p_attr_md = self.attribute_metadata.to_c()
     params.max_len = self.max_len
     # TODO
     if self.value:
         params.init_len = len(self.value)
         params.init_offs = 0
         params.p_value = self.__data__array.cast()
     return params
コード例 #12
0
    def ble_gap_encrypt(self, conn_handle, ediv, rand, ltk, lesc, auth):
        # TODO: Clean up
        # assert isinstance(sec_params, (BLEGapSecParams, NoneType)), 'Invalid argument type'
        # assert isinstance(sec_keyset, BLEGapSecKeyset), 'Invalid argument type'
        # print 'ediv %r' % master_id.ediv
        # print 'rand %r' % util.uint8_array_to_list(master_id.rand, 8)
        # print 'ltk  %r' % util.uint8_array_to_list(enc_info.ltk, enc_info.ltk_len)
        # print 'len  %r' % enc_info.ltk_len
        # print 'lesc %r' % enc_info.lesc
        # print 'auth %r' % enc_info.auth

        rand_arr = util.list_to_uint8_array(rand)
        ltk_arr = util.list_to_uint8_array(ltk)
        master_id = driver.ble_gap_master_id_t()
        master_id.ediv = ediv
        master_id.rand = rand_arr.cast()
        enc_info = driver.ble_gap_enc_info_t()
        enc_info.ltk_len = len(ltk)
        enc_info.ltk = ltk_arr.cast()
        enc_info.lesc = lesc
        enc_info.auth = auth
        return driver.sd_ble_gap_encrypt(self.rpc_adapter, conn_handle,
                                         master_id, enc_info)
コード例 #13
0
ファイル: gatt.py プロジェクト: jiemde/blatann
    def to_c(self):
        params = driver.ble_gatts_hvx_params_t()

        self._len_ptr = driver.new_uint16()
        if self.data:
            self.__data_array = util.list_to_uint8_array(self.data)
            params.p_data = self.__data_array.cast()
            driver.uint16_assign(self._len_ptr, len(self.data))
        else:
            driver.uint16_assign(self._len_ptr, 0)

        params.handle = self.handle
        params.type = self.type.value
        params.offset = self.offset
        params.p_len = self._len_ptr  # TODO: Not sure if this works
        return params
コード例 #14
0
    def to_c(self):
        params = driver.ble_gatts_char_md_t()
        params.char_props = self.char_props.to_c()
        params.char_ext_props = self.extended_props.to_c()
        if self.cccd_metadata:
            params.p_cccd_md = self.cccd_metadata.to_c()
        if self.sccd_metadata:
            params.p_sccd_md = self.sccd_metadata.to_c()
        if self.presentation_format:
            params.p_char_pf = self.presentation_format.to_c()
        if self.user_desc_metadata:
            params.p_user_desc_md = self.user_desc_metadata.to_c()
            self.__user_desc_array = util.list_to_uint8_array(self.user_description)
            params.p_char_user_desc = self.__user_desc_array.cast()
            params.char_user_desc_size = len(self.user_description)
            params.char_user_desc_max_size = max(self.user_description_max_len, len(self.user_description))

        return params
コード例 #15
0
 def ble_gap_auth_key_reply(self, conn_handle, key_type, key):
     key_buf = util.list_to_uint8_array(key)
     return driver.sd_ble_gap_auth_key_reply(self.rpc_adapter, conn_handle,
                                             key_type, key_buf.cast())
コード例 #16
0
 def to_c(self):
     lsb_list = self.base[::-1]
     self.__array = util.list_to_uint8_array(lsb_list)
     uuid = driver.ble_uuid128_t()
     uuid.uuid128 = self.__array.cast()
     return uuid
コード例 #17
0
ファイル: gap.py プロジェクト: notmikeb/blatann
 def to_c(self):
     addr_array = util.list_to_uint8_array(self.addr[::-1])
     addr = driver.ble_gap_addr_t()
     addr.addr_type = self.addr_type.value
     addr.addr = addr_array.cast()
     return addr
コード例 #18
0
 def to_c(self):
     rand_array = util.list_to_uint8_array(self.rand)
     master_id = driver.ble_gap_master_id_t()
     master_id.ediv = self.ediv
     master_id.rand = rand_array.cast()
     return master_id
コード例 #19
0
 def to_c(self):
     key = driver.ble_gap_lesc_p256_pk_t()
     key.pk = util.list_to_uint8_array(self.key).cast()
     return key
コード例 #20
0
 def to_c(self):
     key = driver.ble_gap_sign_info_t()
     key.csrk = util.list_to_uint8_array(self.key).cast()
     return key
コード例 #21
0
    def to_c(self):
        key = driver.ble_gap_lesc_dhkey_t()
        key.key = util.list_to_uint8_array(self.key).cast()

        return key