MySmartUSB-MK3-Interface

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

commit 4937788accf46e3608b8f84dd19cb18ca5dcce17
parent 934ac32b75fe7e07529b62e1d437780da14e5af6
Author: Dominik Schmidt <das1993@hotmail.com>
Date:   Sat, 15 Dec 2012 13:58:12 +0100

Rescueclock implemented

Diffstat:
include/cmd.h | 1+
src/cmd.c | 24++++++++++++++++++++++++
src/cmd_dispatch.c | 2+-
src/com.c | 2+-
4 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/include/cmd.h b/include/cmd.h @@ -23,3 +23,4 @@ extern GENERATE_CALLBACK(cmd_board_power); extern GENERATE_CALLBACK(cmd_reset_line); extern GENERATE_CALLBACK(cmd_set_emul_mode); extern GENERATE_CALLBACK(cmd_set_prog_mode); +extern GENERATE_CALLBACK(cmd_set_rescue_clock); diff --git a/src/cmd.c b/src/cmd.c @@ -192,3 +192,27 @@ GENERATE_CALLBACK(cmd_set_prog_mode){ free(res); return 0; } + +GENERATE_CALLBACK(cmd_set_rescue_clock){ + char c; + if(*cmd->data[0]=='1'){ + c='C'; + } + else if(*cmd->data[0]=='0'){ + c='c'; + } + else{ + do_log("cmd_set_rescue_clock","Value must be either 1 or 0",LOG_LEVEL_ERROR,LOG_TYPE_NORMAL); + return -1; + } + if(sendMagicPacket(fd,c)<0){ + do_log("cmd_set_rescue_clock","Couldn't send rescue Clock", LOG_LEVEL_ERROR, LOG_TYPE_NORMAL); + return -2; + } + char r=readMagicPacket(fd); + if(r!=c){ + do_log("cmd_set_rescue_clock","Couldn't change rescue clock mode", LOG_LEVEL_ERROR, LOG_TYPE_NORMAL); + return -3; + } + return 0; +} diff --git a/src/cmd_dispatch.c b/src/cmd_dispatch.c @@ -25,7 +25,7 @@ struct command_def commands[]={ {.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="Emulation Mode", .opt={.usage="[d/UART,s/STK500,a/AVR910,q/Quiet,m/MyMode,p/ProgMode]", .arg_length=1, .short_option="-eM", .long_option="--emulation-mode"}, .request_mymode=0, .callback=&cmd_set_emul_mode}, - {.name="Rescue Clock", .opt={.usage="[1,0]", .arg_length=1, .short_option="-rC", .long_option="--rescue-clock"}, .request_mymode=0, .callback=&cmd_set_emul_mode}, + {.name="Rescue Clock", .opt={.usage="[1,0]", .arg_length=1, .short_option="-rC", .long_option="--rescue-clock"}, .request_mymode=0, .callback=&cmd_set_rescue_clock}, {.name="Programming Mode", .opt={.usage="[i/ISP, p/HVP, s/HVS, t/TPI, T/TPIHV]", .arg_length=1, .short_option="-pM", .long_option="--programming-mode"}, .request_mymode=1, .callback=&cmd_set_prog_mode}, {.name=NULL} }; diff --git a/src/com.c b/src/com.c @@ -78,7 +78,7 @@ char readMagicPacket(int fd){ continue; } } - else if((c>='a'&&c<='z')||c=='+'||c=='-'){ + else if((c>='a'&&c<='z')||(c>='A'&&c<='Z')||c=='+'||c=='-'){ r=c; } }