diff --git a/cmd.cpp b/cmd.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d08a1c8e7affb91598dd295fa4bac88ffa7f3459 --- /dev/null +++ b/cmd.cpp @@ -0,0 +1,419 @@ +#include +#include +#include +#include "cmd.h" + +/* Get a ptr of an object of DaqFileManager */ +extern pDaqFM daqFMx; +/* array of t_cmds,key-value pairs of cmds and their cmd_Func */ +struct t_cmd commands[NO_OF_COMMANDS] = { + { "quit", cmd_Func_quit }, + { "help", cmd_Func_help }, + { "dfp", cmd_Func_dfp }, + { "save", cmd_Func_save}, + {"sample",cmd_Func_sample}, + {"csignal",cmd_Func_csignal}, + {"basicparam",cmd_Func_basicparam}, + {"smethod",cmd_Func_smethod}, + {"dfp", cmd_Func_dfp}, + {"samplerate",cmd_Func_samplerate}, + {"baud", cmd_Func_baud}, + {"fre",cmd_Func_fre}, + {"pp",cmd_Func_pp}, + {"mode",cmd_Func_mode}, + {"ipaddr",cmd_Func_ipaddr}, + {"mask",cmd_Func_mask}, + {"geteway",cmd_Func_gateway}, + {"serverip",cmd_Func_serverip}, + {"serverport",cmd_Func_serverport}, + {"sn",cmd_Func_sn}, + {"lon",cmd_Func_lon}, + {"la",cmd_Func_la}, + {"prints",cmd_Func_prints}, + {"printf",cmd_Func_printf}, + +}; +/* to check wether val is included in commands */ +int FindInCmds(char* val) +{ + for (int i = 0;i < NO_OF_COMMANDS;i++) { + if( 0==strcmp(commands[i].cmd,val) ) + return i; + } + return -1; +} + +/************************************************************* + + Init method if DAQ config system + +*************************************************************/ +void Cmd_Init() +{ + +} + +/************************************************************ + + basic cmds of system + +*************************************************************/ +char cmd_Func_help() +{ + (void) printf( "Usage: cmd \n" ); + (void) printf( "\n" ); + (void) printf( "Commands:\n" ); + (void) printf( " help print this help message\n" ); + (void) printf( " quit quit application\n" ); + + return EXIT_SUCCESS; +} + +char cmd_Func_quit() +{ + (void) printf( "Exiting ...\n" ); + exit( EXIT_SUCCESS ); +} +/* 打印输出结构体所有元素的值 */ +char cmd_Func_prints() +{ + printf("basicParam_chn:%s\n",daqFMx->_basicparam._chn);; + return (EXIT_SUCCESS); +} +/* 打印输出配置文件信息 */ +char cmd_Func_printf() +{ + /* read info from config file and save to daq strc */ + DaqFM_Read(daqFMx); + /* printf vals of all elems of info strct */ + printf("sample_dfp:%s\n", daqFMx->_sample._dfp);; + return (EXIT_SUCCESS); +} +/* 把配置信息写入配置文件 */ +char cmd_Func_save() +{ + DaqFM_Save(daqFMx); + return EXIT_SUCCESS; +} + +/************************************************************ + + 配置函数 + +*************************************************************/ + +/******************************** 大类配置命令 ********************************/ +/* 配置samlpe */ +char cmd_Func_sample() +{ + cmd_Func_dfp(); + cmd_Func_samplerate(); + return EXIT_SUCCESS; +} +/* 配置baud */ +char cmd_Func_baud() +{ + char quit[] = { "quit" }; + char Val_1[] = { "9600" }; + char Val_2[] = { "115200" }; + char buffer[VALUELENGTH] = { '\0' }; + do { + printf("please select value for baud\n"); + printf("%s %s\n", Val_1, Val_2); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (!(strcmp(buffer, Val_1) || strcmp(buffer, Val_2))); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_baud_baud(daqFMx, buffer); + + return EXIT_SUCCESS; +} + +/* 配置csignal */ +char cmd_Func_csignal() +{ + cmd_Func_fre(); + cmd_Func_pp(); + return EXIT_SUCCESS; +} + +/* 配置smethod */ +char cmd_Func_smethod() +{ + cmd_Func_mode(); + cmd_Func_ipaddr(); + cmd_Func_mask(); + cmd_Func_gateway(); + cmd_Func_serverip(); + cmd_Func_serverport(); + return EXIT_SUCCESS; +} +/* 配置basicparam */ +char cmd_Func_basicparam() +{ + cmd_Func_sn(); + cmd_Func_lon(); + cmd_Func_la(); + cmd_Func_chn(); + cmd_Func_model(); + return EXIT_SUCCESS; +} + +/******************************** 小项配置命令 ********************************/ + +/* 配置dfp */ +char cmd_Func_dfp() +{ + char quit[] = {"quit"}; + char Val_1[] = {"liner"}; + char Val_2[] = { "minimal" }; + char buffer[VALUELENGTH] = {'\0'}; + do{ + printf("please select value for dfp\n"); + printf("%s %s\n", Val_1, Val_2); + (void)(void)scanf("%s",buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (!(strcmp(buffer, Val_1) || strcmp(buffer, Val_2))); + + DaqFM_SetVal_sample_dfp(daqFMx, buffer); + return EXIT_SUCCESS; +} +/* 配置samlperate */ +char cmd_Func_samplerate() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for fre\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_sample_samplerate(daqFMx, buffer); + return EXIT_SUCCESS; +} +/* 配置fre */ +char cmd_Func_fre() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for fre\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_csignal_fre(daqFMx, buffer); + return EXIT_SUCCESS; +} +/* 配置pp */ +char cmd_Func_pp() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for pp\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_csignal_pp(daqFMx, buffer); + + return EXIT_SUCCESS; +} +/* 配置mode */ +char cmd_Func_mode() +{ + char quit[] = { "quit" }; + char Val_1[] = { "master" }; + char Val_2[] = { "sliver" }; + char buffer[VALUELENGTH] = { '\0' }; + do { + printf("please select value for dfp\n"); + printf("%s %s\n", Val_1, Val_2); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (!(strcmp(buffer, Val_1) || strcmp(buffer, Val_2))); + + return EXIT_SUCCESS; +} +/* 配置ipaddr */ +char cmd_Func_ipaddr() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for ipaddr\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_smethod_ipaddr(daqFMx, buffer); + + return EXIT_SUCCESS; +} +/* 配置mask */ +char cmd_Func_mask() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for mask\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_smethod_mask(daqFMx, buffer); + + return EXIT_SUCCESS; + return EXIT_SUCCESS; +} +/* 配置gateway */ +char cmd_Func_gateway() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for gateway\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_smethod_gateway(daqFMx, buffer); + + return EXIT_SUCCESS; + return EXIT_SUCCESS; + return EXIT_SUCCESS; +} +/* 配置serverip */ +char cmd_Func_serverip() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for serverip\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_smethod_serverip(daqFMx, buffer); + + + return EXIT_SUCCESS; +} +/* 配置serverport */ +char cmd_Func_serverport() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for serverport\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_smethod_serverport(daqFMx, buffer); + return EXIT_SUCCESS; +} +/* 配置sn */ +char cmd_Func_sn() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for sn\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_basicparam_sn(daqFMx, buffer); + return EXIT_SUCCESS; +} +/* 配置lon */ +char cmd_Func_lon() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for lon\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_basicparam_lon(daqFMx, buffer); + return EXIT_SUCCESS; +} +/* 配置la */ +char cmd_Func_la() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for la\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_basicparam_la(daqFMx, buffer); + return EXIT_SUCCESS; +} +/*配置chn*/ +char cmd_Func_chn() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for chn\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_basicparam_chn(daqFMx, buffer); + return EXIT_SUCCESS; +} +/*配置model*/ +char cmd_Func_model() +{ + char quit[] = { "quit" }; + char buffer[VALUELENGTH] = { 0 }; + do { + printf("please set value for model\n"); + (void)scanf("%s", buffer); + if (!strcmp(buffer, quit)) + return EXIT_SUCCESS; + } while (strlen(buffer) == 0); + + /* 把配置值写入结构体 */ + DaqFM_SetVal_basicparam_model(daqFMx, buffer); + return EXIT_SUCCESS; +} + +