初始化提交
This commit is contained in:
108
arduino-cli/libraries/RL_CH9329_Serial/RL_CH9329_Serial.cpp
Normal file
108
arduino-cli/libraries/RL_CH9329_Serial/RL_CH9329_Serial.cpp
Normal file
@@ -0,0 +1,108 @@
|
||||
#include"RL_CH9329_Serial.h"
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t send_buf[64]; //发送数据缓冲区
|
||||
|
||||
}CH9329_Type;
|
||||
CH9329_Type ch9329;
|
||||
|
||||
|
||||
|
||||
void RL_CH9329_Serial::SendData(uint8_t cmd,uint8_t len,uint8_t* data){
|
||||
|
||||
ch9329.send_buf[0]=0x57;//帧头1
|
||||
ch9329.send_buf[1]=0xAB;//帧头2
|
||||
ch9329.send_buf[2]=0x00;//地址码 默认0x00
|
||||
ch9329.send_buf[3]=cmd;//命令字
|
||||
ch9329.send_buf[4]=len;//后续数据长度
|
||||
|
||||
for(uint8_t i=0;i<len;i++){
|
||||
ch9329.send_buf[5+i] = data[i];
|
||||
}
|
||||
uint8_t check=0;//校验值
|
||||
for(uint8_t j=0;j<(len+5);j++){
|
||||
check += ch9329.send_buf[j];
|
||||
}
|
||||
ch9329.send_buf[5+len] = check;
|
||||
this->write(ch9329.send_buf,len+6); ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
size_t RL_CH9329_Serial::Keyboard_press(uint8_t k) {
|
||||
|
||||
keys[0]=0;//组合键
|
||||
keys[1]=0;//保留
|
||||
|
||||
if (keys[2] != k && keys[3] != k && keys[4] != k && keys[5] != k && keys[6] != k && keys[7] != k) {
|
||||
|
||||
for (uint8_t i=2; i<8; i++) {
|
||||
if (keys[i] == 0x00) {
|
||||
keys[i] = k;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
this->SendData(0x02,0x08,keys);
|
||||
return 1;
|
||||
}
|
||||
|
||||
size_t RL_CH9329_Serial::Keyboard_release(uint8_t k) {
|
||||
|
||||
keys[0]=0;//组合键
|
||||
keys[1]=0;//保留
|
||||
|
||||
for (uint8_t i=2; i<8; i++) {
|
||||
if (0 != k && keys[i] == k) {
|
||||
keys[i] = 0x00;
|
||||
}
|
||||
}
|
||||
this->SendData(0x02,0x08,keys);
|
||||
return 1;
|
||||
}
|
||||
|
||||
size_t RL_CH9329_Serial::Keyboard_release_all() {
|
||||
|
||||
for (uint8_t i=0; i<8; i++) {
|
||||
keys[i] = 0x00;
|
||||
}
|
||||
this->SendData(0x02,0x08,keys);
|
||||
return 1;
|
||||
}
|
||||
|
||||
size_t RL_CH9329_Serial::Mouse_press(uint8_t k) {
|
||||
|
||||
ms_rel[0]=0x01;//相对鼠标标志
|
||||
ms_rel[1]|=k;//鼠标按键
|
||||
ms_rel[2]=0;//x 横坐标 左右移动
|
||||
ms_rel[3]=0;//y 纵坐标 上下移动
|
||||
ms_rel[4]=0;//滚轮齿数
|
||||
|
||||
this->SendData(0x05,0x05,ms_rel);
|
||||
return 1;
|
||||
}
|
||||
size_t RL_CH9329_Serial::Mouse_release(uint8_t k) {
|
||||
|
||||
ms_rel[0]=0x01;//相对鼠标标志
|
||||
ms_rel[1]&=~k;//鼠标按键
|
||||
ms_rel[2]=0;//x 横坐标 左右移动
|
||||
ms_rel[3]=0;//y 纵坐标 上下移动
|
||||
ms_rel[4]=0;//滚轮齿数
|
||||
|
||||
this->SendData(0x05,0x05,ms_rel);
|
||||
return 1;
|
||||
}
|
||||
size_t RL_CH9329_Serial::Mouse_release_all() {
|
||||
|
||||
ms_rel[0]=0x01;//相对鼠标标志
|
||||
ms_rel[1]=0;//鼠标按键
|
||||
ms_rel[2]=0;//x 横坐标 左右移动
|
||||
ms_rel[3]=0;//y 纵坐标 上下移动
|
||||
ms_rel[4]=0;//滚轮齿数
|
||||
|
||||
this->SendData(0x05,0x05,ms_rel);
|
||||
return 1;
|
||||
}
|
||||
56
arduino-cli/libraries/RL_CH9329_Serial/RL_CH9329_Serial.h
Normal file
56
arduino-cli/libraries/RL_CH9329_Serial/RL_CH9329_Serial.h
Normal file
@@ -0,0 +1,56 @@
|
||||
#ifndef _RL_CH9329_Serial_H_
|
||||
#define _RL_CH9329_Serial_H_
|
||||
#include <Arduino.h>
|
||||
#if defined __AVR__ || defined(ESP8266)
|
||||
#include <SoftwareSerial.h>
|
||||
#elif defined (ESP32)
|
||||
#include <ESP32SoftwareSerial.h>
|
||||
#endif
|
||||
#if defined __AVR__ || defined(ESP8266)
|
||||
class RL_CH9329_Serial : public SoftwareSerial
|
||||
{
|
||||
public:
|
||||
|
||||
RL_CH9329_Serial(short rxPin, short txPin) : SoftwareSerial(rxPin,txPin) { };
|
||||
void SendData(uint8_t cmd,uint8_t len,uint8_t* data);
|
||||
size_t Keyboard_press(uint8_t k) ;
|
||||
size_t Keyboard_release(uint8_t k);
|
||||
size_t Keyboard_release_all();
|
||||
size_t Mouse_press(uint8_t k) ;
|
||||
size_t Mouse_release(uint8_t k);
|
||||
size_t Mouse_release_all();
|
||||
|
||||
|
||||
private:
|
||||
uint8_t keys[8];
|
||||
uint8_t ms_rel[5];
|
||||
uint8_t ms_button;
|
||||
|
||||
};
|
||||
#elif defined ESP32
|
||||
class RL_CH9329_Serial : public ESP32SoftwareSerial
|
||||
{
|
||||
public:
|
||||
|
||||
RL_CH9329_Serial(short rxPin, short txPin) : ESP32SoftwareSerial(rxPin,txPin) { };
|
||||
void SendData(uint8_t cmd,uint8_t len,uint8_t* data);
|
||||
size_t Keyboard_press(uint8_t k) ;
|
||||
size_t Keyboard_release(uint8_t k);
|
||||
size_t Keyboard_release_all();
|
||||
size_t Mouse_press(uint8_t k) ;
|
||||
size_t Mouse_release(uint8_t k);
|
||||
size_t Mouse_release_all();
|
||||
|
||||
|
||||
private:
|
||||
uint8_t keys[8];
|
||||
uint8_t ms_rel[5];
|
||||
uint8_t ms_button;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
119
arduino-cli/libraries/RL_CH9329_Serial/hid_keys.h
Normal file
119
arduino-cli/libraries/RL_CH9329_Serial/hid_keys.h
Normal file
@@ -0,0 +1,119 @@
|
||||
/* Keyboard usage values, see usb.org's HID-usage-tables document, chapter
|
||||
* 10 Keyboard/Keypad Page for more codes.
|
||||
*/
|
||||
#define MOD_CONTROL_LEFT (1<<0)
|
||||
#define MOD_SHIFT_LEFT (1<<1)
|
||||
#define MOD_ALT_LEFT (1<<2)
|
||||
#define MOD_GUI_LEFT (1<<3)
|
||||
#define MOD_CONTROL_RIGHT (1<<4)
|
||||
#define MOD_SHIFT_RIGHT (1<<5)
|
||||
#define MOD_ALT_RIGHT (1<<6)
|
||||
#define MOD_GUI_RIGHT (1<<7)
|
||||
|
||||
#define KEY_A 4
|
||||
#define KEY_B 5
|
||||
#define KEY_C 6
|
||||
#define KEY_D 7
|
||||
#define KEY_E 8
|
||||
#define KEY_F 9
|
||||
#define KEY_G 10
|
||||
#define KEY_H 11
|
||||
#define KEY_I 12
|
||||
#define KEY_J 13
|
||||
#define KEY_K 14
|
||||
#define KEY_L 15
|
||||
#define KEY_M 16
|
||||
#define KEY_N 17
|
||||
#define KEY_O 18
|
||||
#define KEY_P 19
|
||||
#define KEY_Q 20
|
||||
#define KEY_R 21
|
||||
#define KEY_S 22
|
||||
#define KEY_T 23
|
||||
#define KEY_U 24
|
||||
#define KEY_V 25
|
||||
#define KEY_W 26
|
||||
#define KEY_X 27
|
||||
#define KEY_Y 28
|
||||
#define KEY_Z 29
|
||||
#define KEY_1 30
|
||||
#define KEY_2 31
|
||||
#define KEY_3 32
|
||||
#define KEY_4 33
|
||||
#define KEY_5 34
|
||||
#define KEY_6 35
|
||||
#define KEY_7 36
|
||||
#define KEY_8 37
|
||||
#define KEY_9 38
|
||||
#define KEY_0 39
|
||||
|
||||
#define KEY_ENTER 40
|
||||
#define KEY_ESCAPE 41
|
||||
#define KEY_BACKSPACE 42
|
||||
#define KEY_TAB 43
|
||||
#define KEY_SPACE 44
|
||||
#define KEY_MINUS 45
|
||||
#define KEY_EQUALS 46
|
||||
#define KEY_LBRACKET 47
|
||||
#define KEY_RBRACKET 48
|
||||
#define KEY_BACKSLASH 49
|
||||
#define KEY_NONUS_NUMBER 50
|
||||
#define KEY_SEMICOLON 51
|
||||
#define KEY_QUOTE 52
|
||||
#define KEY_TILDE 53
|
||||
#define KEY_COMMA 54
|
||||
#define KEY_PERIOD 55
|
||||
#define KEY_SLASH 56
|
||||
#define KEY_CAPSLOCK 57
|
||||
|
||||
#define KEY_F1 58
|
||||
#define KEY_F2 59
|
||||
#define KEY_F3 60
|
||||
#define KEY_F4 61
|
||||
#define KEY_F5 62
|
||||
#define KEY_F6 63
|
||||
#define KEY_F7 64
|
||||
#define KEY_F8 65
|
||||
#define KEY_F9 66
|
||||
#define KEY_F10 67
|
||||
#define KEY_F11 68
|
||||
#define KEY_F12 69
|
||||
|
||||
#define KEY_PRNTSCRN 70
|
||||
#define KEY_SCROLLLOCK 71
|
||||
#define KEY_PAUSE 72
|
||||
#define KEY_INSERT 73
|
||||
#define KEY_HOME 74
|
||||
#define KEY_PAGEUP 75
|
||||
#define KEY_DELETE 76
|
||||
#define KEY_END 77
|
||||
#define KEY_PAGEDOWN 78
|
||||
#define KEY_RIGHT_ARROW 79
|
||||
#define KEY_LEFT_ARROW 80
|
||||
#define KEY_DOWN_ARROW 81
|
||||
#define KEY_UP_ARROW 82
|
||||
|
||||
#define KEY_NUM_LOCK 83
|
||||
|
||||
#define KEY_NUM_DIV 84
|
||||
#define KEY_NUM_MUL 85
|
||||
#define KEY_NUM_SUB 86
|
||||
#define KEY_NUM_ADD 87
|
||||
|
||||
#define KEY_NUM_ENTER 88
|
||||
#define KEY_NUM_1 89
|
||||
#define KEY_NUM_2 90
|
||||
#define KEY_NUM_3 91
|
||||
#define KEY_NUM_4 92
|
||||
#define KEY_NUM_5 93
|
||||
#define KEY_NUM_6 94
|
||||
#define KEY_NUM_7 95
|
||||
#define KEY_NUM_8 96
|
||||
#define KEY_NUM_9 97
|
||||
#define KEY_NUM_0 98
|
||||
#define KEY_NUM_DOT 99
|
||||
|
||||
|
||||
#define KEY_ARROW_LEFT 0x50
|
||||
|
||||
|
||||
Reference in New Issue
Block a user