MySmartUSB-MK3-Interface

MySmartUSB MK3 Interface
git clone git://xatko.vsos.ethz.ch/MySmartUSB-MK3-Interface.git
Log | Files | Refs

commit 13f97708d3ff975bda4877c3992e47928fcbdead
parent 5e686681b99d3e90e5955f905d0b1e9e00da2d61
Author: Dominik Schmidt <das1993@hotmail.com>
Date:   Thu, 13 Dec 2012 20:39:40 +0100

Corrected some flaws; it now works pretty reliable.

Diffstat:
ctrl.c | 4++++
include/cmd_dispatch.h | 1+
src/cmd.c | 14+++++++-------
src/cmd_dispatch.c | 9+++++----
src/dev.c | 1+
src/engine.c | 10+++++-----
6 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/ctrl.c b/ctrl.c @@ -8,7 +8,11 @@ * */ #include <engine.h> +#include <dev.h> +#include <com.h> +#include <unistd.h> int main(int argc, char **argv){ engine_init(argc,argv); + engine_run(); return 0; } diff --git a/include/cmd_dispatch.h b/include/cmd_dispatch.h @@ -14,6 +14,7 @@ struct command_def{ char *name; int (*callback)(struct command_exec *cmd, int fd); + unsigned short int request_mymode; struct option opt; }; diff --git a/src/cmd.c b/src/cmd.c @@ -20,20 +20,18 @@ int cmd_board_reset(struct command_exec *cmd,int fd){ do_log("cmd_board_reset","Couldn't send reset packet", LOG_LEVEL_ERROR, LOG_TYPE_NORMAL); return -1; } - int ret=0; - char *buf=readString(fd,3); - if(parseMagicPacket(buf)=='r'){ - ret=-2; + if(readMagicPacket(fd)!='r'){ + return -2; } - free(buf); - return ret; + return 0; } int cmd_reset(struct command_exec *cmd, int fd){ if(sendString(fd,"@main reset")<0){ do_log("cmd_reset","Couldn't send reset string", LOG_LEVEL_ERROR, LOG_TYPE_NORMAL); return -1; } - usleep(1000000); + do_log("cmd_reset","Starting 3 Second Timeout", LOG_LEVEL_INFO, LOG_TYPE_NORMAL); + usleep(3000000); char *ret=readString(fd, 0); if(!checkIfOk(ret)){ do_log("cmd_reset","Couldn't reset device", LOG_LEVEL_ERROR, LOG_TYPE_NORMAL); @@ -93,6 +91,8 @@ int cmd_board_power(struct command_exec *cmd, int fd){ return -2; } char r=readMagicPacket(fd); + putc(r,stdout); + putc('\n',stdout); if(r!=c){ return -3; } diff --git a/src/cmd_dispatch.c b/src/cmd_dispatch.c @@ -20,9 +20,10 @@ struct command_def commands[]={ {.name="Status", .opt={.arg_length=0, .short_option="-s", .long_option="--status"}, .request_mymode=0, .callback=&cmd_status}, {.name="Reset", .opt={.arg_length=0, .short_option="-R", .long_option="--reset"}, .request_mymode=1, .callback=&cmd_reset}, - {.name="Board-Reset", .opt={.arg_length=0, .short_option="-r", .long_option="--board-reset"}, .request_mymode=0, .callback=&cmd_board_reset}, - {.name="Reset-Line", .opt={.usage="[1/0]", .arg_length=1, .short_option="-rL", .long_option="--reset-line"}, .request_mymode=1, .callback=&cmd_reset_line}, - {.name="Board-Power", .opt={.usage="[1/0]", .arg_length=1, .short_option="-bP", .long_option="--board-power"}, .request_mymode=0, .callback=&cmd_board_power}, + {.name="Boardreset", .opt={.arg_length=0, .short_option="-r", .long_option="--board-reset"}, .request_mymode=0, .callback=&cmd_board_reset}, + {.name="Resetline", .opt={.usage="[1/0]", .arg_length=1, .short_option="-rL", .long_option="--reset-line"}, .request_mymode=1, .callback=&cmd_reset_line}, + {.name="Boardpower", .opt={.usage="[1/0]", .arg_length=1, .short_option="-bP", .long_option="--board-power"}, .request_mymode=0, .callback=&cmd_board_power}, + {.name="Set Mode", .opt={.usage="[1/0]", .arg_length=1, .short_option="-bP", .long_option="--board-power"}, .request_mymode=0, .callback=&cmd_board_power}, {.name=NULL} }; int executeCommand(struct command_exec *cmd, int fd){ @@ -30,7 +31,7 @@ int executeCommand(struct command_exec *cmd, int fd){ do_log("executeCommand","Couldn't execute command",LOG_LEVEL_ERROR,LOG_TYPE_NORMAL); } else{ - do_log("executeCommand","Executing successfull",LOG_LEVEL_DEBUG,LOG_TYPE_NORMAL); + do_log("executeCommand","Execution successfull",LOG_LEVEL_DEBUG,LOG_TYPE_NORMAL); } return 0; } diff --git a/src/dev.c b/src/dev.c @@ -40,6 +40,7 @@ int autoConfigBaud(int fd){ do_log("autoConfigBaud","Couldn't set baudrate", LOG_LEVEL_FATAL,LOG_TYPE_NORMAL); return -2; } + printf("Testing baud %u\n",speed[i]); } return 0; diff --git a/src/engine.c b/src/engine.c @@ -40,6 +40,11 @@ int engine_init(int argc, char **argv){ configuration.filename=argv[0]; parseArguments(argc-1, &argv[1],&configuration); + + return 0; +} + +int engine_run(void){ int fd=openDevice(configuration.device); if(fd<0){ do_log("main","Couldn't open device",LOG_LEVEL_FATAL,LOG_TYPE_NORMAL); @@ -49,11 +54,6 @@ int engine_init(int argc, char **argv){ processCommands(configuration.cmdlist.data,fd); finishCommandExecution(fd, &configuration); closeDevice(fd); - - return 0; -} - -int engine_run(void){ return 0; }