forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-11 267016d6cf472dd4c8d2a66dc9ed800b55997fea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#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