#include "Widget_M300RTK.h" int32_t ZZ_Widget_M300RTK::m_siDjiWidgetValueBtn = 0; 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; ZZ_Widget_M300RTK::ZZ_Widget_M300RTK(QObject* parent /*= nullptr*/) { m_iFlagIsVehicleCapturing = 0; connect(this,&ZZ_Widget_M300RTK::Signal_UpdatePSDKFloatMessage,this,&ZZ_Widget_M300RTK::Slot_UpdatePSDKFloatMessage); } ZZ_Widget_M300RTK::~ZZ_Widget_M300RTK() { } 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; } QByteArray qbaTemp(pcUIFilePath); m_qstrFilePath = qbaTemp; return 0; } 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::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() { 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} }; 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::UploadResources() { 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; } 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_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) { pCaller->emit Signal_UpdatePSDKFloatMessage("start capture"); pCaller->emit Signal_StartCapture(); } else { 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; } #ifdef ZZ_FLAG_TEST qDebug() << "OnUpdateWidgetValue " << "widgetType " << widgetType << "index " << index << "value " << value; #endif } return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS; } 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; *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; } else if (index == 2) { *value = ZZ_Widget_M300RTK::m_siDjiWidgetValueList_DecisionHeight; } else if (index == 3) { *value = ZZ_Widget_M300RTK::m_siDjiWidgetValueList_SamplingRate; } } return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS; } int ZZ_Widget_M300RTK::Slot_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; }