整合GPS同步并修复UI刷新bug
- 将InitSystemParams功能整合到SetupSubscriptions中 - 修复Widget_M300RTK运算符错误(&改为&&) - 添加UI定时刷新功能Slot_flash_screen - 添加密码保护功能(123456) - WDA传感器添加结束符格式TODO注释 - 调整widget控件索引映射
This commit is contained in:
@ -256,7 +256,7 @@ int VehicleController::SetupEnvironment_M300RTK()
|
||||
qDebug() << "VehicleController: Func DjiPlatform_RegHalUartHandler. Register hal uart handler error";
|
||||
throw std::runtime_error("Register hal uart handler error.");
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
returnCode = DjiPlatform_RegHalNetworkHandler(&networkHandler);
|
||||
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
printf("register hal network handler error");
|
||||
@ -270,6 +270,17 @@ int VehicleController::SetupEnvironment_M300RTK()
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR;
|
||||
}
|
||||
}else {
|
||||
// returnCode = DjiPlatform_RegHalNetworkHandler(&networkHandler);
|
||||
// if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
// printf("register hal network handler error");
|
||||
// return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR;
|
||||
// }
|
||||
// // //Attention: if you want to use camera stream view function, please uncomment it.
|
||||
// returnCode = DjiPlatform_RegSocketHandler(&socketHandler);
|
||||
// if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
// printf("register osal socket handler error");
|
||||
// return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR;
|
||||
// }
|
||||
returnCode = DjiPlatform_RegHalUsbBulkHandler(&usbBulkHandler);
|
||||
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
printf("register hal usb bulk handler error");
|
||||
@ -363,15 +374,17 @@ int VehicleController::StartupPSDK_M300RTK()
|
||||
USER_LOG_ERROR("power management init error");
|
||||
}
|
||||
osalHandler->TaskSleepMs(5000);
|
||||
SetupWidget();//<2F>?<EFBFBD><C9BC>?<EFBFBD><DFBC><3E><><EFBFBD>
|
||||
SetupWidget();//<2F>?<EFBFBD><C9BC>?<EFBFBD><DFBC><3E><><EFBFBD>
|
||||
osalHandler->TaskSleepMs(5000);
|
||||
SetupMessagePipe();//widget<65><74>vehicle
|
||||
// SetupWaypointStatusCallback();
|
||||
// InitSystemParams();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<EFBFBD>?<EFBFBD><E4A3AC><EFBFBD><EFBFBD>???<CDB3>??<E4A3AC><C8BB>?<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>?<EFBFBD><C4A3><EFBFBD>?<EFBFBD>?<EFBFBD>??<CDAC><CAB1><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SetupSubscriptions();//?<><CAB5><EFBFBD><EFBFBD>?<EFBFBD>?<EFBFBD><C4B6>?<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>?<EFBFBD><CCAB><EFBFBD><EFBFBD>
|
||||
//InitSystemParams();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<EFBFBD>?<EFBFBD><E4A3AC><EFBFBD><EFBFBD>???<CDB3>??<E4A3AC><C8BB>?<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>?<EFBFBD><C4A3><EFBFBD>?<EFBFBD>?<EFBFBD>??<CDAC><CAB1><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//?<><CAB5><EFBFBD><EFBFBD>?<EFBFBD>?<EFBFBD><C4B6>?<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>?<EFBFBD><CCAB><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
qDebug()<<"M300RTK PSDK Channel Started.";
|
||||
m_clsWidget.stratmessageflash();
|
||||
SetupSubscriptions();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -463,7 +476,10 @@ int VehicleController::GetOneDataFrame(M300RTKDataFrame& M300RTKDataFrame)
|
||||
|
||||
int VehicleController::SetupSubscriptions()
|
||||
{
|
||||
QString qstrInfo = QString("Waiting for airborn gps Time Valide");
|
||||
emit Signal_UpdateVehicleMessage(qstrInfo, 0);
|
||||
T_DjiReturnCode tDjiReturnCode;
|
||||
QString qstrWBackPath("/home/data/Settings/MainSettings.ini");
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_Init();
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
@ -476,10 +492,39 @@ int VehicleController::SetupSubscriptions()
|
||||
qDebug() << "init data subscription module finished.";
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_HEIGHT_FUSION, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, DjiTest_FcSubscriptionReceiveHeightCallback);
|
||||
// Subscribe GPS related topics for time sync and homepoint altitude
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "Subscribe topic GPS_SIGNAL_LEVEL error.";
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_DATE, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "Subscribe topic GPS_DATE error.";
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_TIME, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "Subscribe topic GPS_TIME error.";
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_OF_HOMEPOINT, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "Subscribe topic ALTITUDE_OF_HOMEPOINT error.";
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
|
||||
// Subscribe other flight data topics
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_HEIGHT_FUSION, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, DjiTest_FcSubscriptionReceiveHeightCallback);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "Subscribe topic DJI_FC_SUBSCRIPTION_TOPIC_HEIGHT_FUSION error.";
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
@ -487,7 +532,6 @@ int VehicleController::SetupSubscriptions()
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_VELOCITY, DJI_DATA_SUBSCRIPTION_TOPIC_5_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
|
||||
qDebug() << "Subscribe topic DJI_FC_SUBSCRIPTION_TOPIC_VELOCITY error.";
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
@ -502,7 +546,6 @@ int VehicleController::SetupSubscriptions()
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_QUATERNION, DJI_DATA_SUBSCRIPTION_TOPIC_5_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
|
||||
qDebug() << "Subscribe topic DJI_FC_SUBSCRIPTION_TOPIC_QUATERNION error.";
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
@ -510,12 +553,89 @@ int VehicleController::SetupSubscriptions()
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_BAROMETER, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
|
||||
qDebug() << "Subscribe topic DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_BAROMETER error.";
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
|
||||
// Wait for GPS signal and sync system time
|
||||
T_DjiOsalHandler* osalHandler = DjiPlatform_GetOsalHandler();
|
||||
bool bStop = false;
|
||||
#ifdef ZZ_FLAG_TEST
|
||||
bStop = 1;
|
||||
#endif
|
||||
|
||||
T_DjiFcSubscriptionGpsSignalLevel tDjiGpsSignalLevel = { 0 };
|
||||
T_DjiDataTimestamp tTimestamp = { 0 };
|
||||
|
||||
osalHandler->TaskSleepMs(5000);
|
||||
QTime qtStart = QTime::currentTime();
|
||||
int iRetryTime = 0;
|
||||
|
||||
while (!bStop)
|
||||
{
|
||||
if (iRetryTime > 60)
|
||||
{
|
||||
bStop = 1;
|
||||
}
|
||||
osalHandler->TaskSleepMs(2000);
|
||||
DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL, (uint8_t*)&tDjiGpsSignalLevel, sizeof(T_DjiFcSubscriptionGpsSignalLevel), &tTimestamp);
|
||||
qDebug() << "GPS_SIGNAL_LEVEL:" << tDjiGpsSignalLevel;
|
||||
QTime qtElapsed = QTime::currentTime();
|
||||
if (tDjiGpsSignalLevel > 1)
|
||||
{
|
||||
bStop = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
QString qstrInfo = QString("Warning:Weak GPS signal, Waiting....GPS_SIGNAL_LEVEL:%1, Elapsed time:%2").arg(tDjiGpsSignalLevel).arg(qtStart.msecsTo(qtElapsed));
|
||||
emit Signal_UpdateVehicleMessage(qstrInfo, 0);
|
||||
}
|
||||
iRetryTime++;
|
||||
}
|
||||
|
||||
|
||||
// Get GPS datetime and sync system time
|
||||
T_DjiFcSubscriptionGpsDate tGpsDate = { 0 };
|
||||
T_DjiFcSubscriptionGpsTime tGpsTime = { 0 };
|
||||
T_DjiFcSubscriptionAltitudeOfHomePoint tAltOfHP = { 0 };
|
||||
T_DjiFcSubscriptionGpsPosition tDjiGpsPosition = { 0 };
|
||||
|
||||
DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_DATE, (uint8_t*)&tGpsDate, sizeof(T_DjiFcSubscriptionGpsDate), &tTimestamp);
|
||||
DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_TIME, (uint8_t*)&tGpsTime, sizeof(T_DjiFcSubscriptionGpsTime), &tTimestamp);
|
||||
DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_OF_HOMEPOINT, (uint8_t*)&tAltOfHP, sizeof(T_DjiFcSubscriptionAltitudeOfHomePoint), &tTimestamp);
|
||||
DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_POSITION, (uint8_t*)&tDjiGpsPosition, sizeof(T_DjiFcSubscriptionGpsPosition), &tTimestamp);
|
||||
|
||||
// Save homepoint altitude to config
|
||||
m_fHeightOfHomePoint_BM = tAltOfHP;
|
||||
float fHeightOfHomePoint_GPS = tDjiGpsPosition.z;
|
||||
QSettings qsMainSettings(qstrWBackPath, QSettings::Format::IniFormat);
|
||||
qsMainSettings.setValue(QString("WBACK/HeightOfHomePoint_BM"), QString("%1").arg(m_fHeightOfHomePoint_BM));
|
||||
qsMainSettings.setValue(QString("WBACK/HeightOfHomePoint_GPS"), QString("%1").arg(fHeightOfHomePoint_GPS));
|
||||
qDebug() << "HeightOfHomePoint_BM:" << m_fHeightOfHomePoint_BM;
|
||||
qDebug() << "HeightOfHomePoint_GPS:" << fHeightOfHomePoint_GPS;
|
||||
|
||||
// Sync system time from GPS
|
||||
QDateTime qdtDateTime;
|
||||
QString qstrDate = QString::number(tGpsDate);
|
||||
QString qstrTime = QString::number(tGpsTime);
|
||||
if (qstrTime.length() == 5)
|
||||
{
|
||||
qstrTime = "0" + qstrTime;
|
||||
}
|
||||
QString qstrDateTime = qstrDate + qstrTime;
|
||||
qdtDateTime = QDateTime::fromString(qstrDateTime, "yyyyMMddhhmmss");
|
||||
|
||||
if (qdtDateTime.isValid())
|
||||
{
|
||||
QString command = "date -s \"" + qdtDateTime.toString("yyyy-MM-dd hh:mm:ss") + "\"";
|
||||
system(command.toLatin1().data());
|
||||
|
||||
time_t stdTime = qdtDateTime.toTime_t();
|
||||
stime(&stdTime);
|
||||
qDebug() << "System time synced from GPS:" << qdtDateTime.toString("yyyy-MM-dd hh:mm:ss");
|
||||
}
|
||||
qstrInfo = QString("begin system");
|
||||
emit Signal_UpdateVehicleMessage(qstrInfo, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -602,7 +722,7 @@ int VehicleController::SetupMessagePipe()
|
||||
int VehicleController::SetupWidget()
|
||||
{
|
||||
m_clsWidget.SetUIFilePath("/home/DJI/Widget",100);
|
||||
// m_clsWidget.SetUIFilePath("/home/pi/airborn/configfile/DJI/Widget",100);
|
||||
//m_clsWidget.SetUIFilePath("/home/pi/airborn/configfile/DJI/Widget",100);
|
||||
|
||||
|
||||
m_clsWidget.SetSettings(m_struUIConfig);
|
||||
@ -611,251 +731,6 @@ int VehicleController::SetupWidget()
|
||||
return 0;
|
||||
}
|
||||
|
||||
int VehicleController::InitSystemParams()
|
||||
{
|
||||
T_DjiReturnCode tDjiReturnCode;
|
||||
QString qstrWBackPath("/home/data/Settings/MainSettings.ini");
|
||||
|
||||
|
||||
///Init
|
||||
tDjiReturnCode = DjiFcSubscription_Init();
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "init data subscription module error.";
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug() << "InitSystemDateTime started.";
|
||||
}
|
||||
|
||||
///SubscribeTopic GPS_SIGNAL_LEVEL
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
|
||||
qDebug() << "Subscribe topic DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL error.";
|
||||
return -1;
|
||||
}
|
||||
|
||||
///SubscribeTopic GPS_DATE
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_DATE, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
|
||||
qDebug() << "Subscribe topic DJI_FC_SUBSCRIPTION_TOPIC_GPS_DATE error.";
|
||||
return -2;
|
||||
}
|
||||
|
||||
///SubscribeTopic GPS_TIME
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_TIME, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
|
||||
qDebug() << "Subscribe topic DJI_FC_SUBSCRIPTION_TOPIC_GPS_TIME error.";
|
||||
return -3;
|
||||
}
|
||||
|
||||
///SubscribeTopic ALTITUDE_OF_HOMEPOINT
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_OF_HOMEPOINT, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
|
||||
qDebug() << "Subscribe topic DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_OF_HOMEPOINT error.";
|
||||
return -4;
|
||||
}
|
||||
|
||||
///SubscribeTopic DJI_FC_SUBSCRIPTION_TOPIC_GPS_POSITION
|
||||
tDjiReturnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_POSITION, DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ, NULL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "Subscribe topic DJI_FC_SUBSCRIPTION_TOPIC_GPS_POSITION error.";
|
||||
return -5;
|
||||
}
|
||||
|
||||
///Make sure Gps avalible
|
||||
T_DjiOsalHandler* osalHandler = DjiPlatform_GetOsalHandler();
|
||||
bool bStop = false;
|
||||
/////for test
|
||||
#ifdef ZZ_FLAG_TEST
|
||||
|
||||
bStop = 1;
|
||||
#endif
|
||||
|
||||
|
||||
T_DjiFcSubscriptionGpsSignalLevel tDjiGpsSignalLevel = { 0 };
|
||||
T_DjiDataTimestamp tTimestamp = { 0 };
|
||||
|
||||
osalHandler->TaskSleepMs(5000);
|
||||
QTime qtStart = QTime::currentTime();
|
||||
|
||||
int iRetryTime = 0;
|
||||
|
||||
while (!bStop)
|
||||
{
|
||||
if (iRetryTime>60)
|
||||
{
|
||||
bStop = 1;
|
||||
}
|
||||
osalHandler->TaskSleepMs(2000);
|
||||
DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL, (uint8_t*)&tDjiGpsSignalLevel, sizeof(T_DjiFcSubscriptionGpsSignalLevel), &tTimestamp);
|
||||
qDebug() << "DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL" << tDjiGpsSignalLevel;
|
||||
QTime qtElapsed = QTime::currentTime();
|
||||
if (tDjiGpsSignalLevel>1)
|
||||
{
|
||||
bStop = 1;
|
||||
//emit Signal_UpdatePSDKFloatMessage("");
|
||||
}
|
||||
else
|
||||
{
|
||||
QString qstrInfo = QString("Warning:Weak GPS signal, Waiting....GPS_SIGNAL_LEVEL:%1, Elapsed time:%2").arg(tDjiGpsSignalLevel).arg(qtStart.msecsTo(qtElapsed));
|
||||
emit Signal_UpdateVehicleMessage(qstrInfo);
|
||||
}
|
||||
|
||||
iRetryTime++;
|
||||
}
|
||||
//osalHandler->TaskSleepMs(2000);
|
||||
|
||||
///Get GPS Datetime
|
||||
T_DjiFcSubscriptionGpsDate tGpsDate = { 0 };
|
||||
T_DjiFcSubscriptionGpsTime tGpsTime = { 0 };
|
||||
///Get Other
|
||||
T_DjiFcSubscriptionAltitudeOfHomePoint tAltOfHP = { 0 };
|
||||
T_DjiFcSubscriptionGpsPosition tDjiGpsPosition = { 0 };
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_DATE, (uint8_t*)&tGpsDate, sizeof(T_DjiFcSubscriptionGpsDate), &tTimestamp);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_GetLatestValueOfTopic module error,DJI_FC_SUBSCRIPTION_TOPIC_GPS_DATE.";
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_TIME, (uint8_t*)&tGpsTime, sizeof(T_DjiFcSubscriptionGpsTime), &tTimestamp);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_GetLatestValueOfTopic module error,DJI_FC_SUBSCRIPTION_TOPIC_GPS_DATE.";
|
||||
return -2;
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_OF_HOMEPOINT, (uint8_t*)&tAltOfHP, sizeof(T_DjiFcSubscriptionAltitudeOfHomePoint), &tTimestamp);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_GetLatestValueOfTopic module error,DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_OF_HOMEPOINT.";
|
||||
return -3;
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_POSITION, (uint8_t*)&tDjiGpsPosition, sizeof(T_DjiFcSubscriptionGpsPosition), &tTimestamp);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_GetLatestValueOfTopic error.DJI_FC_SUBSCRIPTION_TOPIC_VELOCITY";
|
||||
return -4;
|
||||
}
|
||||
|
||||
m_fHeightOfHomePoint_BM = tAltOfHP;
|
||||
float fHeightOfHomePoint_GPS= tDjiGpsPosition.z;
|
||||
QString qstrHeightOfHomePoint_BM = QString("%1").arg(m_fHeightOfHomePoint_BM);
|
||||
QString qstrHeightOfHomePoint_GPS = QString("%1").arg(tDjiGpsPosition.z);
|
||||
//////////////////////////////////////////////////////////////////////////write back AOHP
|
||||
QSettings qsMainSettings(qstrWBackPath, QSettings::Format::IniFormat);
|
||||
qsMainSettings.setValue(QString("WBACK/HeightOfHomePoint_BM"), qstrHeightOfHomePoint_BM);
|
||||
qsMainSettings.setValue(QString("WBACK/HeightOfHomePoint_GPS"), qstrHeightOfHomePoint_GPS);
|
||||
qDebug() << qstrHeightOfHomePoint_BM << m_fHeightOfHomePoint_BM;
|
||||
qDebug() << qstrHeightOfHomePoint_GPS << tDjiGpsPosition.z;
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//qDebug() << "Date" << tGpsDate << "Time" << tGpsTime;
|
||||
|
||||
QDateTime qdtDateTime;
|
||||
QString qstrDate, qstrTime,qstrDateTime;
|
||||
qstrDate = QString::number(tGpsDate);
|
||||
qstrTime = QString::number(tGpsTime);
|
||||
if (qstrTime.length()==5)
|
||||
{
|
||||
qstrTime = "0" + qstrTime/*+"000"*/;
|
||||
}
|
||||
// else
|
||||
// {
|
||||
// qstrTime= qstrTime + "000";
|
||||
// }
|
||||
// QDate qd;
|
||||
// qd = QDate::fromString("20121022", "yyyyMMdd");
|
||||
// QTime qt;
|
||||
// qt.fromString(qstrTime,"hhmmsszzz");
|
||||
qstrDateTime = qstrDate + qstrTime;
|
||||
qdtDateTime = QDateTime::fromString(qstrDateTime, "yyyyMMddhhmmss");
|
||||
QString command="date -s \""+qdtDateTime.toString("yyyy-MM-dd hh:mm:ss")+"\"";
|
||||
system(command.toLatin1().data());
|
||||
|
||||
time_t stdTime = qdtDateTime.toTime_t();
|
||||
|
||||
if (qdtDateTime.isValid())
|
||||
{
|
||||
stime(&stdTime);
|
||||
}
|
||||
#ifndef ZZ_FLAG_TEST
|
||||
//stime(&stdTime);
|
||||
#else
|
||||
|
||||
#endif
|
||||
|
||||
// qDebug() << qstrDate;
|
||||
// qDebug() << qstrTime;
|
||||
// qDebug() << qd.isValid();
|
||||
// qDebug() << qd.toString("yyyyMMdd");
|
||||
// qDebug() << qt.isValid();
|
||||
// qDebug() << qt;
|
||||
qDebug() <<"[GPS Time Check]" << qdtDateTime.isValid();
|
||||
qDebug() <<"[GPS Time:]" << qstrDateTime << "####" << qdtDateTime.toString("yyyyMMddhhmmsszzz");
|
||||
|
||||
///UnSubscribeTopic
|
||||
/*tDjiReturnCode = DjiFcSubscription_UnSubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_UnSubscribeTopic module error,DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL.";
|
||||
return -11;
|
||||
}*/
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_UnSubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_UnSubscribeTopic module error,DJI_FC_SUBSCRIPTION_TOPIC_GPS_SIGNAL_LEVEL.";
|
||||
return -11;
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_UnSubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_DATE);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_UnSubscribeTopic module error,DJI_FC_SUBSCRIPTION_TOPIC_GPS_DATE.";
|
||||
return -12;
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_UnSubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_TIME);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_UnSubscribeTopic module error,DJI_FC_SUBSCRIPTION_TOPIC_GPS_TIME.";
|
||||
return -13;
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_UnSubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_OF_HOMEPOINT);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_UnSubscribeTopic module error,DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_OF_HOMEPOINT.";
|
||||
return -14;
|
||||
}
|
||||
|
||||
tDjiReturnCode = DjiFcSubscription_UnSubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_POSITION);
|
||||
if (tDjiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "DjiFcSubscription_UnSubscribeTopic module error,DJI_FC_SUBSCRIPTION_TOPIC_ALTITUDE_OF_HOMEPOINT.";
|
||||
return -15;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int VehicleController::Slot_OnChangeCaptureMode(char cMode)
|
||||
{
|
||||
//ZZ_Widget_M300RTK* test = qobject_cast<ZZ_Widget_M300RTK*>(sender());
|
||||
|
||||
@ -70,7 +70,7 @@ private:
|
||||
int SetupWidget();
|
||||
///
|
||||
public:///for test
|
||||
int InitSystemParams();
|
||||
// int InitSystemParams();
|
||||
int SetupSubscriptions();
|
||||
///
|
||||
public:///for test
|
||||
@ -84,7 +84,7 @@ signals:
|
||||
int Signal_StartCapture();
|
||||
int Signal_StopCapture();
|
||||
|
||||
void Signal_UpdateVehicleMessage(QString qstrMessage);
|
||||
void Signal_UpdateVehicleMessage(QString qstrMessage,int lineid);
|
||||
public slots:
|
||||
int Slot_OnChangeCaptureMode(char cMode);
|
||||
///for test
|
||||
|
||||
@ -1,391 +1,455 @@
|
||||
#include "Widget_M300RTK.h"
|
||||
enum AireType
|
||||
{
|
||||
Aire_Aire = 1,
|
||||
Aire_N2=0,
|
||||
#define RLX_LINENUMBER 0
|
||||
|
||||
enum AireType {
|
||||
Aire_Aire = 1,
|
||||
Aire_N2 = 0,
|
||||
Aire_NONE=2,
|
||||
};
|
||||
|
||||
enum Target_Gas {
|
||||
Target_CO2 = 0,
|
||||
Target_H2O = 1,
|
||||
Target_CO2 = 0,
|
||||
Target_H2O = 1,
|
||||
Target_NONE=2,
|
||||
};
|
||||
|
||||
int32_t CuttrentGasValue = 0;
|
||||
int32_t passwordforsetting = 0;
|
||||
int32_t ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn = 0;
|
||||
int32_t ZZ_Widget_M300RTK::m_siDjiWidgetValueList_CaptureMode = 1;
|
||||
int32_t ZZ_Widget_M300RTK::m_siDjiWidgetValueList_CaptureMode = 1;
|
||||
int32_t ZZ_Widget_M300RTK::m_siDjiWidgetValueList_DecisionHeight = 1;
|
||||
int32_t ZZ_Widget_M300RTK::m_siDjiWidgetValueList_SamplingRate = 0;
|
||||
AireType CurrentAireType = Aire_Aire;
|
||||
Target_Gas CurrentTargetGas = Target_CO2;
|
||||
AireType CurrentAireType = Aire_NONE;
|
||||
Target_Gas CurrentTargetGas = Target_NONE;
|
||||
float NowTempreature = 0;
|
||||
bool isnowsystemWorking = false;
|
||||
QStringList Strforshow;
|
||||
QStringList StrforshowCurrent;
|
||||
QStringList StrforshowLast;
|
||||
vector<int> indexforshow;
|
||||
|
||||
ZZ_Widget_M300RTK::ZZ_Widget_M300RTK(QObject* parent /*= nullptr*/)
|
||||
{
|
||||
m_iFlagIsVehicleCapturing = 0;
|
||||
ZZ_Widget_M300RTK::ZZ_Widget_M300RTK(QObject *parent /*= nullptr*/) {
|
||||
m_iFlagIsVehicleCapturing = 0;
|
||||
Strforshow.append("");
|
||||
Strforshow.append("");
|
||||
Strforshow.append("");
|
||||
Strforshow.append("");
|
||||
Strforshow.append("");
|
||||
// Strforshow.append("");
|
||||
// Strforshow.append("");
|
||||
StrforshowCurrent = Strforshow;
|
||||
StrforshowLast = Strforshow;
|
||||
indexforshow.resize(Strforshow.size());
|
||||
for (int i = 0; i < indexforshow.size(); i++) {
|
||||
indexforshow[i] = 0;
|
||||
}
|
||||
connect(&m_TimerForflash, &QTimer::timeout, this, &ZZ_Widget_M300RTK::Slot_flash_screen);
|
||||
|
||||
connect(this,&ZZ_Widget_M300RTK::Signal_UpdatePSDKFloatMessage,this,&ZZ_Widget_M300RTK::Slot_UpdatePSDKFloatMessage);
|
||||
|
||||
connect(this, &ZZ_Widget_M300RTK::Signal_UpdatePSDKFloatMessage, this,
|
||||
&ZZ_Widget_M300RTK::Slot_UpdatePSDKFloatMessage);
|
||||
m_bIsFlashOn = false;
|
||||
}
|
||||
|
||||
ZZ_Widget_M300RTK::~ZZ_Widget_M300RTK()
|
||||
{
|
||||
|
||||
ZZ_Widget_M300RTK::~ZZ_Widget_M300RTK() {
|
||||
}
|
||||
|
||||
int ZZ_Widget_M300RTK::InitParam()
|
||||
{
|
||||
return 0;
|
||||
int ZZ_Widget_M300RTK::InitParam() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_Widget_M300RTK::SetUIFilePath(char* pcUIFilePath, uint16_t uiLength)
|
||||
{
|
||||
if (uiLength>=256)
|
||||
{
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func SetUIFilePath. File path is too long";
|
||||
return 1;
|
||||
}
|
||||
int ZZ_Widget_M300RTK::SetUIFilePath(char *pcUIFilePath, uint16_t uiLength) {
|
||||
if (uiLength >= 256) {
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func SetUIFilePath. File path is too long";
|
||||
return 1;
|
||||
}
|
||||
|
||||
QByteArray qbaTemp(pcUIFilePath);
|
||||
m_qstrFilePath = qbaTemp;
|
||||
QByteArray qbaTemp(pcUIFilePath);
|
||||
m_qstrFilePath = qbaTemp;
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int ZZ_Widget_M300RTK::UpdateCaptureStatus(int iStatus)
|
||||
{
|
||||
m_iFlagIsVehicleCapturing = iStatus;
|
||||
int ZZ_Widget_M300RTK::UpdateCaptureStatus(int iStatus) {
|
||||
m_iFlagIsVehicleCapturing = iStatus;
|
||||
}
|
||||
|
||||
int ZZ_Widget_M300RTK::GetSettings(UIConfig &struUIConfig)
|
||||
{
|
||||
struUIConfig.sDecisionHeight = m_siDjiWidgetValueList_DecisionHeight;
|
||||
struUIConfig.sCaptureMode = m_siDjiWidgetValueList_CaptureMode;
|
||||
struUIConfig.sSamplingRate = m_siDjiWidgetValueList_SamplingRate;
|
||||
return 0;
|
||||
int ZZ_Widget_M300RTK::GetSettings(UIConfig &struUIConfig) {
|
||||
struUIConfig.sDecisionHeight = m_siDjiWidgetValueList_DecisionHeight;
|
||||
struUIConfig.sCaptureMode = m_siDjiWidgetValueList_CaptureMode;
|
||||
struUIConfig.sSamplingRate = m_siDjiWidgetValueList_SamplingRate;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_Widget_M300RTK::SetSettings(UIConfig struUIConfig)
|
||||
{
|
||||
m_struUIConfig = struUIConfig;
|
||||
m_siDjiWidgetValueList_CaptureMode = struUIConfig.sCaptureMode;
|
||||
m_siDjiWidgetValueList_DecisionHeight = struUIConfig.sDecisionHeight;
|
||||
m_siDjiWidgetValueList_SamplingRate = struUIConfig.sSamplingRate;
|
||||
return 0;
|
||||
int ZZ_Widget_M300RTK::SetSettings(UIConfig struUIConfig) {
|
||||
m_struUIConfig = struUIConfig;
|
||||
m_siDjiWidgetValueList_CaptureMode = struUIConfig.sCaptureMode;
|
||||
m_siDjiWidgetValueList_DecisionHeight = struUIConfig.sDecisionHeight;
|
||||
m_siDjiWidgetValueList_SamplingRate = struUIConfig.sSamplingRate;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_Widget_M300RTK::PreparteEnvironment()
|
||||
{
|
||||
|
||||
void ZZ_Widget_M300RTK::stratmessageflash() {
|
||||
|
||||
T_DjiReturnCode djiStat;
|
||||
|
||||
static const T_DjiWidgetHandlerListItem s_DjiWidgetHandlerList[] =
|
||||
{
|
||||
{0, DJI_WIDGET_TYPE_SWITCH, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{1, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{2, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{3, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{4, DJI_WIDGET_TYPE_INT_INPUT_BOX, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{5, DJI_WIDGET_TYPE_BUTTON, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{6, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{7, DJI_WIDGET_TYPE_BUTTON, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{8, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{9, DJI_WIDGET_TYPE_INT_INPUT_BOX, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{10, DJI_WIDGET_TYPE_BUTTON, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this}
|
||||
};
|
||||
|
||||
djiStat = DjiWidget_Init();
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func DjiWidget_Init. Dji widget init error"<< djiStat;
|
||||
//return djiStat;
|
||||
}
|
||||
|
||||
djiStat = DjiWidget_RegDefaultUiConfigByDirPath(m_qstrFilePath.toLatin1());
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << m_qstrFilePath.toLatin1();
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func DjiWidget_RegDefaultUiConfigByDirPath.Add default widget ui config error";
|
||||
return djiStat;
|
||||
}
|
||||
|
||||
djiStat = DjiWidget_RegHandlerList(s_DjiWidgetHandlerList, sizeof(s_DjiWidgetHandlerList) / sizeof(T_DjiWidgetHandlerListItem));
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() <<"ZZ_Widget_M300RTK: Func DjiWidget_RegHandlerList.Set widget handler list error";
|
||||
return djiStat;
|
||||
}
|
||||
|
||||
return 0;
|
||||
m_TimerForflash.start(5000);
|
||||
m_bIsFlashOn = true;
|
||||
}
|
||||
|
||||
int ZZ_Widget_M300RTK::UploadResources()
|
||||
int ZZ_Widget_M300RTK::PreparteEnvironment() {
|
||||
T_DjiReturnCode djiStat;
|
||||
|
||||
static const T_DjiWidgetHandlerListItem s_DjiWidgetHandlerList[] =
|
||||
{
|
||||
{0, DJI_WIDGET_TYPE_SWITCH, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{1, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{2, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{3, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{
|
||||
return 0;
|
||||
4, DJI_WIDGET_TYPE_INT_INPUT_BOX, ZZ_Widget_M300RTK::OnUpdateWidgetValue,
|
||||
ZZ_Widget_M300RTK::OnLoadWidgetValue, this
|
||||
},
|
||||
{
|
||||
5, DJI_WIDGET_TYPE_INT_INPUT_BOX, ZZ_Widget_M300RTK::OnUpdateWidgetValue,
|
||||
ZZ_Widget_M300RTK::OnLoadWidgetValue, this
|
||||
},
|
||||
{6, DJI_WIDGET_TYPE_BUTTON, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{7, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{8, DJI_WIDGET_TYPE_BUTTON, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{9, DJI_WIDGET_TYPE_LIST, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this},
|
||||
{
|
||||
10, DJI_WIDGET_TYPE_INT_INPUT_BOX, ZZ_Widget_M300RTK::OnUpdateWidgetValue,
|
||||
ZZ_Widget_M300RTK::OnLoadWidgetValue, this
|
||||
},
|
||||
{11, DJI_WIDGET_TYPE_BUTTON, ZZ_Widget_M300RTK::OnUpdateWidgetValue, ZZ_Widget_M300RTK::OnLoadWidgetValue, this}
|
||||
};
|
||||
|
||||
djiStat = DjiWidget_Init();
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func DjiWidget_Init. Dji widget init error" << djiStat;
|
||||
//return djiStat;
|
||||
}
|
||||
|
||||
djiStat = DjiWidget_RegDefaultUiConfigByDirPath(m_qstrFilePath.toLatin1());
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
qDebug() << m_qstrFilePath.toLatin1();
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func DjiWidget_RegDefaultUiConfigByDirPath.Add default widget ui config error";
|
||||
return djiStat;
|
||||
}
|
||||
|
||||
djiStat = DjiWidget_RegHandlerList(s_DjiWidgetHandlerList,
|
||||
sizeof(s_DjiWidgetHandlerList) / sizeof(T_DjiWidgetHandlerListItem));
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func DjiWidget_RegHandlerList.Set widget handler list error";
|
||||
return djiStat;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_Widget_M300RTK::test_UpdatePSDKFloatMessage(QString qstrMessage)
|
||||
{
|
||||
T_DjiReturnCode djiStat;
|
||||
|
||||
djiStat = DjiWidgetFloatingWindow_ShowMessage(qstrMessage.toLatin1());
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func test_UpdatePSDKFloatMessage.Floating window show message error";
|
||||
}
|
||||
|
||||
return 0;
|
||||
int ZZ_Widget_M300RTK::UploadResources() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
T_DjiReturnCode ZZ_Widget_M300RTK::OnUpdateWidgetValue(E_DjiWidgetType widgetType, uint32_t index, int32_t value, void* userData)
|
||||
{
|
||||
ZZ_Widget_M300RTK* pCaller = (ZZ_Widget_M300RTK*)userData;
|
||||
int ZZ_Widget_M300RTK::test_UpdatePSDKFloatMessage(QString qstrMessage) {
|
||||
T_DjiReturnCode djiStat;
|
||||
|
||||
djiStat = DjiWidgetFloatingWindow_ShowMessage(qstrMessage.toLatin1());
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func test_UpdatePSDKFloatMessage.Floating window show message error";
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
T_DjiReturnCode ZZ_Widget_M300RTK::OnUpdateWidgetValue(E_DjiWidgetType widgetType, uint32_t index, int32_t value,
|
||||
void *userData) {
|
||||
ZZ_Widget_M300RTK *pCaller = (ZZ_Widget_M300RTK *) userData;
|
||||
|
||||
|
||||
if (pCaller->m_iFlagIsVehicleCapturing)
|
||||
{
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
if (widgetType == DJI_WIDGET_TYPE_INT_INPUT_BOX) {
|
||||
if (index == 4)
|
||||
{
|
||||
qDebug()<<"now tempreatrue is "<<value;
|
||||
NowTempreature=value;
|
||||
}
|
||||
if (index == 9)
|
||||
{
|
||||
qDebug() << "now gas value is " << value;
|
||||
CuttrentGasValue = value;
|
||||
}
|
||||
}
|
||||
if (widgetType== DJI_WIDGET_TYPE_BUTTON) {
|
||||
if (index==5)
|
||||
{
|
||||
//qDebug()<<"now value is "<<value;
|
||||
if (pCaller->m_iFlagIsVehicleCapturing) {
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
if (widgetType == DJI_WIDGET_TYPE_INT_INPUT_BOX) {
|
||||
if (index == 5) {
|
||||
qDebug() << "now tempreatrue is " << value;
|
||||
NowTempreature = value;
|
||||
}
|
||||
if (index == 10) {
|
||||
qDebug() << "now gas value is " << value;
|
||||
CuttrentGasValue = value;
|
||||
}
|
||||
if (index==4) {
|
||||
passwordforsetting = value;
|
||||
qDebug() << "now password is " << passwordforsetting;
|
||||
}
|
||||
}
|
||||
if (widgetType == DJI_WIDGET_TYPE_BUTTON) {
|
||||
if (passwordforsetting!=123456) {
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("wrong password",RLX_LINENUMBER);
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
if (index == 6) {
|
||||
//qDebug()<<"now value is "<<value;
|
||||
|
||||
|
||||
|
||||
if (value==1)
|
||||
{
|
||||
if (isnowsystemWorking==true) return 0;
|
||||
if (NowTempreature==0) {
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("please set correct temperature first");
|
||||
if (value == 1) {
|
||||
if (isnowsystemWorking == true) return 0;
|
||||
if (NowTempreature == 0) {
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("please set correct temperature first",RLX_LINENUMBER);
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
isnowsystemWorking = true;
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage(
|
||||
"calibrating wind Sensor temperature:" + QString::number(NowTempreature * 1.0 / 10),RLX_LINENUMBER);
|
||||
//qt 消息队列执行
|
||||
pCaller->emit SendCommand("WDA", "StartCalibrate#" + QString::number(NowTempreature * 1.0 / 10));
|
||||
}
|
||||
}
|
||||
if (index == 8) {
|
||||
if (value == 1) {
|
||||
if (isnowsystemWorking == true) return 0;
|
||||
isnowsystemWorking = true;
|
||||
QString AiretypeStr;
|
||||
if (CurrentAireType == Aire_Aire) {
|
||||
AiretypeStr = "Air";
|
||||
} else if (CurrentAireType == Aire_N2) {
|
||||
AiretypeStr = "N2";
|
||||
}
|
||||
else {
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("please select correct aire type first",RLX_LINENUMBER);
|
||||
isnowsystemWorking = false;
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
qDebug() << "start gas sensor zero calibrate with " + AiretypeStr;
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("ZeroCalibrate with " + AiretypeStr,RLX_LINENUMBER);
|
||||
QCoreApplication::processEvents();
|
||||
pCaller->emit SendCommand("GAS", "ZeroCalibrate#" + AiretypeStr);
|
||||
qDebug() << "---------------------------------------------";
|
||||
}
|
||||
}
|
||||
if (index == 11) {
|
||||
if (value == 1) {
|
||||
if (isnowsystemWorking == true) return 0;
|
||||
isnowsystemWorking = true;
|
||||
QString TargetGasStr;
|
||||
if (CurrentTargetGas == Target_CO2) {
|
||||
TargetGasStr = "CO2";
|
||||
} else if (CurrentTargetGas==Target_H2O) {
|
||||
TargetGasStr = "H2O";
|
||||
}
|
||||
else {
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("please select correct target gas first",RLX_LINENUMBER);
|
||||
isnowsystemWorking = false;
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
isnowsystemWorking= true;
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("calibrating wind Sensor temperature:"+QString::number(NowTempreature*1.0/10));
|
||||
pCaller->emit SendCommand("WDA", "StartCalibrate#"+QString::number(NowTempreature*1.0/10));
|
||||
}
|
||||
//确保当前气体值不为0
|
||||
if (CuttrentGasValue == 0) {
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("please set correct gas value first",RLX_LINENUMBER);
|
||||
isnowsystemWorking = false;
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (index==7) {
|
||||
if (value==1)
|
||||
{
|
||||
if (isnowsystemWorking==true) return 0;
|
||||
isnowsystemWorking= true;
|
||||
QString AiretypeStr;
|
||||
if (CurrentAireType==Aire_Aire) {
|
||||
AiretypeStr="Air";
|
||||
}
|
||||
else {
|
||||
AiretypeStr="N2";
|
||||
}
|
||||
qDebug()<<"start gas sensor zero calibrate with "+AiretypeStr;
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("ZeroCalibrate with "+AiretypeStr);
|
||||
pCaller->emit SendCommand("GAS", "ZeroCalibrate#"+AiretypeStr);
|
||||
}
|
||||
}
|
||||
if (index==10) {
|
||||
if (value==1)
|
||||
{
|
||||
if (isnowsystemWorking==true) return 0;
|
||||
isnowsystemWorking= true;
|
||||
QString TargetGasStr;
|
||||
if (CurrentTargetGas==Target_CO2) {
|
||||
TargetGasStr="CO2";
|
||||
}
|
||||
else {
|
||||
TargetGasStr="H2O";
|
||||
}
|
||||
//确保当前气体值不为0
|
||||
if (CuttrentGasValue==0) {
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("please set correct gas value first");
|
||||
isnowsystemWorking=false;
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
|
||||
qDebug()<<"start gas sensor span calibrate with "+TargetGasStr+" value is "+QString::number(CuttrentGasValue);
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage(TargetGasStr+" Span Calibrating gas value is "+QString::number(CuttrentGasValue));
|
||||
pCaller->emit SendCommand("GAS", "SpanCalibrate#"+TargetGasStr+"#"+QString::number(CuttrentGasValue));
|
||||
}
|
||||
}
|
||||
qDebug() << "start gas sensor span calibrate with " + TargetGasStr + " value is " + QString::number(
|
||||
CuttrentGasValue);
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage(
|
||||
TargetGasStr + " Span Calibrating gas value is " + QString::number(CuttrentGasValue),
|
||||
RLX_LINENUMBER);
|
||||
pCaller->emit SendCommand(
|
||||
"GAS", "SpanCalibrate#" + TargetGasStr + "#" + QString::number(CuttrentGasValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (widgetType == DJI_WIDGET_TYPE_SWITCH) {
|
||||
if (ZZ_Widget_M300RTK::m_siDjiWidgetValueList_CaptureMode == 0) {
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("Automatic capture mode.Please don't use this function",
|
||||
RLX_LINENUMBER);
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
} else {
|
||||
if (value == 1) {
|
||||
if (isnowsystemWorking == true) {
|
||||
// ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn = !value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
isnowsystemWorking = true;
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("start capture",RLX_LINENUMBER);
|
||||
pCaller->emit Signal_StartCapture();
|
||||
} else {
|
||||
if (isnowsystemWorking == false) {
|
||||
// ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn = !value;
|
||||
return 0;
|
||||
}
|
||||
isnowsystemWorking = false;
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("capture stopped",RLX_LINENUMBER);
|
||||
pCaller->emit Signal_StopCapture();
|
||||
}
|
||||
}
|
||||
ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn = value;
|
||||
|
||||
///for test
|
||||
QString qstrTest;
|
||||
qDebug() << "OnUpdateWidgetValue " << "widgetType " << widgetType << "index " << index << "value " << value;
|
||||
qstrTest = QString("index:%1,value:%2").arg(index, value);
|
||||
//pCaller->test_UpdatePSDKFloatMessage(qstrTest);
|
||||
//qstrTest = "12345";
|
||||
//pCaller->emit Signal_UpdatePSDKFloatMessage(qstrTest);
|
||||
}
|
||||
|
||||
|
||||
if (widgetType == DJI_WIDGET_TYPE_SWITCH )
|
||||
{
|
||||
if (ZZ_Widget_M300RTK::m_siDjiWidgetValueList_CaptureMode==0)
|
||||
{
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("Automatic capture mode.Please don't use this function");
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (value==1)
|
||||
{
|
||||
if (isnowsystemWorking==true) {
|
||||
// ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn = !value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
isnowsystemWorking= true;
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("start capture");
|
||||
pCaller->emit Signal_StartCapture();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isnowsystemWorking==false) {
|
||||
// ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn = !value;
|
||||
return 0;
|
||||
}
|
||||
isnowsystemWorking= false;
|
||||
pCaller->emit Signal_UpdatePSDKFloatMessage("capture stopped");
|
||||
pCaller->emit Signal_StopCapture();
|
||||
}
|
||||
|
||||
}
|
||||
ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn = value;
|
||||
|
||||
///for test
|
||||
QString qstrTest;
|
||||
qDebug() << "OnUpdateWidgetValue " << "widgetType " << widgetType << "index " << index << "value " << value;
|
||||
qstrTest = QString("index:%1,value:%2").arg(index, value);
|
||||
//pCaller->test_UpdatePSDKFloatMessage(qstrTest);
|
||||
//qstrTest = "12345";
|
||||
//pCaller->emit Signal_UpdatePSDKFloatMessage(qstrTest);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (widgetType == DJI_WIDGET_TYPE_LIST )
|
||||
{
|
||||
if (index==1)
|
||||
{
|
||||
pCaller->emit Signal_UpdateCaptureMode((char)value);
|
||||
ZZ_Widget_M300RTK::m_siDjiWidgetValueList_CaptureMode = value;
|
||||
}
|
||||
else if (index == 2)
|
||||
{
|
||||
ZZ_Widget_M300RTK::m_siDjiWidgetValueList_DecisionHeight = value;
|
||||
}
|
||||
else if (index == 3)
|
||||
{
|
||||
ZZ_Widget_M300RTK::m_siDjiWidgetValueList_SamplingRate = value;
|
||||
}
|
||||
else if (index==6)
|
||||
{
|
||||
CurrentAireType = (AireType)value;
|
||||
}
|
||||
else if (index==8)
|
||||
{
|
||||
CurrentTargetGas = (Target_Gas)value;
|
||||
}
|
||||
if (widgetType == DJI_WIDGET_TYPE_LIST) {
|
||||
if (index == 1) {
|
||||
pCaller->emit Signal_UpdateCaptureMode((char) value);
|
||||
ZZ_Widget_M300RTK::m_siDjiWidgetValueList_CaptureMode = value;
|
||||
} else if (index == 2) {
|
||||
ZZ_Widget_M300RTK::m_siDjiWidgetValueList_DecisionHeight = value;
|
||||
} else if (index == 3) {
|
||||
ZZ_Widget_M300RTK::m_siDjiWidgetValueList_SamplingRate = value;
|
||||
} else if (index == 7) {
|
||||
CurrentAireType = (AireType) value;
|
||||
} else if (index == 9) {
|
||||
CurrentTargetGas = (Target_Gas) value;
|
||||
}
|
||||
|
||||
|
||||
#ifdef ZZ_FLAG_TEST
|
||||
qDebug() << "OnUpdateWidgetValue " << "widgetType " << widgetType << "index " << index << "value " << value;
|
||||
qDebug() << "OnUpdateWidgetValue " << "widgetType " << widgetType << "index " << index << "value " << value;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
T_DjiReturnCode ZZ_Widget_M300RTK::OnLoadWidgetValue(E_DjiWidgetType widgetType, uint32_t index, int32_t* value, void* userData)
|
||||
{
|
||||
T_DjiReturnCode ZZ_Widget_M300RTK::OnLoadWidgetValue(E_DjiWidgetType widgetType, uint32_t index, int32_t *value,
|
||||
void *userData) {
|
||||
if (widgetType == DJI_WIDGET_TYPE_SWITCH) {
|
||||
//qDebug() << "OnLoadWidgetValue " << "widgetType " << widgetType << "index " << index << "value " << value;
|
||||
|
||||
if (widgetType == DJI_WIDGET_TYPE_SWITCH)
|
||||
{
|
||||
//qDebug() << "OnLoadWidgetValue " << "widgetType " << widgetType << "index " << index << "value " << value;
|
||||
*value = ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn;
|
||||
}
|
||||
|
||||
*value= ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn;
|
||||
}
|
||||
|
||||
if (widgetType == DJI_WIDGET_TYPE_LIST)
|
||||
{
|
||||
//qDebug() << "OnLoadWidgetValue " << "widgetType " << widgetType << "index " << index << "value " << value;
|
||||
if (index == 1)
|
||||
{
|
||||
*value = ZZ_Widget_M300RTK::m_siDjiWidgetValueList_CaptureMode;
|
||||
if (widgetType == DJI_WIDGET_TYPE_LIST) {
|
||||
//qDebug() << "OnLoadWidgetValue " << "widgetType " << widgetType << "index " << index << "value " << value;
|
||||
if (index == 1) {
|
||||
*value = ZZ_Widget_M300RTK::m_siDjiWidgetValueList_CaptureMode;
|
||||
} else if (index == 2) {
|
||||
*value = ZZ_Widget_M300RTK::m_siDjiWidgetValueList_DecisionHeight;
|
||||
} else if (index == 3) {
|
||||
*value = ZZ_Widget_M300RTK::m_siDjiWidgetValueList_SamplingRate;
|
||||
} else if (index == 7) {
|
||||
*value = (int32_t) CurrentAireType;
|
||||
} else if (index == 9) {
|
||||
*value = (int32_t) CurrentTargetGas;
|
||||
}
|
||||
}
|
||||
if (widgetType == DJI_WIDGET_TYPE_INT_INPUT_BOX) {
|
||||
if (index==4) {
|
||||
*value = passwordforsetting;
|
||||
}
|
||||
else if (index == 2)
|
||||
{
|
||||
*value = ZZ_Widget_M300RTK::m_siDjiWidgetValueList_DecisionHeight;
|
||||
}
|
||||
else if (index == 3)
|
||||
{
|
||||
*value = ZZ_Widget_M300RTK::m_siDjiWidgetValueList_SamplingRate;
|
||||
}
|
||||
else if (index == 6)
|
||||
{
|
||||
*value = (int32_t)CurrentAireType;
|
||||
} else if (index == 8)
|
||||
{
|
||||
*value = (int32_t)CurrentTargetGas;
|
||||
}
|
||||
|
||||
}
|
||||
if (widgetType==DJI_WIDGET_TYPE_INT_INPUT_BOX)
|
||||
{
|
||||
if (index == 4)
|
||||
{
|
||||
*value = NowTempreature;
|
||||
}
|
||||
if (index == 9)
|
||||
{
|
||||
*value = CuttrentGasValue;
|
||||
}
|
||||
}
|
||||
if (index == 5) {
|
||||
*value = NowTempreature;
|
||||
}
|
||||
if (index == 10) {
|
||||
*value = CuttrentGasValue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
int ZZ_Widget_M300RTK::Slot_UpdatePSDKFloatMessage(QString qstrMessage)
|
||||
{
|
||||
T_DjiReturnCode djiStat;
|
||||
int ZZ_Widget_M300RTK::Slot_UpdatePSDKFloatMessage(QString qstrMessage, int lineid) {
|
||||
T_DjiReturnCode djiStat;
|
||||
Strforshow[lineid] = qstrMessage;
|
||||
// qDebug() << "float message line " << lineid << " : " << qstrMessage;
|
||||
Slot_flash_screen();
|
||||
//
|
||||
// QString strinone="";
|
||||
// for (int i = 0; i < Strforshow.size(); i++) {
|
||||
// strinone+=Strforshow[i]+"\r\n";
|
||||
// }
|
||||
// djiStat = DjiWidgetFloatingWindow_ShowMessage(strinone.toLatin1());
|
||||
// if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
// {
|
||||
// qDebug() << "ZZ_Widget_M300RTK: Func test_UpdatePSDKFloatMessage.Floating window show message error";
|
||||
// }
|
||||
|
||||
djiStat = DjiWidgetFloatingWindow_ShowMessage(qstrMessage.toLatin1());
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
{
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func test_UpdatePSDKFloatMessage.Floating window show message error";
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ZZ_Widget_M300RTK::BackCommand(QString Worker, QString Command) {
|
||||
if (Worker=="WDA") {
|
||||
if (Command=="Finish") {
|
||||
isnowsystemWorking= false;
|
||||
qDebug()<<"wind calibrate finished";
|
||||
emit Signal_UpdatePSDKFloatMessage("wind calibrate finished");
|
||||
}
|
||||
}
|
||||
else if (Worker == "GAS") {
|
||||
if (Command == "Finish") {
|
||||
isnowsystemWorking = false;
|
||||
qDebug() << "gas zero calibrate finished";
|
||||
emit Signal_UpdatePSDKFloatMessage("gas zero calibrate finished");
|
||||
}
|
||||
}
|
||||
if (Worker == "WDA") {
|
||||
if (Command == "Finish") {
|
||||
isnowsystemWorking = false;
|
||||
qDebug() << "wind calibrate finished";
|
||||
emit Signal_UpdatePSDKFloatMessage("wind calibrate finished",RLX_LINENUMBER);
|
||||
}
|
||||
} else if (Worker == "GAS") {
|
||||
if (Command == "Finish") {
|
||||
isnowsystemWorking = false;
|
||||
qDebug() << "gas zero calibrate finished";
|
||||
emit Signal_UpdatePSDKFloatMessage("gas zero calibrate finished",RLX_LINENUMBER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ZZ_Widget_M300RTK::Slot_flash_screen() {
|
||||
QString strinone = "";
|
||||
// 获取当前日期时间
|
||||
QDateTime QDateTime= QDateTime::currentDateTime();
|
||||
Strforshow[Strforshow.size()-1]=QDateTime.toString("yyyy-MM-dd hh:mm:ss");
|
||||
;
|
||||
// QTime currentTime = QTime::currentTime();
|
||||
// Strforshow.at(Strforshow.length())=currentTime.toString("hh:mm:ss");
|
||||
// qDebug() << "Slot_flash_screen time:" << currentTime;
|
||||
|
||||
StrforshowCurrent = Strforshow;
|
||||
//
|
||||
|
||||
QStringList strforsend;
|
||||
|
||||
|
||||
if (StrforshowCurrent==StrforshowLast&&StrforshowCurrent.at(0).size()<25) {
|
||||
//没有变化不需要更新
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < StrforshowCurrent.size(); i++) {
|
||||
if (i==0) {
|
||||
if (StrforshowCurrent.at(i) != StrforshowLast.at(i)) {
|
||||
indexforshow[i] = 0;
|
||||
}
|
||||
|
||||
if (StrforshowCurrent.at(i).size() < 25 || i >= 1) {
|
||||
//只有第一行需要滚动显示
|
||||
|
||||
strforsend.append(StrforshowCurrent.at(i));
|
||||
indexforshow[i] = 0;
|
||||
} else {
|
||||
QString doublestr = StrforshowCurrent.at(i) + StrforshowCurrent.at(i);
|
||||
QString strtemp = doublestr.mid(indexforshow[i], 30);
|
||||
strforsend.append(strtemp);
|
||||
if (indexforshow[i] >= StrforshowCurrent.at(i).size()) {
|
||||
indexforshow[i] = 0;
|
||||
} else
|
||||
indexforshow[i]++;
|
||||
}
|
||||
}else {
|
||||
strforsend.append(StrforshowCurrent.at(i));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (int i = 0; i < strforsend.size(); i++) {
|
||||
strinone += strforsend[i] + "\r\n";
|
||||
}
|
||||
T_DjiReturnCode djiStat = DjiWidgetFloatingWindow_ShowMessage(strinone.toLatin1());
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
qDebug() << "ZZ_Widget_M300RTK: Func test_UpdatePSDKFloatMessage.Floating window show message error";
|
||||
}
|
||||
StrforshowLast = StrforshowCurrent;
|
||||
|
||||
}
|
||||
|
||||
@ -17,11 +17,13 @@ public:
|
||||
public:
|
||||
|
||||
private:
|
||||
QTimer m_TimerForflash;
|
||||
int m_iFlagIsVehicleCapturing;
|
||||
UIConfig m_struUIConfig;
|
||||
short m_sFlagCaptureMode;
|
||||
QString m_qstrFilePath;
|
||||
static int32_t m_siDjiWidgetValueBtn, m_siDjiWidgetValueList_CaptureMode, m_siDjiWidgetValueList_SamplingRate, m_siDjiWidgetValueList_DecisionHeight;
|
||||
bool m_bIsFlashOn;
|
||||
public:
|
||||
int PreparteEnvironment();
|
||||
int SetUIFilePath(char* pcUIFilePath, uint16_t uiLength);
|
||||
@ -29,20 +31,23 @@ public:
|
||||
|
||||
int GetSettings(UIConfig &struUIConfig);
|
||||
int SetSettings(UIConfig struUIConfig);
|
||||
void stratmessageflash();
|
||||
//int UpdateCaptureStatus(int iStatus);
|
||||
private:
|
||||
int InitParam();
|
||||
int UploadResources();
|
||||
int test_UpdatePSDKFloatMessage(QString qstrMessage);
|
||||
|
||||
|
||||
public:
|
||||
static T_DjiReturnCode OnUpdateWidgetValue(E_DjiWidgetType widgetType, uint32_t index, int32_t value,void* userData);
|
||||
static T_DjiReturnCode OnLoadWidgetValue (E_DjiWidgetType widgetType, uint32_t index, int32_t* value,void* userData);
|
||||
public slots:
|
||||
int Slot_UpdatePSDKFloatMessage(QString qstrMessage);
|
||||
int Slot_UpdatePSDKFloatMessage(QString qstrMessage,int lineid);
|
||||
void BackCommand(QString Worker, QString Command);
|
||||
void Slot_flash_screen();
|
||||
signals:
|
||||
void Signal_UpdatePSDKFloatMessage(QString qstrMessage);
|
||||
void Signal_UpdatePSDKFloatMessage(QString qstrMessage,int lineid);
|
||||
///0:Auto 1:Manual
|
||||
void Signal_UpdateCaptureMode(char cMode);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user