Beispiel #1
0
 def __init__(self, content, group_eui, dev_euis, package_length=20, wait_time=10, timeout=30):
     self.content = content
     self.group_eui = group_eui
     self.dev_euis = dev_euis
     self.time_out = 30
     # self._count = 0                                   # 丢失包的设备数
     self._uncompleted_devs = set()                      # device eui uncompleted,单播未完成的设备
     self._device_last_update_time = {}                  # 最后单播发送时间,用于判断这个设备是否还有用,每次单播发送时更新,整个单播过程完成时删除
     self.failed_devs = list()                           # 发送失败的设备
     # self.device_send_failed_flag = {}                 # 单播时设备标志,标志刚发送的包是否失败
     # self.socketio_cli = MSocketIO(LORA_HOST=LORA_PORT, LORA_PORT, EventNameSpace, params={'app_eui': APP_EUI, 'token': TOKEN})
     self.socketio_cli = MSocketIO()
     self.namespace = self.socketio_cli.define(EventNameSpace, path=NAMESPACE)
     self.package_length = package_length
     self.wait_time = wait_time
     self.content = []
     self.namespace.on('post_rx', self.on_post_rx)
     self.namespace.on('connect', self.send)
     for i in range(int(len(content) / package_length) + 1):
         try:
             start = i * package_length
             end = (i + 1) * package_length
             self.content.append(content[start: end])
         except IndexError as e:
             self.content.append(content[i * package_length: ])
Beispiel #2
0
 def __init__(self, eui, send_group=False):
     socketio_cli = MSocketIO()
     namespace = socketio_cli.define(EventNameSpace)
     self.eui = eui
     self.socketio = socketio_cli
     self.namespace = namespace
     self.send_group = send_group
     self.cmd = 'tx' if not send_group else 'mtx'
     self.namespace.on('post_rx', self.on_post_rx)
     self.success = False
Beispiel #3
0
            error_message = ''
            if failed_add_euis + failed_rm_euis:
                error_message = ', '.join(failed_add_euis + failed_rm_euis) + ' 操作失败'
            socketio_cli.disconnect()
            return {'error_message': error_message}, 201

        socketio_cli.disconnect()
        return {'error_message': '组不存在'}, 422


def filter_buses(buses, route_id):
    res = []
    for bus in buses:
        if bus.route_id == route_id:
            res.append(bus)
    return res


def add_group_to_lora_wan_server(group_eui, group_name):
    # todo: 添加组到loraWAN
    pass

if __name__ == '__main__':
    APP_EUI = 'BB7A000000000032'
    TOKEN = '-YAN0Up6nMvbTMre0rdoHg'
    socketio_cli = MSocketIO(LORA_HOST, LORA_PORT, EventNameSpace, params={'app_eui': APP_EUI, 'token': TOKEN})
    event_space = socketio_cli.define(EventNameSpace, path=NAMESPACE)
    event_space.emit('add_dev_into_group', {'group_id': '0000CBF1', 'cmd': 'add_dev_into_group',
                                                        'dev_eui': 'BE00000000000013'})
    print('done!')
    # event_space.emit('')
Beispiel #4
0
                    'rx_window': 2,
                    'data': (chr(0xA2) + chr(0x53)).encode('hex')
                }


class UpLoadCommandSender_2(CommandSender):
    def _wrap_data(self):
        return {
                    'cmd': self.cmd,
                    'EUI': self.eui,
                    'port': 3,
                    'rx_window': 2,
                    'data': (chr(0xA2) + chr(0x54)).encode('hex')
                }



if __name__ == '__main__':
    # group_eui = '0000734E'
    # dev_euis = ['0000000000000002']
    # with open('3HelloNIOT.TXT', 'r') as f:
    #     print('reading file ...')
    #     content = f.read()
    #     start = time.time()
    #     send_manager = GroupSender(content, group_eui, dev_euis, package_length=10)
    #     send_manager.send()
    #     end = time.time()
    #     print('Use %s seconds' %(end - start))
    sockio = MSocketIO()
    command = OpenLightCommandSender('esfasdf', sockio, send_group=True)
    command.send()