save voltage params
This commit is contained in:
parent
8bbbadee5a
commit
04c18e836f
@ -193,6 +193,8 @@ typedef struct {
|
|||||||
int Voltage;
|
int Voltage;
|
||||||
float nodeWorkTime;
|
float nodeWorkTime;
|
||||||
float nodeSendTime;
|
float nodeSendTime;
|
||||||
|
int minmumBatteryVoltageType;
|
||||||
|
int instantaneousBatteryVoltage;
|
||||||
}DataRecvStatic;
|
}DataRecvStatic;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@ -198,6 +198,14 @@ void SqliteDB::SqliteInit(const char *pDbName) {
|
|||||||
if(iRet == 0){
|
if(iRet == 0){
|
||||||
CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'nodeTimeStamp'");
|
CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'nodeTimeStamp'");
|
||||||
}
|
}
|
||||||
|
iRet = GetTableRows(" sqlite_master "," name = 't_datastatic_info' and sql LIKE '%minmumBatteryVoltageType%' ");
|
||||||
|
if(iRet == 0){
|
||||||
|
CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'minmumBatteryVoltageType'");
|
||||||
|
}
|
||||||
|
iRet = GetTableRows(" sqlite_master "," name = 't_datastatic_info' and sql LIKE '%instantaneousBatteryVoltage%' ");
|
||||||
|
if(iRet == 0){
|
||||||
|
CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'instantaneousBatteryVoltage'");
|
||||||
|
}
|
||||||
memset(sql_exec, 0, 2048);
|
memset(sql_exec, 0, 2048);
|
||||||
// clang-format off
|
// clang-format off
|
||||||
sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);",
|
sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);",
|
||||||
@ -351,8 +359,8 @@ void SqliteDB::CreatedataStatictable(const char *ptableName) {
|
|||||||
char sql_exec[2048];
|
char sql_exec[2048];
|
||||||
//创建传感器数据存储表
|
//创建传感器数据存储表
|
||||||
memset(sql_exec, 0, 2048);
|
memset(sql_exec, 0, 2048);
|
||||||
sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s,%s integer,%s,%s,%s);", ptableName, T_DATASTATIC_INFO(DATANODENO), T_DATASTATIC_INFO(CHANNELID), T_DATASTATIC_INFO(TEMTOP), T_DATASTATIC_INFO(TEMBOT), T_DATASTATIC_INFO(DIP),
|
sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s,%s integer,%s,%s,%s,%s,%s);", ptableName, T_DATASTATIC_INFO(DATANODENO), T_DATASTATIC_INFO(CHANNELID), T_DATASTATIC_INFO(TEMTOP), T_DATASTATIC_INFO(TEMBOT), T_DATASTATIC_INFO(DIP),
|
||||||
T_DATASTATIC_INFO(VOLTAGE), "zigbeeSignal", "StaticIndex", T_DATASTATIC_INFO(TIMESTAMP), "sendMsg", "nodeResend", "zigbeeSignalNode", "statisticType", "timing", "nodeTimestamp");
|
T_DATASTATIC_INFO(VOLTAGE), "zigbeeSignal", "StaticIndex", T_DATASTATIC_INFO(TIMESTAMP), "sendMsg", "nodeResend", "zigbeeSignalNode", "statisticType", "timing", "nodeTimestamp","minmumBatteryVoltageType","instantaneousBatteryVoltage");
|
||||||
CreateTable(sql_exec);
|
CreateTable(sql_exec);
|
||||||
memset(sql_exec, 0, 2048);
|
memset(sql_exec, 0, 2048);
|
||||||
sprintf(sql_exec, "CREATE INDEX %s_1 ON %s (%s)", ptableName, ptableName, T_DATA_INFO(DATANODENO));
|
sprintf(sql_exec, "CREATE INDEX %s_1 ON %s (%s)", ptableName, ptableName, T_DATA_INFO(DATANODENO));
|
||||||
|
|||||||
@ -605,6 +605,32 @@ int Uart::DealFeatureValue(const char *pData,uint16_t ushortAdd){
|
|||||||
last_time = atol(nowTimetamp.c_str());
|
last_time = atol(nowTimetamp.c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
int Uart::DealAskTaskOld(uint16_t ushortAdd){
|
||||||
|
char wherecon[50]={0};
|
||||||
|
sprintf(wherecon, "zigbeeShortAddr='%02x%02x'", UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd));
|
||||||
|
int sensor_count = sqlite_db_ctrl::instance().GetTableRows(T_SENSOR_INFO(TNAME), wherecon);
|
||||||
|
|
||||||
|
if (sensor_count < 1) {
|
||||||
|
zlog_warn(zct, "device info not found %02x%02x ", UINT16_HIGH(ushortAdd),UINT16_LOW(ushortAdd));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
int next_duration = 0,next_task_id = 0;
|
||||||
|
int taskID;
|
||||||
|
ScheduleTask scheduleTask;
|
||||||
|
taskID = scheduler::instance().StartSchedule(ushortAdd,next_duration, next_task_id);
|
||||||
|
zlog_info(zct, "DealAskTaskOld taskID = %d next_duration = %d next_task_id = %d", taskID, next_duration, next_task_id);
|
||||||
|
if(next_task_id == kScheduleUpgrade){
|
||||||
|
scheduleTask.cmd = REVIVE_DURATION;
|
||||||
|
scheduleTask.shortAddr = ushortAdd;
|
||||||
|
scheduleTask.duration = next_duration;
|
||||||
|
scheduleTask.next_taskID = UPGRADE;
|
||||||
|
TaskResp(scheduleTask);
|
||||||
|
}
|
||||||
|
if (taskID == kScheduleUpgrade){
|
||||||
|
UpdateWirelessNode(ushortAdd);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
void Uart::DealRecvData(const char *pData) {
|
void Uart::DealRecvData(const char *pData) {
|
||||||
|
|
||||||
uint16_t ushortAdd = BUILD_UINT16(pData[3] & 0xFF, pData[4] & 0xFF);
|
uint16_t ushortAdd = BUILD_UINT16(pData[3] & 0xFF, pData[4] & 0xFF);
|
||||||
@ -640,6 +666,9 @@ void Uart::DealRecvData(const char *pData) {
|
|||||||
case DEVICE_INF2:
|
case DEVICE_INF2:
|
||||||
DealDataNodeName(pData);
|
DealDataNodeName(pData);
|
||||||
break;
|
break;
|
||||||
|
case ASK_TASK:
|
||||||
|
DealAskTaskOld(ushortAdd);
|
||||||
|
break;
|
||||||
// case ASK_TASK:
|
// case ASK_TASK:
|
||||||
// DealAskTask(ushortAdd);
|
// DealAskTask(ushortAdd);
|
||||||
// break;
|
// break;
|
||||||
@ -1306,9 +1335,9 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
memcpy(RecvBuf, (char *)&UartRecvBuf[i], 100);
|
memcpy(RecvBuf, (char *)&UartRecvBuf[i], 100);
|
||||||
DealDataNodeWave(RecvBuf, command);
|
DealDataNodeWave(RecvBuf, command);
|
||||||
mPackgeIndex = (unsigned int)UartRecvBuf[i + 6];
|
mPackgeIndex = (unsigned int)UartRecvBuf[i + 6];
|
||||||
} else if (now_task != WAVE_CMD && ( command == DEVICE_INF || command == MEAS_EVAL || command == CONFIG || command == UPGRADE || command == DEVICE_INF2 || command == SIGNAL_STRENGTH || command == DEVICE_EXCEPTION || command == UPGRADE_ASK)) {
|
} else if (now_task != WAVE_CMD && ( command == ASK_TASK || command == DEVICE_INF || command == MEAS_EVAL || command == CONFIG || command == UPGRADE || command == DEVICE_INF2 || command == SIGNAL_STRENGTH || command == DEVICE_EXCEPTION || command == UPGRADE_ASK)) {
|
||||||
char RecvBuf[100] = {0x00};
|
char RecvBuf[100] = {0x00};
|
||||||
if (command == UPGRADE_ASK)
|
if (command == UPGRADE_ASK || command == ASK_TASK)
|
||||||
{
|
{
|
||||||
memcpy(RecvBuf, &UartRecvBuf[i], 8);
|
memcpy(RecvBuf, &UartRecvBuf[i], 8);
|
||||||
if (!CheckCrc(RecvBuf, 7)) {
|
if (!CheckCrc(RecvBuf, 7)) {
|
||||||
|
|||||||
@ -166,6 +166,7 @@ public:
|
|||||||
void Stop();
|
void Stop();
|
||||||
|
|
||||||
void UpdateZigbeeInfo(const char* pData);
|
void UpdateZigbeeInfo(const char* pData);
|
||||||
|
int DealAskTaskOld(uint16_t ushortAdd);
|
||||||
void DealRecvData(const char* pData);
|
void DealRecvData(const char* pData);
|
||||||
void DealDataNodeInfo(const char* pData);
|
void DealDataNodeInfo(const char* pData);
|
||||||
void DealDataNodeName(const char* pData);
|
void DealDataNodeName(const char* pData);
|
||||||
|
|||||||
@ -146,6 +146,16 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
|
|
||||||
RecordBattery(strMeasurementID, dataStatic, nowTimetamp);
|
RecordBattery(strMeasurementID, dataStatic, nowTimetamp);
|
||||||
|
|
||||||
|
memset(buf, 0, sizeof(buf));
|
||||||
|
sprintf(buf, "%02x%02x", pRecvData->Data[81]);
|
||||||
|
iTemp = (int)strtol(buf, NULL, 8);
|
||||||
|
dataStatic.minmumBatteryVoltageType = iTemp;
|
||||||
|
|
||||||
|
memset(buf, 0, sizeof(buf));
|
||||||
|
sprintf(buf, "%02x%02x", pRecvData->Data[83], pRecvData->Data[82]);
|
||||||
|
iTemp = (int)strtol(buf, NULL, 16);
|
||||||
|
dataStatic.instantaneousBatteryVoltage = iTemp;
|
||||||
|
|
||||||
char szTableName[50] = {0x00}, szTableNameStatic[50] = {0x00}, szTableNameData[50] = {0x00};
|
char szTableName[50] = {0x00}, szTableNameStatic[50] = {0x00}, szTableNameData[50] = {0x00};
|
||||||
sprintf(szTableName, "t_dataStatic_%s", strMeasurementID.c_str());
|
sprintf(szTableName, "t_dataStatic_%s", strMeasurementID.c_str());
|
||||||
memcpy(szTableNameStatic, szTableName, sizeof(szTableNameStatic));
|
memcpy(szTableNameStatic, szTableName, sizeof(szTableNameStatic));
|
||||||
@ -234,24 +244,24 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
|
|
||||||
zlog_info(zct, "dataStatic.TemTop : %f dataStatic.TemBot : %f dataStatic.Dip :%d dataStatic.Voltage : %d", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage);
|
zlog_info(zct, "dataStatic.TemTop : %f dataStatic.TemBot : %f dataStatic.Dip :%d dataStatic.Voltage : %d", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage);
|
||||||
|
|
||||||
sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld, nodeResend = %d,zigbeeSignal = '',zigbeeSignalNode = '',statisticType = '%d',timing = '%d' ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage,
|
sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld, nodeResend = %d,zigbeeSignal = '',zigbeeSignalNode = '',statisticType = '%d',timing = '%d',,nodeTimestamp = '%s',minmumBatteryVoltageType = '%d',instantaneousBatteryVoltage = '%d' ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage,
|
||||||
nowTimetamp.c_str(), staticIndex, nodeResend, flag, timing);
|
nowTimetamp.c_str(), staticIndex, nodeResend, flag, timing, nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
||||||
sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-S").c_str());
|
sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-S").c_str());
|
||||||
if (/*0 == sqlite_db_ctrl::instance().GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon)*/ (Count * 3 < SAVE_COUNT && lTime < OneWeek) || strTime.size() == 0) {
|
if (/*0 == sqlite_db_ctrl::instance().GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon)*/ (Count * 3 < SAVE_COUNT && lTime < OneWeek) || strTime.size() == 0) {
|
||||||
zlog_info(zct, "insert static data to sql");
|
zlog_info(zct, "insert static data to sql");
|
||||||
char insertSql[1024] = {0};
|
char insertSql[1024] = {0};
|
||||||
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,'','%d','%d','%s'", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend, flag,
|
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,'','%d','%d','%s','%d','%d'", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend, flag,
|
||||||
timing,nodetimestamp);
|
timing,nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
||||||
sqlite_db_ctrl::instance().InsertData(szTableName, insertSql);
|
sqlite_db_ctrl::instance().InsertData(szTableName, insertSql);
|
||||||
|
|
||||||
if (0 == sqlite_db_ctrl::instance().GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon)) { // First Connect
|
if (0 == sqlite_db_ctrl::instance().GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon)) { // First Connect
|
||||||
char insertSql[1024] = {0};
|
char insertSql[1024] = {0};
|
||||||
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,%s", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend,nodetimestamp);
|
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,%s,'%d','%d'", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend,nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
||||||
sqlite_db_ctrl::instance().InsertData(T_DATASTATIC_INFO(TNAME), insertSql);
|
sqlite_db_ctrl::instance().InsertData(T_DATASTATIC_INFO(TNAME), insertSql);
|
||||||
sqlite_db_ctrl::instance().CalculateBattery();
|
sqlite_db_ctrl::instance().CalculateBattery();
|
||||||
} else {
|
} else {
|
||||||
memset(updateSql, 0x00, sizeof(updateSql));
|
memset(updateSql, 0x00, sizeof(updateSql));
|
||||||
sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld,nodeTimestamp = '%s' ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str(), staticIndex,nodetimestamp);
|
sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld,nodeTimestamp = '%s',minmumBatteryVoltageType = '%d',instantaneousBatteryVoltage = '%d' ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str(), staticIndex,nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
||||||
sqlite_db_ctrl::instance().UpdateTableData(T_DATASTATIC_INFO(TNAME), updateSql, whereCon);
|
sqlite_db_ctrl::instance().UpdateTableData(T_DATASTATIC_INFO(TNAME), updateSql, whereCon);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user