void ClientSendTask::run(){ #ifdef NETWORK_XBEE XBeeConfig config; config.baudrate = B57600; config.device = _res->getArgv('d'); config.flag = O_WRONLY; _res->getClientList()->authorize(FILE_NAME_CLIENT_LIST); _network = new Network(); if(_network->initialize(config) < 0){ THROW_EXCEPTION(ExFatal, ERRNO_SYS_02, "can't open the client port."); // ABORT } #endif #ifdef NETWORK_UDP _network = _res->getNetwork(); #endif #ifdef NETWORK_XXXXX _network = _res->getNetwork(); #endif while(true){ Event* ev = _res->getClientSendQue()->wait(); if(ev->getEventType() == EtClientSend){ MQTTSnMessage msg = MQTTSnMessage(); ClientNode* clnode = ev->getClientNode(); msg.absorb( clnode->getClientSendMessage() ); _network->unicast(clnode->getAddress64Ptr(), clnode->getAddress16(), msg.getMessagePtr(), msg.getMessageLength()); }else if(ev->getEventType() == EtBroadcast){ MQTTSnMessage msg = MQTTSnMessage(); msg.absorb( ev->getMqttSnMessage() ); _network->broadcast(msg.getMessagePtr(), msg.getMessageLength()); } delete ev; /*uint8_t a = 0x88; printf("No to unicast"); _network->unicast(0, (uint16_t)0x1234, &a, 2);*/ } }
void ClientSendTask::run(){ NETWORK_CONFIG config; #ifdef NETWORK_XBEE char param[TOMYFRAME_PARAM_MAX]; bool secure = true; if(_res->getParam("BaudRate",param) == 0){ int val = atoi(param); switch(val){ case 9600: config.baudrate = B9600; break; case 19200: config.baudrate =B19200; break; case 38400: config.baudrate =B38400; break; case 57600: config.baudrate =B57600; break; case 115200: config.baudrate = B115200; break; default: THROW_EXCEPTION(ExFatal, ERRNO_APL_01, "Invalid baud rate!"); // ABORT } }else{ config.baudrate = B57600; } config.flag = O_WRONLY; if(_res->getParam("SerialDevice", param) == 0){ config.device = strdup(param); } if(_res->getParam("SecureConnection",param) == 0){ if(strcmp(param, "YES")){ secure = false; // TCP } } _res->getClientList()->authorize(FILE_NAME_CLIENT_LIST, secure); _network = new Network(); if(_network->initialize(config) < 0){ THROW_EXCEPTION(ExFatal, ERRNO_APL_01, "can't open the client port."); // ABORT } #endif #ifdef NETWORK_UDP _network = _res->getNetwork(); #endif #ifdef NETWORK_XXXXX _network = _res->getNetwork(); #endif while(true){ Event* ev = _res->getClientSendQue()->wait(); if(ev->getEventType() == EtClientSend){ MQTTSnMessage msg = MQTTSnMessage(); ClientNode* clnode = ev->getClientNode(); msg.absorb( clnode->getClientSendMessage() ); _network->unicast(clnode->getAddress64Ptr(), clnode->getAddress16(), msg.getMessagePtr(), msg.getMessageLength()); }else if(ev->getEventType() == EtBroadcast){ MQTTSnMessage msg = MQTTSnMessage(); msg.absorb( ev->getMqttSnMessage() ); _network->broadcast(msg.getMessagePtr(), msg.getMessageLength()); } delete ev; } }