hhkb: Move functions which communicate with RN42
authortmk <hasu@tmk-kbd.com>
Mon, 26 Dec 2016 03:15:39 +0000 (12:15 +0900)
committertmk <hasu@tmk-kbd.com>
Mon, 26 Dec 2016 03:15:39 +0000 (12:15 +0900)
keyboard/hhkb/rn42/rn42.c
keyboard/hhkb/rn42/rn42.h
keyboard/hhkb/rn42/rn42_task.c

index 710169ef3826d16e35ea1bd9d15b8a9cb66a6c14..88951be4278007ca28a64e061499ba66e9a06f5e 100644 (file)
@@ -134,6 +134,34 @@ static uint8_t leds = 0;
 static uint8_t keyboard_leds(void) { return leds; }
 void rn42_set_leds(uint8_t l) { leds = l; }
 
+
+void rn42_send_str(const char *str)
+{
+    uint8_t c;
+    while ((c = pgm_read_byte(str++)))
+        rn42_putc(c);
+}
+
+const char *rn42_send_command(const char *cmd)
+{
+    static const char *s;
+    rn42_send_str(cmd);
+    wait_ms(500);
+    s = rn42_gets(100);
+    xprintf("%s\r\n", s);
+    rn42_print_response();
+    return s;
+}
+
+void rn42_print_response(void)
+{
+    int16_t c;
+    while ((c = rn42_getc()) != -1) {
+        xprintf("%c", c);
+    }
+}
+
+
 static void send_keyboard(report_keyboard_t *report)
 {
     // wake from deep sleep
index db6916fe86346126853186632347196bd3d11a7a..dee214cc8422afc9e3b434260a63ebfcc3d3e0e4 100644 (file)
@@ -2,6 +2,7 @@
 #define RN42_H
 
 #include <stdbool.h>
+#include "host_driver.h"
 
 host_driver_t rn42_driver;
 host_driver_t rn42_config_driver;
@@ -20,4 +21,10 @@ void rn42_cts_lo(void);
 bool rn42_linked(void);
 void rn42_set_leds(uint8_t l);
 
+const char *rn42_send_command(const char *cmd);
+void rn42_send_str(const char *str);
+void rn42_print_response(void);
+#define SEND_STR(str)       rn42_send_str(PSTR(str))
+#define SEND_COMMAND(cmd)   rn42_send_command(PSTR(cmd))
+
 #endif
index 5107fef483a04634f32ca0e71fd41dfde1c88057..cef6a547c9014afac622bf0d81199e87b22fed84 100644 (file)
@@ -125,40 +125,6 @@ void rn42_task(void)
  ******************************************************************************/
 static host_driver_t *prev_driver = &rn42_driver;
 
-static void print_rn42(void)
-{
-    int16_t c;
-    while ((c = rn42_getc()) != -1) {
-        xprintf("%c", c);
-    }
-}
-
-static void clear_rn42(void)
-{
-    while (rn42_getc() != -1) ;
-}
-
-#define SEND_STR(str)       send_str(PSTR(str))
-#define SEND_COMMAND(cmd)   send_command(PSTR(cmd))
-
-static void send_str(const char *str)
-{
-    uint8_t c;
-    while ((c = pgm_read_byte(str++)))
-        rn42_putc(c);
-}
-
-static const char *send_command(const char *cmd)
-{
-    static const char *s;
-    send_str(cmd);
-    wait_ms(500);
-    s = rn42_gets(100);
-    xprintf("%s\r\n", s);
-    print_rn42();
-    return s;
-}
-
 static void enter_command_mode(void)
 {
     prev_driver = host_get_driver();
@@ -171,7 +137,7 @@ static void enter_command_mode(void)
     wait_ms(1100);          // need 1 sec
     SEND_COMMAND("$$$");
     wait_ms(600);           // need 1 sec
-    print_rn42();
+    rn42_print_response();
     const char *s = SEND_COMMAND("v\r\n");
     if (strncmp("v", s, 1) != 0) SEND_COMMAND("+\r\n"); // local echo on
 }
Imprint / Impressum