|
@@ -56,22 +56,32 @@ namespace abc800
|
|
uint32_t keyboard_action = 0;
|
|
uint32_t keyboard_action = 0;
|
|
if (xTaskNotifyWait(0, ULONG_MAX, &keyboard_action , 5) == pdPASS) {
|
|
if (xTaskNotifyWait(0, ULONG_MAX, &keyboard_action , 5) == pdPASS) {
|
|
|
|
|
|
- if (abc800_gpio.abc800_getupdown()){
|
|
|
|
- uint8_t key = abc800_gpio.abc800_getkey();
|
|
|
|
- key800queue ascii = abc800_keyboard.getKeyboardKeycode(key);
|
|
|
|
- abc800_keyboard.abc800_old_key = key;
|
|
|
|
- if (xQueueSend(abc800_key_queue_out, (void *)&ascii, 0) != pdTRUE) {
|
|
|
|
- ESP_LOGE(TAG,"Queue full");
|
|
|
|
|
|
+ if (keyboard_action == ABC800_KEY_IN_ABC800)
|
|
|
|
+ {
|
|
|
|
+ if (abc800_gpio.abc800_getupdown()){
|
|
|
|
+ uint8_t key = abc800_gpio.abc800_getkey();
|
|
|
|
+ key800queue ascii = abc800_keyboard.getKeyboardKeycode(key);
|
|
|
|
+ abc800_keyboard.abc800_old_key = key;
|
|
|
|
+ if (xQueueSend(abc800_key_queue_out, (void *)&ascii, 0) != pdTRUE) {
|
|
|
|
+ ESP_LOGE(TAG,"Queue full");
|
|
|
|
+ }
|
|
|
|
+ xTimerStop(abc800_repeat_delay_timer, portMAX_DELAY);
|
|
|
|
+ xTimerStop(abc800_repeat_timer, portMAX_DELAY);
|
|
|
|
+ xTimerStop(abc800_check_timer, portMAX_DELAY);
|
|
|
|
+ xTimerStart(abc800_repeat_delay_timer, portMAX_DELAY);
|
|
|
|
+ xTimerStart(abc800_check_timer, portMAX_DELAY);
|
|
|
|
+ }else{
|
|
|
|
+ xTimerStop(abc800_repeat_delay_timer, portMAX_DELAY);
|
|
|
|
+ xTimerStop(abc800_repeat_timer, portMAX_DELAY);
|
|
|
|
+ xTimerStop(abc800_check_timer, portMAX_DELAY);
|
|
}
|
|
}
|
|
- xTimerStop(abc800_repeat_delay_timer, portMAX_DELAY);
|
|
|
|
- xTimerStop(abc800_repeat_timer, portMAX_DELAY);
|
|
|
|
- xTimerStop(abc800_check_timer, portMAX_DELAY);
|
|
|
|
- xTimerStart(abc800_repeat_delay_timer, portMAX_DELAY);
|
|
|
|
- xTimerStart(abc800_check_timer, portMAX_DELAY);
|
|
|
|
- }else{
|
|
|
|
- xTimerStop(abc800_repeat_delay_timer, portMAX_DELAY);
|
|
|
|
- xTimerStop(abc800_repeat_timer, portMAX_DELAY);
|
|
|
|
- xTimerStop(abc800_check_timer, portMAX_DELAY);
|
|
|
|
|
|
+ }
|
|
|
|
+ if (keyboard_action == ABC800_KEY_RESET)
|
|
|
|
+ {
|
|
|
|
+ digitalWrite(A800_RST,HIGH);
|
|
|
|
+ delay(1000);
|
|
|
|
+ digitalWrite(A800_RST,LOW);
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -158,20 +168,29 @@ namespace abc800
|
|
if ( keyqueue.special == 0x50 ){
|
|
if ( keyqueue.special == 0x50 ){
|
|
return(0x08);
|
|
return(0x08);
|
|
}
|
|
}
|
|
- if (keyqueue.special == 0x3a)
|
|
|
|
|
|
+ //F1-F8
|
|
|
|
+ if (keyqueue.special >= 0x3a && keyqueue.special <= 0x41)
|
|
{
|
|
{
|
|
- char x[15]={"10 print \"HEJ\""}; //F1
|
|
|
|
- key800queue key800queue ;
|
|
|
|
- key800queue.modifier=0x00;
|
|
|
|
- key800queue.special=0x00;
|
|
|
|
|
|
|
|
- for (uint8_t i=0;i<15;i++){
|
|
|
|
- key800queue.ascii = x[i];
|
|
|
|
- if (xQueueSend(abc800_key_queue_out, (void *)&key800queue, 0) != pdTRUE) {
|
|
|
|
- ESP_LOGE(TAG,"Queue full");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return (0x00);
|
|
|
|
|
|
+ return (keyqueue.special+0x86);
|
|
|
|
+ }
|
|
|
|
+ //F1-F8 Shift
|
|
|
|
+ if (keyqueue.special >= 0x3a && keyqueue.special <= 0x41 && (keyqueue.modifier == 0x02 || keyqueue.modifier == 0x20))
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ return (keyqueue.special+0x96);
|
|
|
|
+ }
|
|
|
|
+ //F1-F8 CTRL
|
|
|
|
+ if (keyqueue.special >= 0x3a && keyqueue.special <= 0x41 && (keyqueue.modifier == 0x01))
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ return (keyqueue.special+0xA6);
|
|
|
|
+ }
|
|
|
|
+ //F1-F8 CTRL+SHIFT
|
|
|
|
+ if (keyqueue.special >= 0x3a && keyqueue.special <= 0x41 && (keyqueue.modifier == 0x03 || keyqueue.modifier == 0x33))
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ return (keyqueue.special+0xB6);
|
|
}
|
|
}
|
|
if (keyqueue.special == 0x45) //F12
|
|
if (keyqueue.special == 0x45) //F12
|
|
{
|
|
{
|