#ifndef _UPPER_COM_H_
|
#define _UPPER_COM_H_
|
|
#include "define_all.h"
|
#include "system_general_para.h"
|
|
#define UC_SEND_NORMAL(__DATA__,__SIZE__) UARTx_SendData_Normal(UART4,__DATA__,__SIZE__)
|
|
|
|
#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
|