添加波形接收时重发条件,添加可以解析xyz任一波形,添加可以统计特征值次数
This commit is contained in:
parent
d5216b8708
commit
ab34dbd459
@ -338,12 +338,13 @@ struct Param_61 {
|
||||
Param_61() : mMode(0),MeasurementID(""),straxis(""),mPackageFlag(0){};
|
||||
};
|
||||
struct Param_62 {
|
||||
int mMode;
|
||||
std::string MeasurementID;
|
||||
std::string straxis;
|
||||
std::string timeStart;
|
||||
std::string timeEnd;
|
||||
int mPackageFlag;
|
||||
Param_62() : MeasurementID(""),straxis(""),timeStart(""),timeEnd(""),mPackageFlag(0){};
|
||||
Param_62() : mMode(0),MeasurementID(""),straxis(""),timeStart(""),timeEnd(""),mPackageFlag(0){};
|
||||
};
|
||||
struct Param_63 {
|
||||
|
||||
|
||||
@ -892,14 +892,29 @@ std::string JsonData::JsonCmd_Cgi_62(Param_62 ¶m){
|
||||
vec_t vetRes = sqlite_db_ctrl::instance().GetDataMultiLineOfOneColumn(T_SENSOR_INFO(TNAME), T_SENSOR_INFO(DATANODENO), NULL);
|
||||
int nSize = vetRes.size();
|
||||
if (nSize > 0) {
|
||||
char szTableName[100] = {0x00}, whereCon[256] = {0x00};
|
||||
sprintf(szTableName, " receive_wave_status ");
|
||||
|
||||
if(param.straxis == "")
|
||||
sprintf(whereCon, " data_nodeno like '%%%s%%' and timeStamp < '%s' and timeStamp > '%s' ", param.MeasurementID.c_str(), param.timeEnd.c_str(), param.timeStart.c_str());
|
||||
else
|
||||
sprintf(whereCon, " data_nodeno = '%s-%s' and timeStamp < '%s' and timeStamp > '%s' ", param.MeasurementID.c_str(),param.straxis.c_str(), param.timeEnd.c_str(), param.timeStart.c_str());
|
||||
char szTableName[100] = {0x00}, whereCon[256] = {0x00},selectCon[100] = {0x00};
|
||||
if (param.mMode == 1){
|
||||
sprintf(selectCon," dataNodeNo,channelID,timeStamp,sendMsg,nodeResend ");
|
||||
sprintf(szTableName,"t_data_%s",param.MeasurementID.c_str());
|
||||
}else{
|
||||
sprintf(selectCon," * ");
|
||||
sprintf(szTableName, " receive_wave_status ");
|
||||
}
|
||||
|
||||
if(param.straxis == ""){
|
||||
if (param.mMode == 1){
|
||||
sprintf(whereCon, " channelID like '%%%s%%' and timeStamp < '%s' and timeStamp > '%s' ", param.MeasurementID.c_str(), param.timeEnd.c_str(), param.timeStart.c_str());
|
||||
}else{
|
||||
sprintf(whereCon, " data_nodeno like '%%%s%%' and timeStamp < '%s' and timeStamp > '%s' ", param.MeasurementID.c_str(), param.timeEnd.c_str(), param.timeStart.c_str());
|
||||
}
|
||||
}
|
||||
else{
|
||||
if (param.mMode == 1){
|
||||
sprintf(whereCon, " channelID = '%s-%s' and timeStamp < '%s' and timeStamp > '%s' ", param.MeasurementID.c_str(),param.straxis.c_str(), param.timeEnd.c_str(), param.timeStart.c_str());
|
||||
}else{
|
||||
sprintf(whereCon, " data_nodeno = '%s-%s' and timeStamp < '%s' and timeStamp > '%s' ", param.MeasurementID.c_str(),param.straxis.c_str(), param.timeEnd.c_str(), param.timeStart.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
int rows = sqlite_db_ctrl::instance().GetTableRows(szTableName, whereCon);
|
||||
int packgeNo = param.mPackageFlag;
|
||||
@ -930,13 +945,21 @@ std::string JsonData::JsonCmd_Cgi_62(Param_62 ¶m){
|
||||
memset(whereCon, 0x00, sizeof(whereCon));
|
||||
if(param.straxis == "")
|
||||
{
|
||||
sprintf(whereCon, "data_nodeno like '%%%s%%' and timeStamp < '%s' and timeStamp > '%s' order by timeStamp asc LIMIT %d OFFSET %d", param.MeasurementID.c_str(), param.timeEnd.c_str(), param.timeStart.c_str(), 550, packgeNum);
|
||||
if (param.mMode == 1){
|
||||
sprintf(whereCon, " channelID like '%%%s%%' and timeStamp < '%s' and timeStamp > '%s' order by timeStamp asc LIMIT %d OFFSET %d", param.MeasurementID.c_str(), param.timeEnd.c_str(), param.timeStart.c_str(), 550, packgeNum);
|
||||
}else{
|
||||
sprintf(whereCon, " data_nodeno like '%%%s%%' and timeStamp < '%s' and timeStamp > '%s' order by timeStamp asc LIMIT %d OFFSET %d", param.MeasurementID.c_str(), param.timeEnd.c_str(), param.timeStart.c_str(), 550, packgeNum);
|
||||
}
|
||||
}else{
|
||||
sprintf(whereCon, "data_nodeno = %s-%s' and timeStamp < '%s' and timeStamp > '%s' order by timeStamp asc LIMIT %d OFFSET %d", param.MeasurementID.c_str(),param.straxis.c_str(), param.timeEnd.c_str(), param.timeStart.c_str(), 550, packgeNum);
|
||||
if (param.mMode == 1){
|
||||
sprintf(whereCon, " channelID = '%s-%s' and timeStamp < '%s' and timeStamp > '%s' order by timeStamp asc LIMIT %d OFFSET %d", param.MeasurementID.c_str(),param.straxis.c_str(), param.timeEnd.c_str(), param.timeStart.c_str(), 550, packgeNum);
|
||||
}else{
|
||||
sprintf(whereCon, "data_nodeno = %s-%s' and timeStamp < '%s' and timeStamp > '%s' order by timeStamp asc LIMIT %d OFFSET %d", param.MeasurementID.c_str(),param.straxis.c_str(), param.timeEnd.c_str(), param.timeStart.c_str(), 550, packgeNum);
|
||||
}
|
||||
}
|
||||
array_t vecRes;
|
||||
|
||||
vecRes = sqlite_db_ctrl::instance().GetDataMultiLine(szTableName, "*", whereCon);
|
||||
vecRes = sqlite_db_ctrl::instance().GetDataMultiLine(szTableName, selectCon, whereCon);
|
||||
zlog_info(zct, "vecRes = %d", vecRes.size());
|
||||
if (vecRes.size() > 0) {
|
||||
Json::Value jsStaticData;
|
||||
|
||||
@ -431,6 +431,7 @@ std::string LocalServer::HandleCgi_cmd(std::string &pData) {
|
||||
case kWaveReceive:{
|
||||
JsonData jd;
|
||||
Param_62 param;
|
||||
param.mMode = recvBody["type"].asInt();
|
||||
param.mPackageFlag = recvBody["package"].asInt();
|
||||
param.timeStart = recvBody["timeStart"].asString();
|
||||
param.timeEnd = recvBody["timeEnd"].asString();
|
||||
|
||||
@ -63,7 +63,7 @@ int Uart::UartRecv(int fd, char srcshow, char *buffer) {
|
||||
mssleep(10000);
|
||||
wave_trans_ = true;
|
||||
memset(mUartRecvTmpBuf, 0, BUF_LENGTH);
|
||||
zlog_warn(zct, "wave end");
|
||||
zlog_warn(zct, "wave end,now_task = %d", now_task);
|
||||
}
|
||||
mssleep(10000);
|
||||
} else if (ret > 0) {
|
||||
@ -1043,7 +1043,9 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
||||
memset(mUartRecvTmpBuf, 0x00, sizeof(mUartRecvTmpBuf));
|
||||
}
|
||||
memcpy(UartRecvBuf + mlastSize, mUartRecvBuf, bytesRead);
|
||||
|
||||
bool wave_error_x = false;
|
||||
bool wave_error_y = false;
|
||||
bool wave_error_z = false;
|
||||
bytesRead = bytesRead + mlastSize;
|
||||
for (int i = 0; i < bytesRead; i++) {
|
||||
if (UartRecvBuf[i] == head[0]) {
|
||||
@ -1057,18 +1059,34 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
||||
char buf[8] = {0x00};
|
||||
sprintf(buf, "%02d", UartRecvBuf[i + 5]);
|
||||
int command = atoi(buf);
|
||||
//zlog_info(zct, "command = %d ShortAddr :%s", command, strShortAddr.c_str());
|
||||
if ((mPackgeIndex == -1 || (unsigned int)UartRecvBuf[i + 6] == 0) && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z) ) {
|
||||
if (wave_error_x && !wave_error_y && !wave_error_z && command == WAVE_X)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else if ((wave_error_x || wave_error_y) && !wave_error_z && command == WAVE_Y)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ( wave_error_z && command == WAVE_Z)
|
||||
{
|
||||
m_waveCountX = 0;
|
||||
m_waveCountY = 0;
|
||||
m_waveCountZ = 0;
|
||||
g_VecWaveDataX.clear();
|
||||
g_VecWaveDataY.clear();
|
||||
g_VecWaveDataZ.clear();
|
||||
break;
|
||||
}
|
||||
if ((mPackgeIndex == -1 || (unsigned int)UartRecvBuf[i + 6] == 0) && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z) && now_task == WAVE_CMD) {
|
||||
mPackgeIndex = UartRecvBuf[i + 6] & 0xFF;
|
||||
} else if ((unsigned int)mPackgeIndex == (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z)) {
|
||||
} else if ((unsigned int)mPackgeIndex == (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && command != 2 && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z) && now_task == WAVE_CMD) {
|
||||
zlog_warn(zct, "mPackgeIndex same index1:%d,index2:%02d ShortAddr :%s ", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str());
|
||||
continue;
|
||||
|
||||
} else if ((unsigned int)mPackgeIndex + 1 != (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z)) {
|
||||
m_TimeStamp = 0;
|
||||
printf("mPackgeIndex error =============command = %d\n",command);
|
||||
zlog_warn(zct, "mPackgeIndex error index1:%d,index2:%02d , ShortAddr :%s ,command : %d", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str(),command);
|
||||
mPackgeIndex = -1;
|
||||
} else if ((unsigned int)mPackgeIndex + 1 != (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && command != 2 && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z) && now_task == WAVE_CMD) {
|
||||
|
||||
zlog_warn(zct, "mPackgeIndex error index1:%d,index2:%02d ShortAddr :%s ,now_task = %d", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str(),now_task);
|
||||
zlog_warn(zct, "mPackgeIndex error ShortAddr :%s", strShortAddr.c_str());
|
||||
|
||||
char tmp[10] = {0x00};
|
||||
char tmp2[10] = {0x00};
|
||||
@ -1077,7 +1095,6 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
||||
strcat(tmp2, tmp);
|
||||
}
|
||||
zlog_warn(zct, "error str = %s", tmp2);
|
||||
|
||||
char insertSql[100] = {0x00};
|
||||
char whereCon[50] = {0x00};
|
||||
std::string error_msg = "";
|
||||
@ -1088,28 +1105,29 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
||||
if (command == WAVE_X){
|
||||
error_msg = "Index error,wave X";
|
||||
strChannelID = strMeasurementID + "-X";
|
||||
wave_error_x = true;
|
||||
}else if (command == WAVE_Y){
|
||||
error_msg = "Index error,wave Y";
|
||||
strChannelID = strMeasurementID + "-Y";
|
||||
wave_error_y = true;
|
||||
}else if (command == WAVE_Z){
|
||||
error_msg = "Index error,wave Z";
|
||||
strChannelID = strMeasurementID + "-Z";
|
||||
wave_error_z = true;
|
||||
}
|
||||
|
||||
if(scheduler::instance().WaveError(wave_shortAddr) < 0){
|
||||
zlog_error(zct, "WaveError error ShortAddr :%s", strShortAddr.c_str());
|
||||
sprintf(insertSql, "'%s','%s','%s',%d,'%d','%s' ", strChannelID.c_str(),strShortAddr.c_str(),localtimestamp,bytesRead,0,error_msg.c_str());
|
||||
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
||||
}
|
||||
|
||||
JsonData jd;
|
||||
jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (now_task == WAVE_CMD && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z)) {
|
||||
if (!CheckCrc(&UartRecvBuf[i], 99)) {
|
||||
m_TimeStamp = 0;
|
||||
mPackgeIndex = -1;
|
||||
zlog_warn(zct, "CheckCrc error ShortAddr :%s command = %d", strShortAddr.c_str(), command);
|
||||
char tmp[10] = {0x00};
|
||||
char tmp2[10] = {0x00};
|
||||
@ -1118,12 +1136,7 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
||||
strcat(tmp2, tmp);
|
||||
}
|
||||
zlog_error(zct, "error str = %s", tmp2);
|
||||
m_waveCountX = 0;
|
||||
m_waveCountY = 0;
|
||||
m_waveCountZ = 0;
|
||||
g_VecWaveDataX.clear();
|
||||
g_VecWaveDataY.clear();
|
||||
g_VecWaveDataZ.clear();
|
||||
|
||||
char insertSql[100] = {0x00};
|
||||
char whereCon[50] = {0x00};
|
||||
std::string error_msg = "";
|
||||
@ -1134,12 +1147,15 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
||||
if (command == WAVE_X){
|
||||
error_msg = "Crc error,wave X";
|
||||
strChannelID = strMeasurementID + "-X";
|
||||
wave_error_x = true;
|
||||
}else if (command == WAVE_Y){
|
||||
error_msg = "Crc error,wave Y";
|
||||
strChannelID = strMeasurementID + "-Y";
|
||||
wave_error_y = true;
|
||||
}else if (command == WAVE_Z){
|
||||
error_msg = "Crc error,wave Z";
|
||||
strChannelID = strMeasurementID + "-Z";
|
||||
wave_error_z = true;
|
||||
}
|
||||
if(scheduler::instance().WaveError(wave_shortAddr) < 0){
|
||||
zlog_error(zct, "WaveError error ShortAddr :%s", strShortAddr.c_str());
|
||||
@ -1148,8 +1164,7 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
||||
}
|
||||
JsonData jd;
|
||||
jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg);
|
||||
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
mlastSize = 0;
|
||||
lastSize = bytesRead - i;
|
||||
|
||||
@ -806,6 +806,10 @@ void Uart::DealWave() {
|
||||
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
||||
}
|
||||
scheduler::instance().WaveSuccess(wave_shortAddr);
|
||||
}else{
|
||||
if(scheduler::instance().WaveError(wave_shortAddr) < 0){
|
||||
zlog_error(zct, "wave size is 0,shortAddr %02x%02x", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
std::string ran = "";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user