add wave record
This commit is contained in:
parent
d802ff7c94
commit
b3c9575190
@ -5,7 +5,7 @@
|
|||||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-1102353172776392420" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1289772839912558009" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||||
</provider>
|
</provider>
|
||||||
@ -16,7 +16,7 @@
|
|||||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-1102351351620288196" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1289773380490434009" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||||
</provider>
|
</provider>
|
||||||
|
|||||||
@ -394,7 +394,7 @@ SensorScheduler::SensorScheduler() {
|
|||||||
UpdateCfg::ReadCfg(update_);
|
UpdateCfg::ReadCfg(update_);
|
||||||
}
|
}
|
||||||
|
|
||||||
int SensorScheduler::WaveError(int short_addr) {
|
int SensorScheduler::WaveError(uint16_t short_addr) {
|
||||||
auto iter = failure_map_.find(short_addr);
|
auto iter = failure_map_.find(short_addr);
|
||||||
if (iter == failure_map_.end()) {
|
if (iter == failure_map_.end()) {
|
||||||
failure_map_[short_addr] = 3; // 重试次数
|
failure_map_[short_addr] = 3; // 重试次数
|
||||||
@ -427,7 +427,7 @@ bool SensorScheduler::MissedWave(uint16_t short_addr) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SensorScheduler::WaveSuccess(int short_addr) {
|
void SensorScheduler::WaveSuccess(uint16_t short_addr) {
|
||||||
success_set_.insert(short_addr);
|
success_set_.insert(short_addr);
|
||||||
auto iter = failure_map_.find(short_addr);
|
auto iter = failure_map_.find(short_addr);
|
||||||
if (iter != failure_map_.end()) {
|
if (iter != failure_map_.end()) {
|
||||||
|
|||||||
@ -41,8 +41,8 @@ public:
|
|||||||
int StartSchedule(int short_addr, int &next_duration);
|
int StartSchedule(int short_addr, int &next_duration);
|
||||||
int GetNextDuration(int short_addr);
|
int GetNextDuration(int short_addr);
|
||||||
|
|
||||||
int WaveError(int short_addr);
|
int WaveError(uint16_t short_addr);
|
||||||
void WaveSuccess(int short_addr);
|
void WaveSuccess(uint16_t short_addr);
|
||||||
long GetBaseTimestamp(int id);
|
long GetBaseTimestamp(int id);
|
||||||
long CalcNextTimestamp(int id, uint16_t short_addr);
|
long CalcNextTimestamp(int id, uint16_t short_addr);
|
||||||
|
|
||||||
|
|||||||
@ -59,13 +59,12 @@ int Uart::UartRecv(int fd, char srcshow, char *buffer) {
|
|||||||
mssleep(10000);
|
mssleep(10000);
|
||||||
wave_trans_ = true;
|
wave_trans_ = true;
|
||||||
memset(mUartRecvTmpBuf, 0, BUF_LENGTH);
|
memset(mUartRecvTmpBuf, 0, BUF_LENGTH);
|
||||||
zlog_warn(zct, "wave end");
|
zlog_warn(zct, "wave end,now_task = %d", now_task);
|
||||||
}
|
}
|
||||||
mssleep(10000);
|
mssleep(10000);
|
||||||
} else if (ret > 0) {
|
} else if (ret > 0) {
|
||||||
maxSize += ret;
|
maxSize += ret;
|
||||||
timeoutflag = 0;
|
timeoutflag = 0;
|
||||||
m_TimeStamp = 0;
|
|
||||||
memcpy(mUartRecvTmpBuf + offSize, buff, ret);
|
memcpy(mUartRecvTmpBuf + offSize, buff, ret);
|
||||||
offSize = offSize + ret;
|
offSize = offSize + ret;
|
||||||
if (offSize > BUF_LENGTH * 15) {
|
if (offSize > BUF_LENGTH * 15) {
|
||||||
@ -99,7 +98,6 @@ int Uart::UartRecv(int fd, char srcshow, char *buffer) {
|
|||||||
|
|
||||||
Uart::Uart() : mUart(mIoSev), mStrand(mIoSev) {
|
Uart::Uart() : mUart(mIoSev), mStrand(mIoSev) {
|
||||||
mRdLength = 0;
|
mRdLength = 0;
|
||||||
m_TimeStamp = 0;
|
|
||||||
mlastSize = 0;
|
mlastSize = 0;
|
||||||
fd = 0;
|
fd = 0;
|
||||||
waittime = 0;
|
waittime = 0;
|
||||||
@ -1021,7 +1019,9 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
memset(mUartRecvTmpBuf, 0x00, sizeof(mUartRecvTmpBuf));
|
memset(mUartRecvTmpBuf, 0x00, sizeof(mUartRecvTmpBuf));
|
||||||
}
|
}
|
||||||
memcpy(UartRecvBuf + mlastSize, mUartRecvBuf, bytesRead);
|
memcpy(UartRecvBuf + mlastSize, mUartRecvBuf, bytesRead);
|
||||||
|
bool wave_error_x = false;
|
||||||
|
bool wave_error_y = false;
|
||||||
|
bool wave_error_z = false;
|
||||||
bytesRead = bytesRead + mlastSize;
|
bytesRead = bytesRead + mlastSize;
|
||||||
for (int i = 0; i < bytesRead; i++) {
|
for (int i = 0; i < bytesRead; i++) {
|
||||||
if (UartRecvBuf[i] == head[0]) {
|
if (UartRecvBuf[i] == head[0]) {
|
||||||
@ -1035,18 +1035,33 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
char buf[8] = {0x00};
|
char buf[8] = {0x00};
|
||||||
sprintf(buf, "%02d", UartRecvBuf[i + 5]);
|
sprintf(buf, "%02d", UartRecvBuf[i + 5]);
|
||||||
int command = atoi(buf);
|
int command = atoi(buf);
|
||||||
//zlog_info(zct, "command = %d ShortAddr :%s", command, strShortAddr.c_str());
|
if (wave_error_x && !wave_error_y && !wave_error_z && command == WAVE_X)
|
||||||
if ((mPackgeIndex == -1 || (unsigned int)UartRecvBuf[i + 6] == 0) && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z) ) {
|
{
|
||||||
|
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;
|
mPackgeIndex = UartRecvBuf[i + 6] & 0xFF;
|
||||||
} else if ((unsigned int)mPackgeIndex == (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && command != 2 && (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());
|
zlog_warn(zct, "mPackgeIndex same index1:%d,index2:%02d ShortAddr :%s ", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str());
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
} else if ((unsigned int)mPackgeIndex + 1 != (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && command != 2 && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z)) {
|
} 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) {
|
||||||
m_TimeStamp = 0;
|
|
||||||
|
|
||||||
zlog_warn(zct, "mPackgeIndex error index1:%d,index2:%02d ShortAddr :%s ", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str());
|
zlog_warn(zct, "mPackgeIndex error index1:%d,index2:%02d ShortAddr :%s ,now_task = %d", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str(),now_task);
|
||||||
mPackgeIndex = -1;
|
|
||||||
zlog_warn(zct, "mPackgeIndex error ShortAddr :%s", strShortAddr.c_str());
|
zlog_warn(zct, "mPackgeIndex error ShortAddr :%s", strShortAddr.c_str());
|
||||||
|
|
||||||
char tmp[10] = {0x00};
|
char tmp[10] = {0x00};
|
||||||
@ -1056,7 +1071,6 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
strcat(tmp2, tmp);
|
strcat(tmp2, tmp);
|
||||||
}
|
}
|
||||||
zlog_warn(zct, "error str = %s", tmp2);
|
zlog_warn(zct, "error str = %s", tmp2);
|
||||||
|
|
||||||
char insertSql[100] = {0x00};
|
char insertSql[100] = {0x00};
|
||||||
char whereCon[50] = {0x00};
|
char whereCon[50] = {0x00};
|
||||||
std::string error_msg = "";
|
std::string error_msg = "";
|
||||||
@ -1067,26 +1081,29 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
if (command == WAVE_X){
|
if (command == WAVE_X){
|
||||||
error_msg = "Index error,wave X";
|
error_msg = "Index error,wave X";
|
||||||
strChannelID = strMeasurementID + "-X";
|
strChannelID = strMeasurementID + "-X";
|
||||||
|
wave_error_x = true;
|
||||||
}else if (command == WAVE_Y){
|
}else if (command == WAVE_Y){
|
||||||
error_msg = "Index error,wave Y";
|
error_msg = "Index error,wave Y";
|
||||||
strChannelID = strMeasurementID + "-Y";
|
strChannelID = strMeasurementID + "-Y";
|
||||||
|
wave_error_y = true;
|
||||||
}else if (command == WAVE_Z){
|
}else if (command == WAVE_Z){
|
||||||
error_msg = "Index error,wave Z";
|
error_msg = "Index error,wave Z";
|
||||||
strChannelID = strMeasurementID + "-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);
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
JsonData jd;
|
||||||
jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg);
|
jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg);
|
||||||
|
continue;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (now_task == WAVE_CMD && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z)) {
|
if (now_task == WAVE_CMD && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z)) {
|
||||||
if (!CheckCrc(&UartRecvBuf[i], 99)) {
|
if (!CheckCrc(&UartRecvBuf[i], 99)) {
|
||||||
m_TimeStamp = 0;
|
|
||||||
mPackgeIndex = -1;
|
|
||||||
zlog_warn(zct, "CheckCrc error ShortAddr :%s command = %d", strShortAddr.c_str(), command);
|
zlog_warn(zct, "CheckCrc error ShortAddr :%s command = %d", strShortAddr.c_str(), command);
|
||||||
char tmp[10] = {0x00};
|
char tmp[10] = {0x00};
|
||||||
char tmp2[10] = {0x00};
|
char tmp2[10] = {0x00};
|
||||||
@ -1095,12 +1112,7 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
strcat(tmp2, tmp);
|
strcat(tmp2, tmp);
|
||||||
}
|
}
|
||||||
zlog_error(zct, "error str = %s", tmp2);
|
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 insertSql[100] = {0x00};
|
||||||
char whereCon[50] = {0x00};
|
char whereCon[50] = {0x00};
|
||||||
std::string error_msg = "";
|
std::string error_msg = "";
|
||||||
@ -1111,19 +1123,24 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
if (command == WAVE_X){
|
if (command == WAVE_X){
|
||||||
error_msg = "Crc error,wave X";
|
error_msg = "Crc error,wave X";
|
||||||
strChannelID = strMeasurementID + "-X";
|
strChannelID = strMeasurementID + "-X";
|
||||||
|
wave_error_x = true;
|
||||||
}else if (command == WAVE_Y){
|
}else if (command == WAVE_Y){
|
||||||
error_msg = "Crc error,wave Y";
|
error_msg = "Crc error,wave Y";
|
||||||
strChannelID = strMeasurementID + "-Y";
|
strChannelID = strMeasurementID + "-Y";
|
||||||
|
wave_error_y = true;
|
||||||
}else if (command == WAVE_Z){
|
}else if (command == WAVE_Z){
|
||||||
error_msg = "Crc error,wave Z";
|
error_msg = "Crc error,wave Z";
|
||||||
strChannelID = strMeasurementID + "-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);
|
||||||
}
|
}
|
||||||
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;
|
JsonData jd;
|
||||||
jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg);
|
jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg);
|
||||||
|
continue;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
mlastSize = 0;
|
mlastSize = 0;
|
||||||
lastSize = bytesRead - i;
|
lastSize = bytesRead - i;
|
||||||
|
|||||||
@ -11,6 +11,7 @@
|
|||||||
#include "mqttclient/mqtt_client.h"
|
#include "mqttclient/mqtt_client.h"
|
||||||
#include "minilzo/minilzo.h"
|
#include "minilzo/minilzo.h"
|
||||||
#include "jsonparse/communication_cmd.hpp"
|
#include "jsonparse/communication_cmd.hpp"
|
||||||
|
#include "scheduler/schedule.hpp"
|
||||||
|
|
||||||
extern zlog_category_t *zct;
|
extern zlog_category_t *zct;
|
||||||
extern zlog_category_t *zbt;
|
extern zlog_category_t *zbt;
|
||||||
@ -802,7 +803,7 @@ void Uart::DealWave() {
|
|||||||
sprintf(insertSql, "'%s-Z','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
|
sprintf(insertSql, "'%s-Z','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
|
||||||
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
||||||
}
|
}
|
||||||
|
scheduler::instance().WaveSuccess(wave_shortAddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ran = "";
|
std::string ran = "";
|
||||||
@ -848,8 +849,6 @@ void Uart::DealWave() {
|
|||||||
VecWaveDataZ.clear();
|
VecWaveDataZ.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wave_trans_ = false;
|
wave_trans_ = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user