diff --git a/app/src/main/cpp/SensorsProtocol.cpp b/app/src/main/cpp/SensorsProtocol.cpp index 0727bc6f..3b808053 100644 --- a/app/src/main/cpp/SensorsProtocol.cpp +++ b/app/src/main/cpp/SensorsProtocol.cpp @@ -568,7 +568,7 @@ void Gm_CloseSensorsPower() // 打开传感器电源 void Gm_OpenSensorsPower() { - //char iIoNo; + //char iIoNo; /* int igpio; char szbuf[128]; @@ -711,7 +711,7 @@ void Gm_CloseSerialPort() { int i; - for (i = 0; i < MAX_SERIAL_PORT_NUM; i++) + for (i = 1; i < MAX_SERIAL_PORT_NUM; i++) { if (serialport[i].fd > 0) { @@ -1262,6 +1262,8 @@ void GM_StartSerialComm() #endif for (i = 0; i < MAX_SERIAL_DEV_NUM; i++) { + memset(srdt.ms_dev[i].aiValue, 0, sizeof(AI_DEF)*MAX_DEV_VALUE_NUM); + memset(weatherpntmsg, 0, sizeof(AI_DEF)*WEATHER_DATA_NUM); if (0 == devparam[i].IsNoInsta) { srdt.ms_dev[i].IsNeedSerial = 0; @@ -1276,7 +1278,10 @@ void GM_StartSerialComm() srdt.ms_dev[i].FirstCmdTimeCnt = get_msec(); srdt.ms_dev[i].recvdatacnt = 0; for (j = 0; j < WEATHER_DATA_NUM; j++) + { srdt.ms_dev[i].aiValue[j].AiState = SER_STARTSAMPLE; + weatherpntmsg[j].AiState = SER_STARTSAMPLE; + } break; case RALLY_PROTOCOL: /* 拉力*/ sprintf(szbuf, "%s", "拉力"); @@ -1305,6 +1310,7 @@ void GM_StartSerialComm() case PELCO_P_PROTOCOL: /* 摄像机协议*/ case SERIALCAMERA_PROTOCOL: /* 串口摄像机协议*/ sprintf(szbuf, "%s", "摄像机"); + srdt.ms_dev[i].IsNeedSerial = 0; break; default: srdt.ms_dev[i].IsNeedSerial = 0; @@ -1567,9 +1573,9 @@ int GM_CloseTimer() else // 关闭所有串口及电源 { Gm_CloseSerialPort(); - for (j = 0; j < MAX_SERIAL_DEV_NUM; j++) - Gm_CloseSensorsPower(); - for (j = 0; j < MAX_SERIAL_PORT_NUM; j++) + //for (j = 0; j < MAX_SERIAL_DEV_NUM; j++) + //Gm_CloseSensorsPower(); + for (j = 1; j < MAX_SERIAL_PORT_NUM; j++) ClearCmdFormPollCmdBuf(j); sprintf(buf, "%s", "关闭串口定时器!"); DebugLog(8, buf, 'I'); @@ -2097,9 +2103,9 @@ void SendCmdFormPollCmdBuf(int port) serialport[devparam[srdt.curdevidx[port]].commid].m_iRevStatus = 0; if (serialport[port].fd < 0) return; - //ret = Gm_SetSerialPortParam(port); - //if (ret < 0) - // return; + ret = Gm_SetSerialPortParam(port); + if (ret < 0) + return; len = GM_SerialComSend(&pPortParam->PollCmd[2], pPortParam->cmdlen - 2, port); if (len < 1) { @@ -3359,6 +3365,7 @@ void Collect_sensor_data() struct tm t0; const char *path = "/sdcard/log"; // 指定目录路径 int days = 15; // 删除15天前的log文件 + sprintf(logbuf, "进入程序时间:%lld, ideletefile=%d", get_msec(), ideletefile); DebugLog(8, logbuf, 'I'); @@ -3593,6 +3600,7 @@ void GM_CameraSerialComRecv(SIO_PARAM_SERIAL_DEF *pPortParam) int64_t t0, t1; t0 = get_msec(); + memset(recvbuf, 0, sizeof(recvbuf)); if (pPortParam->fd <= 0) return; @@ -3769,7 +3777,7 @@ int GetWeatherData(Data_DEF *data, int datano) sprintf(szbuf, "未知"); break; } - sprintf(logbuf, "data_state=%d, 拉力value=%0.3f", data->AiState, data->EuValue); + sprintf(logbuf, "data_state=%d, %svalue=%0.3f", data->AiState, szbuf,data->EuValue); DebugLog(8, logbuf, 'I'); if ((SER_SAMPLEFAIL == data->AiState) || (SAMPLINGSUCCESS == data->AiState)) {