#ifndef GLOBALDEFINE_H #define GLOBALDEFINE_H #include #define MACRO_FENGEFU "/" #define MACRO_FENGEDANFU "/" #define MACRO_DANYINFANXIEGAN '\\' #define MACRO_DANYINXIEGAN '/' #include #include #include #include //#define MACRO_YUANHENG_VERSION enum { ENUM_MAIN_TOOL_DEVICESMANAGER=0, ENUM_MAIN_TOOL_PROGRAM, // ENUM_MAIN_TOOL_PROGRAM_A, ENUM_MAIN_TOOL_DEVICESCONTROL, ENUM_MAIN_TOOL_GUANGYINPIN, ENUM_MAIN_TOOL_END, }; enum { ENUM_IMPORT_DLG=1, ENUM_EXPORT_DLG=2, ENUM_DELETE_DLG=3, ENUM_SAVEAS_DLG=4, ENUM_SELECT_NETWORK=5, }; #define STREAM_SYNC_HEAD_NUM 3 #define STREAM_SYNC_HEAD 0x7e typedef struct _SYSTIMER { int y; //获取年份 int m; //获取当前月份 int d; //获得几号 int h; //获取当前为几时 int mm; //获取分钟 int s; //获取秒 int w; //获取星期几,注意1为星期天,7为星期六 }SYSTIMER,*P_SYSTIMER; typedef struct _RESTORE_IP { char cNewIp[20]; char cMask[20]; char cGateway[20]; char cDns[20]; // char cLocalIp[20]; }RESTORE_IP,*P_RESTORE_IP; typedef struct _STREAM_PACKET { unsigned char SyncHead[STREAM_SYNC_HEAD_NUM]; unsigned char ucCommType; char ucSerialCode[20]; unsigned int iLength; char pDataBuffer[2049]; }STREAM_PACKET,* P_STREAM_PACKET; enum _NET_COMMU_TYPE { COMMAND_SAVE_ADVANCE_PARAM_NOT_RESET=0x40, COMMAND_ONLY_RESET_CARD_IP=0X43, COMMAND_SET_M31_DOUBLE_HUB=0X44, COMMAND_CONNECT_COLSE =0x7A, COMMAND_UPGRADE = 0x80, COMMAND_SIGNLE_FILE_UPGRADE , COMMAND_LOOPCHECK , COMMAND_VERIFY_CLOCK , COMMAND_SCREEN_OPERATOR,//0x84 COMMAND_SET_SERIAL_NUM, NET_COMMU_TYPE_PLAY_IN_LINE , // 网络同步在线播放. NET_COMMU_TYPE_PREVIEW_IN_LINE, // 网络在线预览. NET_COMMU_TYPE_UPGRADE_SYSTEM, // 系统升级. NET_COMMU_TYPE_RECOVER_SYSTEM, // 系统还原到上一次正确的启动. SCREEN_OPERATOR_COMM_PARAMS_SAVE, // 参数保存. NET_COMMU_TYPE_COMM_EXIT,//普通退出,不重启 NET_COMMU_TYPE_AUDIO_PLAY,//0X8C NET_COMMU_TYPE_IO, NET_COMMU_TYPE_IO_CHECK, NET_COMMU_TYPE_LIMITE_TIME, NET_COMMU_TYPE_SYSTEM_BROADCAST,//0X90 NET_COMMU_TYPE_REALTIME_INSERT_PLAY, //NET_COMMU_TYPE_SHANSUO_INSERT_PLAY, NET_COMMU_TYPE_MODIFY_SERIAL_ID, NET_COMMU_TYPE_KERNEL_UPGRADE_SYSTEM, NET_COMMU_TYPE_UPGRADE_FINISHED_EXIT, NET_COMMU_TYPE_REAL_TIME_INSERT_PLAY_WITH_LIST_EXIT, NET_COMMU_TYPE_ZNSZ,// 智能设置命令. NET_COMMU_TYPE_SELECT_PROGRAM_PLAY,// 选节目播放.0x97 NET_COMMU_TYPE_SELECT_MULI_PROGRAM_PLAY,//98选播多个节目 NET_COMMU_TYPE_GET_PROGRAM_NAME,//99获取所有节目的名称 NET_COMMU_TYPE_GET_CUR_PLAY_STATUS,//9a查询当前播放的详细信息 NET_COMMU_TYPE_POWER_PANEL_ON_OR_OFF,//9b开关大屏幕 NET_COMMU_TYPE_ADJUST_BRIGHTNESS,//9c调节亮度 NET_COMMU_TYPE_GET_SYSTEM_STATUS,//9d获取系统状态 NET_COMMU_TYPE_VERIFY_SIGN,//校验签名9e NET_COMMU_TYPE_SET_WEB_SERVER_PARAM,//配置web服务器参数 NET_COMMU_TYPE_GET_WEB_SERVER_PARAM,//a0 NET_COMMU_TYPE_SET_WIFI_PARAM,//a1配置wifi参数 NET_COMMU_TYPE_GET_WIFI_PARAM,//a2获取wifi参数 NET_COMMU_TYPE_SCAN_AP_WIFI_PARAM,//a3获取ap热点的名称 NET_COMMU_TYPE_GET_ANDROID=0xa4, NET_COMMU_TYPE_INSTALL_APK=0xa5, NET_COMMU_TYPE_UNINSTALL_APK=0xa6, NET_COMMU_TYPE_SET_DNS=0xa7, NET_COMMU_TYPE_GET_DNS=0xa8, NET_COMMU_TYPE_SET_PROXY=0xa9, NET_COMMU_TYPE_GET_PROXY=0xaa, NET_COMMU_TYPE_SET_ANDROID_COMMUNICATION=0xab, NET_COMMU_TYPE_GET_ANDROID_COMMUNICATION=0xac, NET_COMMU_TYPE_GET_SIM_STATUS=0xad, NET_COMMU_TYPE_GET_APN_PARAM=0xae, NET_COMMU_TYPE_GET_APK_VERSION=0xaf, NET_COMMU_TYPE_SET_REALTIME_PARAM=0xb0, NET_COMMU_TYPE_GET_REALTIME_PARAM=0xb1, NET_COMMU_TYPE_SET_REALTIME_LINSTEN_PARAM=0xb2, NET_COMMU_TYPE_GET_REALTIME_LINSTEN_PARAM=0xb3, NET_COMMU_TYPE_SET_HUAWEI_4G=0xB4, NET_COMMU_TYPE_GET_HUAWEI_4G=0xB5, NET_COMMU_TYPE_CLEAR_ANDROID_PROGRAM=0xB6, NET_COMMU_TYPE_SET_AP_PARAM=0xB7, NET_COMMU_TYPE_GET_AP_PARAM=0xB8, GET_REALY_RESOLUTION=0xB9, GET_REALY_ANDROID_FIRMWARE_INFO=0xBA, NET_COMMU_TYPE_NUM, COMMAND_UPGRADE_ANSWER =0xC0, COMMAND_SIGNLE_FILE_UPGRADE_ANSWER , COMMAND_LOOPCHECK_ANSWER , COMMAND_VERIFY_CLOCK_ANSWER , COMMAND_SCREEN_OPERATOR_ANSWER, COMMAND_SET_SERIAL_NUM_ANSWER, NET_COMMU_TYPE_PLAY_IN_LINE_ANSWER , // 网络同步在线播放. NET_COMMU_TYPE_PREVIEW_IN_LINE_ANSWER, // 网络在线预览. NET_COMMU_TYPE_UPGRADE_SYSTEM_ANSWER, // 系统升级. NET_COMMU_TYPE_RECOVER_SYSTEM_ANSWER, // 系统还原到上一次正确的启动. SCREEN_OPERATOR_COMM_PARAMS_SAVE_ANSWER, NET_COMMU_TYPE_COMM_EXIT_ANSWER, NET_COMMU_TYPE_AUDIO_PLAY_ANSWER,//0XcC NET_COMMU_TYPE_IO_ANSWER, NET_COMMU_TYPE_IO_CHECK_ANSWER, NET_COMMU_TYPE_LIMITE_TIME_ANSWER, //// NET_COMMU_TYPE_SYSTEM_BROADCAST_ANSWER, NET_COMMU_TYPE_REALTIME_INSERT_PLAY_ANSWER, NET_COMMU_TYPE_REALTIME_INSERT_PLAY_WITH_GLINT_ANSWER , //带闪烁功能的实时插播 NET_COMMU_TYPE_KERNEL_UPGRADE_SYSTEM_ANSWER, NET_COMMU_TYPE_UPGRADE_FINISHED_EXIT_ANSWER,//0xd4 NET_COMMU_TYPE_REAL_TIME_INSERT_PLAY_WITH_LIST_EXIT_ANSWER, NET_COMMU_TYPE_ZNSZ_ANSWER,// 智能设置命令. NET_COMMU_TYPE_SELECT_PROGRAM_PLAY_ANSWER,//0x97 选节目播放. NET_COMMU_TYPE_SELECT_MULI_PROGRAM_PLAY_ANSWER, NET_COMMU_TYPE_GET_PROGRAM_NAME_ANSWER, NET_COMMU_TYPE_GET_CUR_PLAY_STATUS_ANSWER, NET_COMMU_TYPE_POWER_PANEL_ON_OR_OFF_ANSWER, NET_COMMU_TYPE_ADJUST_BRIGHTNESS_ANSWER, NET_COMMU_TYPE_GET_SYSTEM_STATUS_ANSWER,//获取系统状态 NET_COMMU_TYPE_NUM_ANSWER, COMMAND_CONNECT_COLSE_ANSWER }; extern QString m_globalstrSavePath; extern bool m_globBoolFontantialiasing; extern bool m_globBoolGuangYingPin; extern bool isTextValid(const QString &strIP); extern quint64 dirFileSize(const QString &path); extern QString calcFileCRC(QString fileName); extern QString calcFilePathNameStringCRC(QString strfileNamePath); extern quint32 calcCRC32(const QByteArray &data); extern bool isFileExist(QString fullFileName); extern QString getRandomString(int length); extern void HttpPostByTypeJsonObject(HpptClient *pHpptClient, QString strUrl,QJsonObject json); extern bool copyDir(const QString &source, const QString &destination, bool override); extern unsigned char GetCheckCodeIn8(unsigned char * pBuffer,unsigned int uiSize); enum _ENUM_CONTRL_WIDGET { ENUM_CONTRL_WIDGET_BRIGHTNESS=0, ENUM_CONTRL_WIDGET_POWERCONTROL, ENUM_CONTRL_WIDGET_NETCONFIG, ENUM_CONTRL_WIDGET_VERIFYCLOCK, ENUM_CONTRL_WIDGET_ENCRYPT, ENUM_CONTRL_WIDGET_HDMIINPUT, ENUM_CONTRL_WIDGET_VOLUME, ENUM_CONTRL_WIDGET_ADVPARAM, ENUM_CONTRL_WIDGET_TEST, // ENUM_CONTRL_WIDGET_LORA, ENUM_CONTRL_WIDGET_END, }; #define MACRO_DEFINE_NO_SELECTED_CARD_TIP \ if(m_pLedlist!=nullptr)\ {\ if(m_pLedlist->count()==1)\ {\ if(m_pLedCard==nullptr)\ {\ X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("NoSelectedController"),this,1);\ pDlg->exec();\ return;\ } \ }\ else if(m_pLedlist->count()==0){\ X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("NoSelectedController"),this,1);\ pDlg->exec();\ return;\ }\ } #define MACRO_DEFINE_TIPDLG_FUCN(TIP,SUCCESS,FAILED) \ if(m_pLedlist!=nullptr)\ {\ if(m_pLedlist->count()<=1)\ {\ if(m_pLedCard!=nullptr)\ {\ HttpPostByTypeJsonObject(pHpptClient,m_strUrl,json);\ if(m_PostingDlg==nullptr)\ {\ m_PostingDlg = new LoEmptyDialog(this);\ connect(m_PostingDlg,SIGNAL(sigClose()),this,SLOT(DeletePostingDlg()));\ connect(m_pGetAskTimer,SIGNAL(timeout()),m_PostingDlg,SLOT(TimerOutUnlock()));\ m_PostingDlg->lock(TIP,SUCCESS,FAILED);\ m_pGetAskTimer->start(5000);\ m_PostingDlg->exec();\ }\ }\ }\ else {\ emit sigSend(json,TIP);\ }\ } #define MACRO_DEFINE_TIPDLG_ALL_FUCN(READBACK,SUCCESS,FAILED) \ if(m_pLedCard!=nullptr)\ {\ if(m_PostingDlg==nullptr)\ {\ m_PostingDlg = new LoEmptyDialog(this);\ connect(m_PostingDlg,SIGNAL(sigClose()),this,SLOT(DeletePostingDlg()));\ connect(m_pGetAskTimer,SIGNAL(timeout()),m_PostingDlg,SLOT(TimerOutUnlock()));\ m_PostingDlg->lock(READBACK+" "+m_pLedCard->m_strCardId,SUCCESS,FAILED);\ m_pGetAskTimer->start(5000);\ m_PostingDlg->exec();\ }\ }\ #define MARCO_DEFINE_CONTROL_FUNC2(PARENT,PARENT1) \ pHpptClient = new HpptClient(this);\ connect(pHpptClient,SIGNAL(httpPostRspReady(QString , QString , QByteArray )),this,SLOT(OnProHttpResponse(QString , QString , QByteArray)));\ pHpptClientAll = new HpptClient(this);\ connect(pHpptClientAll,SIGNAL(httpPostRspReady(QString , QString , QByteArray )),this,SLOT(OnProHttpResponseAll(QString , QString , QByteArray)));\ m_pGetAskTimer=new QTimer(this);\ connect(PARENT1,SIGNAL(sigSwitchIndexChanged(int)),this,SLOT(OnControlTypeSwitchIndexChanged(int)));\ connect(PARENT,SIGNAL(sigSelectedDeviceList(QList *)),this,SLOT(onSelectedDeviceList(QList *)));\ connect(this,SIGNAL(sigSend(QJsonObject &,QString)),PARENT,SLOT(OnControlSendJson(QJsonObject &,QString)));\ connect(PARENT,SIGNAL(sigChangeLanguage()),this,SLOT(refreshLable()));\ onSelectedDeviceList(list); #define MACRO_ASKTIME_STOP \ if(m_pGetAskTimer!=nullptr)\ if(m_pGetAskTimer->isActive())\ m_pGetAskTimer->stop();\ #define MACRO_POSTING_DLG_UNLOCK \ if(m_PostingDlg!=nullptr)\ {\ if(m_PostingDlg->getLockStatus())\ {\ m_PostingDlg->unlock();\ }\ } #define MACRO_DEFINE_CONTROL_FUNC3 \ if(m_pLedlist!=nullptr)\ {\ if(m_pLedlist->count()==1)\ {\ m_pLedCard=list->at(0);\ m_strUrl="http://"+m_pLedCard->m_strCardIp+":2016/settings";\ if(m_oldLedlist!=m_pLedCard&&m_bSelected==true)\ {\ m_oldLedlist=m_pLedCard;\ onReadbackAllThisPage();\ }\ }\ } #define MACRO_EFFECT_STR_NO "no" #define MACRO_EFFECT_STR_RANDOM "random" #define MACRO_EFFECT_STR_RIGHT_TO_LEFT "right to left" #define MACRO_EFFECT_STR_BOTTOM_TO_TOP "bottom to top" #define MACRO_EFFECT_STR_LEFT_TO_RIGHT "left to right" #define MACRO_EFFECT_STR_TOP_TO_BOTTOM "top to bottom" #define MACRO_FONT_FAN_JUCHI(MYFONT) \ if(!m_globBoolFontantialiasing)\ {\ MYFONT.setLetterSpacing(QFont::AbsoluteSpacing,m_attr.wordSpacing);\ MYFONT.setStyleStrategy(QFont::NoAntialias);\ }\ else\ MYFONT.setHintingPreference(QFont::PreferNoHinting); #define MACRO_FONT_FANG_JUCHI_2(MYFONT) \ if(!m_globBoolFontantialiasing)\ MYFONT.setStyleStrategy(QFont::NoAntialias);\ else\ {\ MYFONT.setStyleStrategy(QFont::PreferAntialias);\ } #define MACRO_FAN_JUCHI(PAINT) typedef struct _ST_ANSY_PROGRAM_PACKET { unsigned char SyncHead[3]; unsigned char ucCommType; int iBaoLiu; unsigned int iLength; unsigned char pDataBuffer[20]; }ST_ANSY_PROGRAM_PACKET,*P_ST_ANSY_PROGRAM_PACKET; #define TIME_STRING_FORMAT "HH:mm:ss.zzz" #endif // GLOBALDEFINE_H