整合GPS同步并修复UI刷新bug

- 将InitSystemParams功能整合到SetupSubscriptions中
- 修复Widget_M300RTK运算符错误(&改为&&)
- 添加UI定时刷新功能Slot_flash_screen
- 添加密码保护功能(123456)
- WDA传感器添加结束符格式TODO注释
- 调整widget控件索引映射
This commit is contained in:
xin
2026-03-04 10:21:24 +08:00
parent 742b0a1e5a
commit 82608bfa0a
5 changed files with 536 additions and 582 deletions

View File

@ -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;
}

View File

@ -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);