commit 4937788accf46e3608b8f84dd19cb18ca5dcce17
parent 934ac32b75fe7e07529b62e1d437780da14e5af6
Author: Dominik Schmidt <das1993@hotmail.com>
Date: Sat, 15 Dec 2012 13:58:12 +0100
Rescueclock implemented
Diffstat:
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;
}
}