diff options
author | root <root@lab2.panaceas.james.local> | 2014-11-02 18:17:44 +0000 |
---|---|---|
committer | root <root@lab2.panaceas.james.local> | 2014-11-02 18:17:44 +0000 |
commit | 12287ff0a55f929bf840dcb4780d3f77b862c434 (patch) | |
tree | 46632674f393249e7cd74eacd7a4da00ccec540f /src/kvm.c | |
parent | 479e719a64d75374f00438498cf91ba2601a63f1 (diff) | |
download | stm32_usb_kvm-12287ff0a55f929bf840dcb4780d3f77b862c434.tar.gz stm32_usb_kvm-12287ff0a55f929bf840dcb4780d3f77b862c434.tar.bz2 stm32_usb_kvm-12287ff0a55f929bf840dcb4780d3f77b862c434.zip |
fish
Diffstat (limited to 'src/kvm.c')
-rw-r--r-- | src/kvm.c | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/src/kvm.c b/src/kvm.c deleted file mode 100644 index f5e65c8..0000000 --- a/src/kvm.c +++ /dev/null @@ -1,91 +0,0 @@ -#include "project.h" - - -static enum -{ - STATE_SYNC = 0, - STATE_ADDR = 1, - STATE_ENDPOINT = 2, - STATE_LEN = 3, - STATE_DATA = 4, -} state = STATE_SYNC; - - -static uint8_t buf[16]; -static int addr; -static int endpoint; -static unsigned int len; -static unsigned int ptr; - -void -kvm_dispatch (void) -{ -#if 0 - printf - ("Addr %d, Write to ep %x, %d bytes %02x %02x %02x %02x ...\r\n", - addr, endpoint, len, buf[0], buf[1], buf[2], buf[3]); -#endif - - if(len) - usbd_ep_write_packet (usbd_dev, endpoint, buf, len); -} - -void -kvm_recv (uint8_t d) -{ -// printf ("S%d V0x%02x\r\n", state, d); - - if (state == STATE_ADDR) - { - addr = d; - usart_queue (d - 1); - state = STATE_ENDPOINT; - return; - } - else - { - usart_queue (d); - } - - - switch (state) - { - case STATE_SYNC: - if (d != 0x5a) - break; - state = STATE_ADDR; - break; - case STATE_ENDPOINT: - endpoint = d; - if ((endpoint < 0x81) || (endpoint > 0x83)) - { - state = STATE_SYNC; - } - else - { - state = STATE_LEN; - } - break; - case STATE_LEN: - len = d; - ptr = 0; - if (len > sizeof (buf)) - { - state = STATE_SYNC; - } - else - { - state = STATE_DATA; - } - break; - case STATE_DATA: - buf[ptr++] = d; - if (ptr >= len) - { - if (!addr) - kvm_dispatch (); - state = STATE_SYNC; - } - break; - } -} |