diff --git a/app/build.gradle b/app/build.gradle index 209c250a..a681eaa4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,7 @@ plugins { // 10,00,000 major-minor-build def AppMajorVersion = 1 def AppMinorVersion = 1 -def AppBuildNumber = 14 +def AppBuildNumber = 15 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 983c2d8c..37ab57ce 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -1696,11 +1696,14 @@ bool CPhoneDevice::TakePhoto(const IDevice::PHOTO_INFO& photoInfo, const vector< { CPhoneDevice* pThis = this; IDevice::PHOTO_INFO localPhotoInfo = mPhotoInfo; - std::thread t([localPhotoInfo, path, pThis]() mutable + IDevice::SerialsPhotoParam param = { "", 0, 0 }; + GetPhotoSerialsParamCb(param); + + std::thread t([localPhotoInfo, param, pThis]() mutable { if (localPhotoInfo.preset != 0 && localPhotoInfo.preset != 0xFF) { - //CameraPhotoCmd(time(NULL), localPhotoInfo.channel, MOVE_PRESETNO, 0, localPhotoInfo.preset); + CameraPhotoCmd(time(NULL), localPhotoInfo.channel, MOVE_PRESETNO, 0, localPhotoInfo.preset, param.serfile, param.baud, param.addr); std::this_thread::sleep_for(std::chrono::seconds(3)); } time_t ts = time(NULL); @@ -1709,7 +1712,7 @@ bool CPhoneDevice::TakePhoto(const IDevice::PHOTO_INFO& photoInfo, const vector< XYLOG(XYLOG_SEVERITY_INFO, "Camera is SeltTesting, selfTestingtime = %d", localPhotoInfo.selfTestingTime); pThis->OpenPTZSensors(localPhotoInfo.selfTestingTime); } - //CameraPhotoCmd(ts, localPhotoInfo.channel, 0, localPhotoInfo.resolution, 0); + CameraPhotoCmd(ts, localPhotoInfo.channel, 0, localPhotoInfo.resolution, 0, param.serfile, param.baud, param.addr); XYLOG(XYLOG_SEVERITY_INFO, "Taking photo over"); pThis->TakePTZPhotoCb(3, localPhotoInfo); }); @@ -3489,32 +3492,32 @@ int CPhoneDevice::GetIceData(IDevice::ICE_INFO *iceInfo, IDevice::ICE_TAIL *iceT if(sensorParam[num].SensorsType == RALLY_PROTOCOL) { GetPullValue(num, &airt); - if(airt.AiState == 2) - { +// if(airt.AiState == 2) +// { iceInfo->t_sensor_data[pullno].original_tension = airt.EuValue; - XYLOG(XYLOG_SEVERITY_INFO,"地址%d, 拉力 = %f", sensorParam[num].devaddr, iceInfo->t_sensor_data[pullno].original_tension); - } - else - iceInfo->t_sensor_data[pullno].original_tension = 0xff; + XYLOG(XYLOG_SEVERITY_INFO,"地址%d, 采样状态 = %d, 拉力 = %f", sensorParam[num].devaddr, airt.AiState, iceInfo->t_sensor_data[pullno].original_tension); +// } +// else +// iceInfo->t_sensor_data[pullno].original_tension = 0xff; pullno++; } else if(sensorParam[num].SensorsType == SLANT_PROTOCOL) { GetAngleValue(num, &airt, 0); - if(airt.AiState == 2) - { +// if(airt.AiState == 2) +// { iceInfo->t_sensor_data[angleno].deflection_angle = airt.EuValue; - XYLOG(XYLOG_SEVERITY_INFO,"地址%d, x = %f", sensorParam[num].devaddr, iceInfo->t_sensor_data[angleno].deflection_angle); - } - else - iceInfo->t_sensor_data[angleno].deflection_angle = 0xff; + XYLOG(XYLOG_SEVERITY_INFO,"地址%d, 采样状态 = %d, x = %f", sensorParam[num].devaddr, airt.AiState, iceInfo->t_sensor_data[angleno].deflection_angle); +// } +// else +// iceInfo->t_sensor_data[angleno].deflection_angle = 0xff; GetAngleValue(num, &airt, 1); - if(airt.AiState == 2) - { +// if(airt.AiState == 2) +// { iceInfo->t_sensor_data[angleno].windage_yaw_angle = airt.EuValue; - XYLOG(XYLOG_SEVERITY_INFO,"地址%d, y = %f", sensorParam[num].devaddr, iceInfo->t_sensor_data[angleno].windage_yaw_angle); - } - else - iceInfo->t_sensor_data[angleno].windage_yaw_angle =0xff; + XYLOG(XYLOG_SEVERITY_INFO,"地址%d, 采样状态 = %d, y = %f", sensorParam[num].devaddr, airt.AiState, iceInfo->t_sensor_data[angleno].windage_yaw_angle); +// } +// else +// iceInfo->t_sensor_data[angleno].windage_yaw_angle =0xff; angleno++; } } @@ -3807,6 +3810,9 @@ void CPhoneDevice::SetStaticIp() } else { +#ifdef USING_N938 + SetStaticIp("eth0", "0.0.0.0", "255.255.255.0", "192.168.1.1"); +#endif XYLOG(XYLOG_SEVERITY_WARNING, "No Static IP Confg"); } } \ No newline at end of file diff --git a/app/src/main/cpp/PhoneDevice.h b/app/src/main/cpp/PhoneDevice.h index 0360524f..7b3fb8d9 100644 --- a/app/src/main/cpp/PhoneDevice.h +++ b/app/src/main/cpp/PhoneDevice.h @@ -297,6 +297,16 @@ protected: return false; } + inline bool GetPhotoSerialsParamCb(SerialsPhotoParam ¶m) const + { + if (m_listener != NULL) + { + return m_listener->OnPhotoSerialsParamGet(param); + } + + return false; + } + void QueryPowerInfo(std::map& powerInfo); std::string QueryCpuTemperature(); diff --git a/app/src/main/cpp/SensorsProtocol.cpp b/app/src/main/cpp/SensorsProtocol.cpp index 2531f7fa..5401f9f5 100644 --- a/app/src/main/cpp/SensorsProtocol.cpp +++ b/app/src/main/cpp/SensorsProtocol.cpp @@ -739,7 +739,7 @@ int GM_SerialComSend(unsigned char * cSendBuf, size_t nSendLen, int commid) //isendtime = get_msec(); if (len < 0) { - sprintf(szbuf, "write data error "); + sprintf(szbuf, "%s", "write data error "); DebugLog(commid, szbuf, 'E'); return -1; } @@ -810,7 +810,7 @@ void Gm_InitSerialComm_Test() sensorParam[0].IsNoInsta = 1; sensorParam[0].devaddr = 4; memset(sensorParam[0].pathname, 0, sizeof(sensorParam[0].pathname)); - sprintf(sensorParam[0].pathname, "/dev/ttysWK3"); + strcpy(sensorParam[0].pathname, "/dev/ttysWK3"); sensorParam[1].SensorsType = WEATHER_PROTOCOL; sensorParam[1].baudrate = 9600; @@ -822,7 +822,7 @@ void Gm_InitSerialComm_Test() sensorParam[1].IsNoInsta = 1; sensorParam[1].devaddr = 1; memset(sensorParam[1].pathname, 0, sizeof(sensorParam[1].pathname)); - sprintf(sensorParam[1].pathname, "/dev/ttysWK3"); + strcpy(sensorParam[1].pathname, "/dev/ttysWK3"); sensorParam[2].SensorsType = RALLY_PROTOCOL; sensorParam[2].baudrate = 9600; @@ -836,7 +836,7 @@ void Gm_InitSerialComm_Test() //sensorParam[2].devaddr = 13; sensorParam[2].devaddr = 13; memset(sensorParam[2].pathname, 0, sizeof(sensorParam[2].pathname)); - sprintf(sensorParam[2].pathname, "/dev/ttysWK1"); + strcpy(sensorParam[2].pathname, "/dev/ttysWK1"); sensorParam[5].SensorsType = RALLY_PROTOCOL; sensorParam[5].baudrate = 9600; @@ -848,7 +848,7 @@ void Gm_InitSerialComm_Test() sensorParam[5].IsNoInsta = 1; sensorParam[5].devaddr = 10; memset(sensorParam[5].pathname, 0, sizeof(sensorParam[3].pathname)); - sprintf(sensorParam[5].pathname, "/dev/ttysWK1"); + strcpy(sensorParam[5].pathname, "/dev/ttysWK1"); sensorParam[4].SensorsType = RALLY_PROTOCOL; sensorParam[4].baudrate = 9600; @@ -862,7 +862,7 @@ void Gm_InitSerialComm_Test() //sensorParam[2].devaddr = 13; sensorParam[4].devaddr = 12; memset(sensorParam[4].pathname, 0, sizeof(sensorParam[4].pathname)); - sprintf(sensorParam[4].pathname, "/dev/ttysWK1"); + strcpy(sensorParam[4].pathname, "/dev/ttysWK1"); sensorParam[6].SensorsType = SLANT_PROTOCOL; sensorParam[6].baudrate = 9600; @@ -875,7 +875,7 @@ void Gm_InitSerialComm_Test() sensorParam[6].IsNoInsta = 1; sensorParam[6].devaddr = 2; memset(sensorParam[6].pathname, 0, sizeof(sensorParam[6].pathname)); - sprintf(sensorParam[6].pathname, "/dev/ttysWK0"); + strcpy(sensorParam[6].pathname, "/dev/ttysWK0"); sensorParam[7].SensorsType = SLANT_PROTOCOL; @@ -889,7 +889,7 @@ void Gm_InitSerialComm_Test() sensorParam[7].IsNoInsta = 1; sensorParam[7].devaddr = 3; memset(sensorParam[7].pathname, 0, sizeof(sensorParam[7].pathname)); - sprintf(sensorParam[7].pathname, "/dev/ttysWK0"); + strcpy(sensorParam[7].pathname, "/dev/ttysWK0"); sensorParam[13].SensorsType = SLANT_PROTOCOL; sensorParam[13].baudrate = 9600; @@ -902,7 +902,7 @@ void Gm_InitSerialComm_Test() sensorParam[13].IsNoInsta = 1; sensorParam[13].devaddr = 5; memset(sensorParam[13].pathname, 0, sizeof(sensorParam[13].pathname)); - sprintf(sensorParam[13].pathname, "/dev/ttysWK0"); + strcpy(sensorParam[13].pathname, "/dev/ttysWK0"); #if 0 devparam[14].ProtocolIdx = SLANT_PROTOCOL; devparam[14].baudrate = 1200; @@ -936,7 +936,7 @@ void Gm_InitSerialComm_Test() sensorParam[3].CameraChannel = 1; sensorParam[3].devaddr = 0; memset(sensorParam[3].pathname, 0, sizeof(sensorParam[3].pathname)); - sprintf(sensorParam[3].pathname, "/dev/ttyS1"); + strcpy(sensorParam[3].pathname, "/dev/ttyS1"); //#endif Gm_InitSerialComm(sensorParam, "/sdcard/photo/"); } @@ -1020,7 +1020,7 @@ void Gm_InitSerialComm(SENSOR_PARAM *sensorParam, char *filedir) sprintf(szbuf, "%s 地址%d!;", szbuf, sensorParam[i].devaddr); if (0 == sensorParam[i].IsNoInsta) - sprintf(szbuf, "没有启用!;"); + sprintf(szbuf, "%s", "没有启用!;"); else { sprintf(szbuf, "%s 已启用!;", szbuf); @@ -1030,7 +1030,7 @@ void Gm_InitSerialComm(SENSOR_PARAM *sensorParam, char *filedir) if (NULL == filedir) return; memset(srdt.filedir, 0, sizeof(srdt.filedir)); - memmove(srdt.filedir, filedir, std::min(sizeof(srdt.filedir), strlen(filedir))); + memmove(srdt.filedir, filedir, std::min(sizeof(srdt.filedir), strlen(filedir))); FindDevUseSerialCommNo(); #if 0 @@ -1264,7 +1264,7 @@ void GM_StartSerialComm() switch (devparam[i].ProtocolIdx) { case WEATHER_PROTOCOL: // 气象 - sprintf(szbuf, "气象"); + sprintf(szbuf, "%s", "气象"); srdt.ms_dev[i].IsNeedSerial = 1; srdt.ms_dev[i].FirstCmdTimeCnt = get_msec(); srdt.ms_dev[i].recvdatacnt = 0; @@ -1272,7 +1272,7 @@ void GM_StartSerialComm() srdt.ms_dev[i].aiValue[j].AiState = SER_STARTSAMPLE; break; case RALLY_PROTOCOL: /* 拉力*/ - sprintf(szbuf, "拉力"); + sprintf(szbuf, "%s", "拉力"); srdt.ms_dev[i].IsNeedSerial = 1; srdt.ms_dev[i].FirstCmdTimeCnt = get_msec(); srdt.ms_dev[i].recvdatacnt = 0; @@ -1280,14 +1280,14 @@ void GM_StartSerialComm() srdt.ms_dev[i].aiValue[j].AiState = SER_STARTSAMPLE; break; case WIND_PROTOCOL: /* 风速风向*/ - sprintf(szbuf, "风速风向"); + sprintf(szbuf, "%s", "风速风向"); srdt.ms_dev[i].IsNeedSerial = 1; srdt.ms_dev[i].FirstCmdTimeCnt = get_msec(); for (j = 0; j < WEATHER_DATA_NUM; j++) srdt.ms_dev[i].aiValue[j].AiState = SER_STARTSAMPLE; break; case SLANT_PROTOCOL: /* 倾角*/ - sprintf(szbuf, "倾角"); + sprintf(szbuf, "%s", "倾角"); srdt.ms_dev[i].IsNeedSerial = 1; srdt.ms_dev[i].FirstCmdTimeCnt = get_msec(); srdt.ms_dev[i].recvdatacnt = 0; @@ -1297,11 +1297,11 @@ void GM_StartSerialComm() case PELCO_D_PROTOCOL: /* 摄像机协议*/ case PELCO_P_PROTOCOL: /* 摄像机协议*/ case SERIALCAMERA_PROTOCOL: /* 串口摄像机协议*/ - sprintf(szbuf, "摄像机"); + sprintf(szbuf, "%s", "摄像机"); break; default: srdt.ms_dev[i].IsNeedSerial = 0; - sprintf(szbuf, "无效传感器"); + sprintf(szbuf, "%s", "无效传感器"); break; } // 测试查询传感器电源状态 @@ -1564,7 +1564,7 @@ int GM_CloseTimer() Gm_CloseSensorsPower(); for (j = 0; j < MAX_SERIAL_PORT_NUM; j++) ClearCmdFormPollCmdBuf(j); - sprintf(buf, "关闭串口定时器!"); + sprintf(buf, "%s", "关闭串口定时器!"); DebugLog(8, buf, 'I'); return -1; } @@ -1635,7 +1635,7 @@ int SaveLogTofile(int commid, char *szbuf) gettimeofday(&tv, NULL); memset(filedir, 0, sizeof(filedir)); - sprintf(filedir, "/sdcard/log/"); + strcpy(filedir, "/sdcard/log/"); if (access(filedir, 0) == 0) ;//LOGI("文件路径已经存在!"); @@ -1652,11 +1652,11 @@ int SaveLogTofile(int commid, char *szbuf) if (NULL == fp) return -1; memset(buf, 0, sizeof(buf)); - sprintf(buf, "%d-%d-%d %d:%d:%d-%d ", t0.tm_year + 1900, t0.tm_mon + 1, t0.tm_mday, t0.tm_hour, t0.tm_min, t0.tm_sec, tv.tv_usec / 1000); + sprintf(buf, "%d-%d-%d %d:%d:%d-%d ", t0.tm_year + 1900, t0.tm_mon + 1, t0.tm_mday, t0.tm_hour, t0.tm_min, t0.tm_sec, (int)(tv.tv_usec / 1000)); fwrite(buf, 1, strlen(buf), fp); fwrite(szbuf, 1, strlen(szbuf), fp); memset(buf, 0, sizeof(buf)); - sprintf(buf, "\n"); + strcpy(buf, "\n"); fwrite(buf, 1, strlen(buf), fp); fclose(fp); @@ -1956,7 +1956,7 @@ void CameraPhotoPortDataProcess(SIO_PARAM_SERIAL_DEF *curserial) if (0xFF == rtumsg.MsgData[6]) { curserial->SerialCmdidx = -1; - sprintf(szbuf, "没有历史图片!结束读取图片!"); + strcpy(szbuf, "没有历史图片!结束读取图片!"); DebugLog(0, szbuf, 'I'); break; } @@ -1983,7 +1983,7 @@ void CameraPhotoPortDataProcess(SIO_PARAM_SERIAL_DEF *curserial) if (0xFF == rtumsg.MsgData[10]) { curserial->SerialCmdidx = -1; - sprintf(szbuf, "摄像机图片保存失败!"); + strcpy(szbuf, "摄像机图片保存失败!"); DebugLog(0, szbuf, 'E'); } curserial->SerialCmdidx = -1; @@ -2096,7 +2096,7 @@ void SendCmdFormPollCmdBuf(int port) len = GM_SerialComSend(&pPortParam->PollCmd[2], pPortParam->cmdlen - 2, port); if (len < 1) { - sprintf(buf, "串口%d, 发送命令失败!", port + 1); + sprintf(buf, "串口%d, 发送命令失败! fd = %d", port + 1, serialport[port].fd); DebugLog(port, buf, 'E'); } else @@ -2207,7 +2207,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam) if (lcurtime - pPortParam->FirstCmdTimeCnt > 35 * 1000) { pPortParam->SerialCmdidx = -1; - sprintf(szbuf, "串口摄像机未接或故障!结束拍照!"); + strcpy(szbuf, "串口摄像机未接或故障!结束拍照!"); DebugLog(0, szbuf, 'I'); return -1; } @@ -2685,7 +2685,7 @@ void Gm_SendPelco_DCommand(SIO_PARAM_SERIAL_DEF *pPortParam, uint32_t cmdtype) } else { - sprintf(buf, "发送像机Pelco_D命令:"); + strcpy(buf, "发送像机Pelco_D命令:"); BytestreamLOG(0, buf, commandbuf, len, 'D'); } ClearCameraCmdFormPollCmdBuf(pPortParam); @@ -3225,7 +3225,7 @@ void delete_old_files(const char *path, int days) if (stat(fullpath, &file_stat) == -1) { perror("stat"); - sprintf(szbuf, "stat"); + strcpy(szbuf, "stat"); DebugLog(8, szbuf, 'E'); continue; } @@ -3373,7 +3373,7 @@ int Gm_SetCameraSerialPortParam(int fd, unsigned int baud) if (ret < 0) { memset(szbuf, 0, sizeof(szbuf)); - sprintf(szbuf, "摄像机串口波特率等参数设置错误!"); + strcpy(szbuf, "摄像机串口波特率等参数设置错误!"); DebugLog(0, szbuf, 'E'); return -1; } @@ -3417,7 +3417,7 @@ int GM_CameraComSend(unsigned char * cSendBuf, size_t nSendLen, int fd) len = write(fd, cSendBuf, (size_t)nSendLen);/* 向串囗发送字符串 */ if (len < 0) { - sprintf(szbuf, "write data error "); + strcpy(szbuf, "write data error "); DebugLog(0, szbuf, 'E'); return -1; } @@ -3506,15 +3506,15 @@ void SendCameraCmdFormPollCmdBuf(SIO_PARAM_SERIAL_DEF *pPortParam) len = GM_CameraComSend(&pPortParam->PollCmd[2], pPortParam->cmdlen - 2, pPortParam->fd); if (len < 1) { - sprintf(buf, "摄像机串口, 发送命令失败!"); + strcpy(buf, "摄像机串口, 发送命令失败!"); DebugLog(0, buf, 'E'); } else { - sprintf(buf, "摄像机串口命令:"); + strcpy(buf, "摄像机串口命令:"); BytestreamLOG(0, buf, &pPortParam->PollCmd[2], len, 'D'); - sprintf(buf, "sendtimeconst= %lld", lctime - pPortParam->lsendtime); + sprintf(buf, "sendtimeconst= %lld", (long long)(lctime - pPortParam->lsendtime)); DebugLog(0, buf, 'W'); pPortParam->lsendtime = lctime; } @@ -3562,7 +3562,7 @@ int GM_IsCloseCamera(SIO_PARAM_SERIAL_DEF *pPortParam) pPortParam->image.state = SER_SAMPLEFAIL; else if (PHOTO_SAVE_SUCC == pPortParam->image.state) pPortParam->image.state = SAMPLINGSUCCESS; - sprintf(buf, "通道1摄像机使用完毕!可以关闭摄像机电源!"); + strcpy(buf, "通道1摄像机使用完毕!可以关闭摄像机电源!"); DebugLog(0, buf, 'I'); } return pPortParam->SerialCmdidx; @@ -3665,7 +3665,7 @@ int GM_StartSerialCameraPhoto(uint8_t channel, int cmdidx, u_char bImageSize, in if (0x00 == flag) { - sprintf(szbuf, "摄像机启动串口定时器!"); + strcpy(szbuf, "摄像机启动串口定时器!"); DebugLog(8, szbuf, 'I'); for (;;) {