/* * Module_MqttClient.h * * Created on: 2021/11/6 * Author: folus */ #ifndef MODULE_MQTTCLIENT_H_ #define MODULE_MQTTCLIENT_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "json-c/json.h" #include "mosquitto.h" #define TEST_MODE #define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args) #define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args) #define DEBUG_ERROR(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args) enum TIMER_IDX { TMR_IDX_0=0, TMR_IDX_1, TMR_IDX_2, TMR_IDX_3, TMR_IDX_4, TMR_IDX_5, TMR_IDX_CNT }; enum GUN_TYPE { GUN_TYPE_UNKNOWN=0, GUN_TYPE_CHAdeMO, GUN_TYPE_CCS, GUN_TYPE_GBT, GUN_TYPE_DO, GUN_TYPE_AC }; enum SWITCH_STS { OFF=0, ON }; enum BOOLEAN_STS { NO=0, YES }; enum QOS_TYPE { QOS_ONLY_TX=0, QOS_ENSURE_BROKER, QOS_ENSURE_SUBSCRIBE }; enum RETAIN_TYPE { RETAIN_NO=0, RETAIN_YES }; typedef struct TEXT_LIST { uint16_t textviewIndex; char textString[256]; char textFont[32]; char textStyle[32]; uint8_t textSize; uint16_t layout_x; uint16_t layout_y; }Text_List; typedef struct IMAGE_LIST { uint16_t imageviewIndex; uint16_t imgsrc_addr; uint16_t layout_x; uint16_t layout_y; uint16_t width; uint16_t height; }Image_List; typedef struct VIDEO_LIST { uint16_t videoviewIndex; uint16_t videosrc_addr; uint16_t layout_x; uint16_t layout_y; uint16_t width; uint16_t height; }Video_List; typedef struct QRCODE_LIST { uint16_t qrCodeIndex; int8_t qrCodeContent[512]; int8_t errorCorrection[8]; uint16_t layout_x; uint16_t layout_y; uint16_t width; uint16_t height; }QrCode_List; #define ARRAY_SIZE(A) (sizeof(A) / sizeof(A[0])) #define is_error(ptr) ((unsigned long)ptr > (unsigned long)-4000L) #define BROKER_PORT 1883 #define BROKER_ADDRESS "192.168.0.10" #define TIMEOUT_KEEPALIVE 60 #define LOGIN_USER NULL #define LOGIN_PASSWD NULL #define PASS 1 #define FAIL -1 #define PROFILE_CONNECT_TIMEOUT "connect_timeout" #define OTA_TYPE_UI "ota_ui" #define OTA_TYPE_APK "ota_apk" #define OTA_TYPE_SDCARD "ota_sdcard" #define FONT_STYLE_NORMAL "normal" #define FONT_STYLE_BOLD "bold" #define FONT_STYLE_ITALIC "italic" #define FONT_STYLE_BOLD_ITALIC "bold_italic" #define FONT_ARIAL "Arial" enum BRIGHTNESS_LEVEL { BRIGHTNESS_LEVEL_0=0, BRIGHTNESS_LEVEL_1, BRIGHTNESS_LEVEL_2, BRIGHTNESS_LEVEL_3, BRIGHTNESS_LEVEL_4, BRIGHTNESS_LEVEL_5, BRIGHTNESS_LEVEL_6, BRIGHTNESS_LEVEL_7, BRIGHTNESS_LEVEL_8, BRIGHTNESS_LEVEL_9, BRIGHTNESS_LEVEL_10, BRIGHTNESS_LEVEL_11, BRIGHTNESS_LEVEL_AUTO, }; enum FONT_SIZE { FONT_SIZE_8PX=8, FONT_SIZE_10PX=10, FONT_SIZE_12PX=12, FONT_SIZE_14PX=14, FONT_SIZE_16PX=16, FONT_SIZE_20PX=20, FONT_SIZE_24PX=24, FONT_SIZE_34PX=34, FONT_SIZE_48PX=48, FONT_SIZE_60PX=60, FONT_SIZE_96PX=96, }; struct ClientInfo { int8_t verHW[32]; int8_t verFW_OS[32]; int8_t verFW_APK[32]; int8_t verFW_UI[32]; int8_t macAddr[32]; int8_t orientation[32]; }clientInfo; extern int StoreLogMsg(const char *fmt, ...); extern int publish_data(struct mosquitto *mosq, char *topic, char *outputStr); extern int publish_profile(struct mosquitto *mosq, char *parameter, char *value); extern int publish_upgrade(struct mosquitto *mosq, char *otaType, char *url, char *checksum, char *verInfo); extern int publish_restart(struct mosquitto *mosq, uint8_t isHardReset); extern int publish_power_saving(struct mosquitto *mosq, uint8_t isSleep); extern int publish_back_dimming(struct mosquitto *mosq, uint8_t lightLevel); extern int publish_timesync(struct mosquitto *mosq); extern int publish_textview_add(struct mosquitto *mosq, Text_List *textList, uint8_t listCount); extern int publish_imageview_add(struct mosquitto *mosq, Image_List *imageList, uint8_t listCount); extern int publish_videoview_add(struct mosquitto *mosq, Video_List *videoList, uint8_t listCount); extern int publish_qrcodeimage_add(struct mosquitto *mosq, QrCode_List *qrCodeList, uint8_t listCount); extern int publish_view_remove(struct mosquitto *mosq, Text_List *textList, uint8_t textListCount, Image_List *imageList, uint8_t imageListCount, Video_List *videoList, uint8_t videoListCount, QrCode_List *qrCodeList, uint8_t qrCodeListCount); extern int publish_clear_screen(struct mosquitto *mosq); extern int publish_audio_volume(struct mosquitto *mosq, uint8_t volume); extern int publish_trigger_report_status(struct mosquitto *mosq); #endif /* MODULE_MQTTCLIENT_H_ */