QuakeGod
2024-04-12 5dd1b7fdcc52a43867f924e8d220de8467af372a
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
/**
  ******************************************************************************
  * @file           : FPx.h
  * @brief          : Header for FPx.c file.
  *                   This file contains the function defines of the FPx .
  ******************************************************************************
    */
#ifndef __FPX_H__
#define __FPX_H__
#include "main.h"
 
enum enCMD_TYPE
{
    CMD_0_QUERY =0,
    CMD_1=0x1,    // 
    CMD_2=0x2,    // 
    CMD_3_EXCHG=0x3,    // 
    CMD_4=0x4,    // 
    CMD_5=0x5,    // 
    CMD_6=0x6,    // 
    CMD_7_END=0x7,    // 
};
 
typedef struct tagFPxPinStat
{
    unsigned short OE:1;
    unsigned short RST:1;
    unsigned short SYN:1;
    unsigned short ACK:1;
    unsigned short SEL:1;
    
}stFPxPinStat;
 
 
#define RST_PORT GPIOB
#define RST_PIN LL_GPIO_PIN_9
 
#define SYN_PORT GPIOF
#define SYN_PIN LL_GPIO_PIN_6
 
#define ACK_PORT GPIOA
#define ACK_PIN LL_GPIO_PIN_11
 
 
#define FPxDE_PORT GPIOF
#define FPxDE_PIN LL_GPIO_PIN_7
 
#define OE_PORT GPIOB
#define OE_PIN LL_GPIO_PIN_6
 
#define SEL_PORT GPIOB
#define SEL_PIN LL_GPIO_PIN_8
 
#define FPX_WX_NUM 16
#define FPX_WY_NUM 16
 
#define GetRSTPin() LL_GPIO_IsInputPinSet(RST_PORT,RST_PIN)
 
#define GetSYNPin() LL_GPIO_IsInputPinSet(SYN_PORT,SYN_PIN)
 
#define GetOEPin() LL_GPIO_IsInputPinSet(OE_PORT,OE_PIN)
 
#define GetSELPin() (1) //LL_GPIO_IsInputPinSet(SEL_PORT,SEL_PIN)
 
#define GetACKPin() LL_GPIO_IsInputPinSet(ACK_PORT,ACK_PIN)
 
 
#define SetACKPin_0() LL_GPIO_ResetOutputPin(ACK_PORT,ACK_PIN)
#define SetACKPin_1() LL_GPIO_SetOutputPin(ACK_PORT,ACK_PIN)
 
#define SetFPxDEPin_0() LL_GPIO_ResetOutputPin(FPxDE_PORT,FPxDE_PIN)
#define SetFPxDEPin_1() LL_GPIO_SetOutputPin(FPxDE_PORT,FPxDE_PIN)
 
typedef void *(*FPxCBFuncDef) (int nEvent, void * pBuf, int);    //callback func ,prama s is  void *,void *,int; return void *;
 
// extern uint8_t PktBuf1[64];
 
extern uint8_t PktBuf2[64];
extern uint8_t PktLen1;
extern uint8_t PktLen2;
 
typedef struct tagFPxStat{
 
    uint8_t bConfiged;
    uint8_t nConfigStationId;
    uint8_t nInputBytes;
    uint8_t nOutputBytes;
 
    uint8_t bReceiving;
    uint8_t nReceivedLen;
    uint8_t bSending;
    uint8_t bSentLen;
 
    volatile uint8_t oldSYN;
    int RSTCount0;
    int bFirstReq;
    FPxCBFuncDef FPxCBFunc;
    uint8_t bFPxCallBackFuncSet;
    
 
 
}stFPxStat;
 
extern stFPxStat FPxStat;
 
 
#pragma anon_unions
 
typedef struct tagFPxMem{
    union {    
    unsigned short WLX[16];        //ÐéÄâµÄXºÍY£¬Ô¶³ÌͨѶʱӳÉäÓá£
    unsigned char WLXB[32];        //ÐéÄâµÄXºÍY£¬Ô¶³ÌͨѶʱӳÉäÓá£
        
    };
    union {
    unsigned short WLY[16];        //ÐéÄâµÄXºÍY£¬Ô¶³ÌͨѶʱӳÉäÓá£
    unsigned char WLYB[32];        //ÐéÄâµÄXºÍY£¬Ô¶³ÌͨѶʱӳÉäÓá£
    };
}stFPxMem;
 
extern stFPxMem FPxMem;
 
typedef struct tagFPxQuRplyPkt
{
    uint8_t Hdr1;
    uint8_t nInputBytes;
    uint8_t nOutputBytes;
    uint8_t nParam1;
    uint8_t nBCC;
    uint8_t End1;
}stFPxQuRplyPkt, *pFPxQuRplyPkt;
 
typedef struct tagFPxEXGRplyPkt
{
    uint8_t Hdr1;
    uint8_t nInputBytes[6];
    uint8_t nBCC;
    uint8_t End1;
}stFPxEXGRplyPkt, * pFPxEXGRplyPkt;
 
uint8_t FPx_Init(int nChilds);
uint8_t FPx_SetIOCount(int nInputBytes, int nOutputBytes);
uint8_t FPx_Proc(void);
 
uint8_t FPxCalBCC(uint8_t* pBuf, uint8_t len1);
uint8_t FPxCheckPkt(uint8_t * pBuf, uint8_t len1);
uint8_t FPxParsePkt(uint8_t * pBuf, uint8_t len1);
uint8_t FPxSendPkt(uint8_t * pBuf, uint8_t len1);
 
 
int FPxSetCallBackFunc(FPxCBFuncDef Func1);
 
enum enumFPxCallBackEvent
{
    evFPxNone = 0,
    evFPxCreate = 1,
    evFPxConnected = 2,
    evFPxDisConnected = 3,
    evFPxClosed = 4,
    evFPxStateChange =5,
    evFPxTimeSync=6,
    evFPxDataUpdate =7,
};
 
#endif  /* __FPX_H__ */