MySmartUSB-MK3-Interface

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

commit 26c7152364122f0fce09897a4cdf0f630506e155
parent 4937788accf46e3608b8f84dd19cb18ca5dcce17
Author: Dominik Schmidt <das1993@hotmail.com>
Date:   Sat, 15 Dec 2012 14:12:55 +0100

IspSpeedsetting implemented

Diffstat:
include/cmd.h | 1+
src/cmd.c | 30++++++++++++++++++++++++++++++
src/cmd_dispatch.c | 1+
src/log.c | 2+-
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; } }