#ifndef _UPPER_COM_H_ #define _UPPER_COM_H_ #include "define_all.h" #include "system_general_para.h" #define UC_RANDOM_CREATED (rand() % 100) << 8 | (rand() % 100) //Ëæ»úÂë¹¹Ôì //#define UC_TABLE_ID_LENGTH SIZEOF_OF(UC_PROTOCOL_HEAD_T,table_id) //ЭÒéÊý¾Ý±íID³¤¶È #define UC_PROTOCOL_HEAD_LENGTH 12 //ЭÒéÍ·³¤¶È,Êý¾ÝÓò֮ǰµÄ×Ü×Ö½ÚΪ12 #define UC_PROTOCOL_TABLE_ID_LENGTH SIZEOF_OF(struct uc_protocol_head,data_table_id) #define UC_FRAME_HEAD_CODE 0x68 #define UC_PROTOCOL_VER 0x0203 //ЭÒé°æ±¾ // Upper_Computer #define UC_RECV_LEN_MAX 1024 // ÉÏλ»ú½ÓÊÕ×î´ó³¤¶È //ÉÏλ»úÃüÁî #define UC_CMD_LOGIN 0x11 #define UC_CMD_EXIT 0x12 #define UC_CMD_WRITE 0x42 #define UC_CMD_READ 0x52 #define UC_CMD_GET_LOG_RECENT 0x82 //°´×î½ü£¨ÔÝÎÞ£© #define UC_CMD_GET_LOG_TIME 0x83 //°´Ê±¼ä #define UC_CMD_IAP 0x99 //IAPÔÚÏßÉý¼¶ typedef enum { UC_MANAGE_USER = 1U, //¹ÜÀíÔ± UC_ADVANCED_USER, //¸ß¼¶Óû§ UC_GENERAL_USER, //ÆÕͨÓû§ UC_SUPPER_ADMIN= 100U //³¬¼¶¹ÜÀíÔ± } UC_OPERATION_LEVEL; typedef enum { UC_UNKNOWN = 0U, UC_OK, //³É¹¦ UC_PLANT_NUM_ERR, //³§¼Ò´úÂë´íÎó UC_PASSWORD_ERR //ÃÜÂë´íÎó } UC_LOGIN_STATUS; typedef enum { UC_GENERAL = 0U, //ͨÓà // UC_IDEA_CREATED = 0x1234U, //˼Öþ // UC_ENN = 0x2345U, //а // UC_GOLD_CARD = 0x3456U //½ð¿¨ } UC_PLANT_NUM; #pragma pack(1) typedef union { uint8_t uc_recv_buf[UC_RECV_LEN_MAX]; struct uc_protocol_head //¹Ì¶¨µÄЭÒéÍ· { uint8_t frame_start_code; uint8_t uc_type; //ÉÏλ»úÀàÐÍ uint8_t uc_admin; //ÉÏλ»úȨÏÞ uint8_t plant_number[2]; //³§¼Ò±àºÅ BCD uint8_t password_protocol_ver[2]; //ÃÜÂëºÍЭÒé°æ±¾¸´Óà BCD uint16_t random_number; //Ëæ»úÂë uint8_t cmd_code; //¿ØÖÆÂë uint16_t data_field_length; //Êý¾ÝÓò³¤¶È uint16_t data_table_id; //Êý¾ÝÀà±ðID // struct uc_log_time_data_field //¹Ì¶¨µÄÈÕÖ¾Êý¾ÝÓò // { // uint16_t log_table_id; // uint8_t log_start_time_bcd[6]; // uint8_t log_end_time_bcd[6]; // uint16_t log_num_limit;//ÈÕÖ¾ÌõÊýÏÞÖÆ£¨ÎÞÓã© // uint8_t log_continue_flag;//Ðø´«±ê־룬0´ú±íÊ״ζÁÈ¡ // }uc_log_time_data_field_s; } uc_protocol_head_s; } UC_RECV_DATA_UNION_T; typedef struct { /*ÕâÑùÅÅÐòÊÇΪÁË×Ö½Ú¶ÔÆë£¬buffÊý¾ÝÒª4µÄ±¶ÊýÅäºÏ__attribute__ ((aligned (4)))ʹÓÃ*/ UC_RECV_DATA_UNION_T uc_recv_buf_union; uint16_t uc_recv_length; FlagStatus uc_recv_flag; } UC_RECV_PARA_T; #pragma pack() extern __IO uint8_t uc_return_flag_g; extern UC_RECV_PARA_T uc_recv_para_g; extern UC_RECV_DATA_UNION_T uc_respond_data_g; // extern UC_RECV_DATA_UNION_T uc_recv_buf_union_g; // extern UC_PROTOCOL_HEAD_T uc_protocol_head_g; void upperComPro(void); #endif