-
Notifications
You must be signed in to change notification settings - Fork 3
/
EasyCon_API.h
134 lines (107 loc) · 3.47 KB
/
EasyCon_API.h
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
#ifndef _EASY_CON_API_H_
#define _EASY_CON_API_H_
/**********************************************************************/
// some incude files for var type, you need change to your device framework files
/**********************************************************************/
#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include "binfos.h"
#include "HID.h"
/**********************************************************************/
// EasyCon API, you need set the MEM_SIZE that could use in your SRAM and (EEPROM or Flash)
/**********************************************************************/
// #define MEM_SIZE 924
/**********************************************************************/
// EasyCon API, you need to call them in somewhere
/**********************************************************************/
/* the main tick for 1 ms
* need call in a 1 ms timer
*/
extern void EasyCon_tick(void);
/* serial state machine
* need call when get a new serial date from uart
* no date return -1
*/
extern void EasyCon_serial_task(int16_t byte);
/* decrement
* need call when a report sent
* no date return -1
*/
extern void EasyCon_decrease_report_echo(void);
/**********************************************************************/
// EasyCon API, you need to implement all of the API
/**********************************************************************/
/* EasyCon read 1 byte from E2Prom or flash
* need implement
*/
extern uint8_t EasyCon_read_byte(uint8_t* addr);
/* EasyCon write 1 byte to E2Prom or flash
* need implement
*/
extern void EasyCon_write_byte(uint8_t* addr,uint8_t value);
/* EasyCon read 2 byte from E2Prom or flash
* need implement
*/
extern uint16_t EasyCon_read_2byte(uint16_t* addr);
/* EasyCon write 2 byte to E2Prom or flash
* need implement
*/
extern void EasyCon_write_2byte(uint16_t* addr,uint16_t value);
/* running led on
* need implement
*/
extern void EasyCon_runningLED_on(void);
/* running led off
* need implement
*/
extern void EasyCon_runningLED_off(void);
/* data led blink
* need implement,no block
*/
extern void EasyCon_blink_led(void);
/* serial send 1 byte
* need implement,block
*/
extern void EasyCon_serial_send(const char DataByte);
// about hid report
/* reset hid report to default.
* need implement
*/
extern void reset_hid_report(void);
/* set left stick in hid report.
* need implement
*/
extern void SetLeftStick(const uint8_t LX, const uint8_t LY);
/* set right stick in hid report.
* need implement
*/
extern void SetRightStick(const uint8_t RX, const uint8_t RY);
/* set button in hid report.
* need implement
*/
extern void SetButtons(const uint16_t Button);
/* set button press in hid report.
* need implement
*/
extern void PressButtons(const uint16_t Button);
/* set buttons release in hid report.
* need implement
*/
extern void ReleaseButtons(const uint16_t Button);
/* set HAT in hid report.
* need implement
*/
extern void SetHATSwitch(const uint8_t HAT);
/**********************************************************************/
// here is some func that could control EasyCon, no need implement
/**********************************************************************/
extern void EasyCon_script_init(void);
extern void EasyCon_script_task(void);
extern void EasyCon_script_auto_start(void);
extern bool EasyCon_is_script_running(void);
extern void EasyCon_script_start(void);
extern void EasyCon_script_stop(void);
volatile uint8_t echo_ms; // echo counter
#endif