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: ])
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
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('')
'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()