From 98dc60aa8c26569b56e3badf8e4e54cd87a4abfa Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 27 Jan 2013 22:15:09 +0000 Subject: added update-keys (no csum function yet) git-svn-id: https://svn.spreadspace.org/avr/trunk@74 aa12f405-d877-488e-9caf-2d797e2a1cc7 --- usb-i2c-sl018/Makefile | 3 ++ usb-i2c-sl018/update-keys.c | 70 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 usb-i2c-sl018/update-keys.c (limited to 'usb-i2c-sl018') diff --git a/usb-i2c-sl018/Makefile b/usb-i2c-sl018/Makefile index f505450..bd66f1f 100644 --- a/usb-i2c-sl018/Makefile +++ b/usb-i2c-sl018/Makefile @@ -42,3 +42,6 @@ LUFA_OPTS += -D USB_PRODUCT="L\"$(NAME)\"" LUFA_COMPONENTS := USB USBCLASS TWI include ../include.mk + +update-keys: update-keys.c + gcc -o $@ $< \ No newline at end of file diff --git a/usb-i2c-sl018/update-keys.c b/usb-i2c-sl018/update-keys.c new file mode 100644 index 0000000..dc082ed --- /dev/null +++ b/usb-i2c-sl018/update-keys.c @@ -0,0 +1,70 @@ +/* + * spreadspace avr utils + * + * + * Copyright (C) 2012 Christian Pointner + * + * This file is part of spreadspace avr utils. + * + * spreadspace avr utils is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * spreadspace avr utils is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with spreadspace avr utils. If not, see . + */ + +#include +#include + +#define MAX_KEY_LEN 7 + +char generate_csum(char* key) +{ + return 0xFF; +} + +int main(int argc, char* argv[]) +{ + char* line = NULL; + size_t len = 0; + + for(;;) { + ssize_t ret = getline(&line, &len, stdin); + if(ret <= 0) return 0; + + int i; + for(i=0; i MAX_KEY_LEN*2) { + fprintf(stderr, "ignoring invalid key (odd number of digits or empty string or too long): %s\n", line); + continue; + } + char key[MAX_KEY_LEN+1]; + int j; + char tmp[3]; + tmp[2] = 0; + for(j = 0; j<(i/2); ++j) { + tmp[0] = line[j*2]; + tmp[1] = line[j*2 + 1]; + key[j] = (char)strtoul(tmp, NULL, 16); + } + for(j=i/2; j < MAX_KEY_LEN; ++j) { + key[j] = 0; + } + key[MAX_KEY_LEN] = generate_csum(key); + ret = fwrite(key, MAX_KEY_LEN+1, 1, stdout); + } + + return 0; +} -- cgit v1.2.3