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:
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;
}