~ruther/qmk_firmware

4f121de7ad7782cde7d9d5c04adb3ef2561c5eaf — tmk 10 years ago a679928
rn42: Add rn42_getc and rn42_gets
2 files changed, 32 insertions(+), 0 deletions(-)

M keyboard/hhkb_rn42/rn42/rn42.c
M keyboard/hhkb_rn42/rn42/rn42.h
M keyboard/hhkb_rn42/rn42/rn42.c => keyboard/hhkb_rn42/rn42/rn42.c +29 -0
@@ 4,6 4,7 @@
#include "serial.h"
#include "rn42.h"
#include "print.h"
#include "timer.h"
#include "wait.h"




@@ 47,11 48,39 @@ void rn42_init(void)
    serial_init();
}

int16_t rn42_getc(void)
{
    return serial_recv2();
}

char *rn42_gets(uint16_t timeout)
{
    static char s[16];
    uint16_t t = timer_read();
    uint8_t i = 0;
    int16_t c;
    while (i < 15 && timer_elapsed(t) < timeout) {
               if ((c = rn42_getc()) != -1) {
            if ((char)c == '\r') continue;
            if ((char)c == '\n') break;
            s[i++] = c;
        }
    }
    s[i] = '\0';
    return s;
}

void rn42_putc(uint8_t c)
{
    serial_send(c);
}

void rn42_puts(char *s)
{
    while (*s)
	serial_send(*s++);
}

bool rn42_autoconnecting(void)
{
    // GPIO6 for control connection(high: auto connect, low: disconnect)

M keyboard/hhkb_rn42/rn42/rn42.h => keyboard/hhkb_rn42/rn42/rn42.h +3 -0
@@ 7,7 7,10 @@ host_driver_t rn42_driver;
host_driver_t rn42_config_driver;

void rn42_init(void);
int16_t rn42_getc(void);
char *rn42_gets(uint16_t timeout);
void rn42_putc(uint8_t c);
void rn42_puts(char *s);
bool rn42_autoconnecting(void);
void rn42_autoconnect(void);
void rn42_disconnect(void);