fix bugs
This commit is contained in:
parent
f4a6f79f73
commit
072cd7fd7c
121
uart/uart.cpp
121
uart/uart.cpp
@ -516,69 +516,67 @@ void Uart::DealRecvData(const char *pData) {
|
||||
zlog_info(zct, "whereCon = %s", whereCon);
|
||||
array_t vecRes = sqlite_db_ctrl::instance().GetDataMultiLine(T_SENSOR_INFO(TNAME), " dataNodeNo, MeasurementID,hardVersion,softVersion", whereCon);
|
||||
zlog_info(zct, "vecRes = %d", vecRes.size());
|
||||
if(vecRes.size() == 0){
|
||||
zlog_warn(zct, "device info not found %02x%02x ", UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd));
|
||||
return;
|
||||
}
|
||||
std::string hardVersion = vecRes[0][2];
|
||||
std::string softVersion = vecRes[0][3];
|
||||
zlog_info(zct, "shortAdd = %02x%02x,command = %d ",UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd),command);
|
||||
if ((hardVersion == "3.0" && compareVersions(softVersion, "5.0") == -1) || (hardVersion == "4.0" && compareVersions(softVersion, "5.0") == -1)|| (hardVersion == "1.0" && compareVersions(softVersion,"1.2") == -1)) {
|
||||
switch (command) {
|
||||
case DEVICE_INF:
|
||||
DealDataNodeFeature(pData,0);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}else{
|
||||
switch (command) {
|
||||
case DEVICE_INF:
|
||||
DealDataNodeInfo(pData);
|
||||
break;
|
||||
case DEVICE_INF2:
|
||||
DealDataNodeName(pData);
|
||||
break;
|
||||
case ASK_TASK:
|
||||
DealAskTask(ushortAdd);
|
||||
break;
|
||||
case DEVICE_EXCEPTION:
|
||||
DealException(pData);
|
||||
break;
|
||||
case MEAS_EVAL:
|
||||
DealDataNodeFeature(pData, 0);
|
||||
zlog_info(zct, "hardVersion1 = %s,softVersion2 = %s ",hardVersion.c_str(),softVersion.c_str());
|
||||
|
||||
switch (command) {
|
||||
case DEVICE_INF:
|
||||
DealDataNodeInfo(pData);
|
||||
break;
|
||||
case DEVICE_INF2:
|
||||
DealDataNodeName(pData);
|
||||
break;
|
||||
case ASK_TASK:
|
||||
DealAskTask(ushortAdd);
|
||||
break;
|
||||
case DEVICE_EXCEPTION:
|
||||
DealException(pData);
|
||||
break;
|
||||
case MEAS_EVAL:
|
||||
DealDataNodeFeature(pData, 0);
|
||||
DealReviveDuration(ushortAdd);
|
||||
break;
|
||||
case UPGRADE:
|
||||
if (recvcode == 0){
|
||||
DealUpgrade(ushortAdd,2);
|
||||
scheduler::instance().UpgradeResult(ushortAdd,0);
|
||||
zlog_info(zbt, "[UPGRADE SUCCESS] shortAdd = %02x%02x,command = %d,recvcode = %d ",UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd),command,recvcode);
|
||||
}else if (recvcode == 5)
|
||||
{
|
||||
DealUpgrade(ushortAdd,2);
|
||||
scheduler::instance().UpgradeResult(ushortAdd,0);
|
||||
zlog_warn(zbt, "[UPGRADE ALREADY] shortAdd = %02x%02x,command = %d,recvcode = %d ",UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd),command,recvcode);
|
||||
}else
|
||||
{
|
||||
DealUpgrade(ushortAdd,3);
|
||||
scheduler::instance().UpgradeResult(ushortAdd,recvcode);
|
||||
zlog_warn(zbt, "[UPGRADE FAILED] shortAdd = %02x%02x,command = %d,recvcode = %d ",UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd),command,recvcode);
|
||||
}
|
||||
break;
|
||||
case CONFIG:
|
||||
if (recvcode == 0){
|
||||
DealReviveDuration(ushortAdd);
|
||||
break;
|
||||
case UPGRADE:
|
||||
if (recvcode == 0){
|
||||
DealUpgrade(ushortAdd,2);
|
||||
scheduler::instance().UpgradeResult(ushortAdd,0);
|
||||
zlog_info(zbt, "[UPGRADE SUCCESS] shortAdd = %02x%02x,command = %d,recvcode = %d ",UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd),command,recvcode);
|
||||
}else if (recvcode == 5)
|
||||
{
|
||||
DealUpgrade(ushortAdd,2);
|
||||
scheduler::instance().UpgradeResult(ushortAdd,0);
|
||||
zlog_warn(zbt, "[UPGRADE ALREADY] shortAdd = %02x%02x,command = %d,recvcode = %d ",UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd),command,recvcode);
|
||||
}else
|
||||
{
|
||||
DealUpgrade(ushortAdd,3);
|
||||
scheduler::instance().UpgradeResult(ushortAdd,recvcode);
|
||||
zlog_warn(zbt, "[UPGRADE FAILED] shortAdd = %02x%02x,command = %d,recvcode = %d ",UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd),command,recvcode);
|
||||
}
|
||||
break;
|
||||
case CONFIG:
|
||||
if (recvcode == 0){
|
||||
DealReviveDuration(ushortAdd);
|
||||
DealConfig(ushortAdd);
|
||||
}else{
|
||||
scheduler::instance().UpdateConfigResult(ushortAdd,recvcode);
|
||||
zlog_warn(zbt, "[CONFIG] shortAdd = %02x%02x,command = %d,recvcode = %d ",UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd),command,recvcode);
|
||||
}
|
||||
break;
|
||||
case WAVE_COMPRESS:
|
||||
DealWaveCompress(pData,ushortAdd);
|
||||
break;
|
||||
case SIGNAL_STRENGTH:
|
||||
DealSensorRSSI(pData,ushortAdd);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
DealConfig(ushortAdd);
|
||||
}else{
|
||||
scheduler::instance().UpdateConfigResult(ushortAdd,recvcode);
|
||||
zlog_warn(zbt, "[CONFIG] shortAdd = %02x%02x,command = %d,recvcode = %d ",UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd),command,recvcode);
|
||||
}
|
||||
break;
|
||||
case WAVE_COMPRESS:
|
||||
DealWaveCompress(pData,ushortAdd);
|
||||
break;
|
||||
case SIGNAL_STRENGTH:
|
||||
DealSensorRSSI(pData,ushortAdd);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Uart::DealDataNodeName(const char *pData) {
|
||||
@ -697,6 +695,13 @@ void Uart::DealDataNodeInfo(const char *pData) {
|
||||
memset(buf, 0, 32);
|
||||
sprintf(buf, "%.1f", 0.1 * chTemp);
|
||||
dataNodeInfo.HardVersion = std::string(buf);
|
||||
zlog_info(zct, "dataNodeInfo.HardVersion = %s", dataNodeInfo.HardVersion.c_str());
|
||||
if (dataNodeInfo.HardVersion != "3.0" && dataNodeInfo.HardVersion != "4.0" && dataNodeInfo.HardVersion != "1.0") {
|
||||
DealDataNodeFeatureTransition(pData,0);
|
||||
zlog_info(zct, "DealDataNodeFeatureTransition");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
chTemp = pRecvData->Data[10]; //软件版本 1 byte
|
||||
memset(buf, 0, 32);
|
||||
|
||||
@ -1530,6 +1530,7 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
||||
fTemp = (((~iTemp) & 0xffff) + 1) * (-1);
|
||||
}
|
||||
dataStatic.TemBot = fTemp * 0.0625; //设备温度
|
||||
|
||||
|
||||
fTemp = 0;
|
||||
memset(buf, 0, sizeof(buf));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user