commit 26c7152364122f0fce09897a4cdf0f630506e155
parent 4937788accf46e3608b8f84dd19cb18ca5dcce17
Author: Dominik Schmidt <das1993@hotmail.com>
Date: Sat, 15 Dec 2012 14:12:55 +0100
IspSpeedsetting implemented
Diffstat:
4 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/include/cmd.h b/include/cmd.h
@@ -24,3 +24,4 @@ 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);
+extern GENERATE_CALLBACK(cmd_set_isp_speed);
diff --git a/src/cmd.c b/src/cmd.c
@@ -216,3 +216,33 @@ GENERATE_CALLBACK(cmd_set_rescue_clock){
}
return 0;
}
+GENERATE_CALLBACK(cmd_set_isp_speed){
+ int speed=atoi(cmd->data[0]);
+ if(speed<=0){
+ do_log("cmd_set_isp_speed","Invalid speed", LOG_LEVEL_ERROR, LOG_TYPE_NORMAL);
+ return -1;
+ }
+ char str[50];
+ sprintf(str,"@prog ispSpeed %u",speed);
+
+ if(sendString(fd,str)<0){
+ do_log("cmd_set_ispeed", "Couldn't send String",LOG_LEVEL_ERROR,LOG_TYPE_NORMAL);
+ return -2;
+ }
+ char *recv=readString(fd,0);
+ if(recv==NULL){
+ do_log("cmd_set_ispeed", "Couldn't receive Answer",LOG_LEVEL_ERROR,LOG_TYPE_NORMAL);
+ return -3;
+ }
+ if(checkIfOk(recv)){
+ char *newIsp=&recv[4];
+ sprintf(str,"New ISPSpeed: %s",newIsp);
+ do_log("cmd_set_ispeed", str, LOG_LEVEL_SUCCESS,LOG_TYPE_NORMAL);
+ }
+ else{
+ do_log("cmd_set_ispeed", "Couldn't set ISPSpeed",LOG_LEVEL_ERROR,LOG_TYPE_NORMAL);
+ return -4;
+ }
+ free(recv);
+ return 0;
+}
diff --git a/src/cmd_dispatch.c b/src/cmd_dispatch.c
@@ -27,6 +27,7 @@ struct command_def commands[]={
{.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_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="ISP Speed", .opt={.usage="<UINT>", .arg_length=1, .short_option="-iS", .long_option="--isp-speed"}, .request_mymode=1, .callback=&cmd_set_isp_speed},
{.name=NULL}
};
int executeCommand(struct command_exec *cmd, int fd){
diff --git a/src/log.c b/src/log.c
@@ -42,7 +42,7 @@ void log_string(char *str, unsigned short int level){
color="\e[1;33;41m";
break;
case LOG_LEVEL_SUCCESS:
- color="\e[1;37;43m";
+ color="\e[1;32m";
break;
}
}