summaryrefslogtreecommitdiff
path: root/src/MtsIoSysfs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/MtsIoSysfs.cpp')
-rw-r--r--src/MtsIoSysfs.cpp39
1 files changed, 27 insertions, 12 deletions
diff --git a/src/MtsIoSysfs.cpp b/src/MtsIoSysfs.cpp
index c7e892a..8bde1fb 100644
--- a/src/MtsIoSysfs.cpp
+++ b/src/MtsIoSysfs.cpp
@@ -33,6 +33,7 @@ enum action_code {
ACTION_INIT,
ACTION_JSON,
ACTION_LOAD_FPGA,
+ ACTION_CHECK_FPGA,
ACTION_SHOW,
ACTION_SHOW_TRIGGER,
ACTION_STORE,
@@ -56,11 +57,12 @@ int main(int argc, char **argv) {
int c;
static struct option long_options[] = {
{"help", no_argument, nullptr, 'h'},
+ {"check", no_argument, nullptr, 'c'},
{"data", required_argument, nullptr, 'd'},
{"input", required_argument, nullptr, 'i'},
{"init", no_argument, nullptr, 'I'},
{"json", no_argument, nullptr, 'j'},
- {"load-fpga", optional_argument, nullptr, 'l'},
+ {"load-fpga", no_argument, nullptr, 'l'},
{"path", required_argument, nullptr, 'p'},
{"show", required_argument, nullptr, 's'},
{"show-trigger", required_argument, nullptr, 'S'},
@@ -73,7 +75,7 @@ int main(int argc, char **argv) {
for (;;) {
int option_index = 0;
- c = getopt_long(argc, argv, "d:hi:Ijl:p:s:St:T:vV", long_options,
+ c = getopt_long(argc, argv, "cd:hi:Ijlp:s:St:T:vV", long_options,
&option_index);
if (c == -1)
break;
@@ -87,6 +89,10 @@ int main(int argc, char **argv) {
true);
break;
}
+ case 'c': {
+ action = ACTION_CHECK_FPGA;
+ break;
+ }
case 'd': {
data = optarg;
break;
@@ -96,7 +102,7 @@ int main(int argc, char **argv) {
break;
}
case 'p': {
- forcedAP = optarg;
+ forcedAP = std::string(optarg);
break;
}
case 'I': {
@@ -107,6 +113,10 @@ int main(int argc, char **argv) {
action = ACTION_JSON;
break;
}
+ case 'l': {
+ action = ACTION_LOAD_FPGA;
+ break;
+ }
case 's': {
action = ACTION_SHOW;
name = optarg;
@@ -127,18 +137,17 @@ int main(int argc, char **argv) {
name = optarg;
break;
}
- case 'L': {
- action = ACTION_LOAD_FPGA;
- break;
+ case ':': {
+ printf("Missing arg for %c\n", optopt);
+ exit(-1);
}
- case '?': {
- printError("%s option requires arguement", optopt);
- break;
+ case 'h': {
+ m.printUsage(argv[0]);
+ exit(0);
}
- case 'h':
default:
m.printUsage(argv[0]);
- exit(0);
+ exit(-1);
}
}
@@ -184,7 +193,9 @@ int main(int argc, char **argv) {
action = ACTION_NONE;
}
} else if (strcmp(argv[index], COMMMAND_LOAD_FPGA) == 0) {
- action = ACTION_LOAD_FPGA;
+ if (action != ACTION_CHECK_FPGA) {
+ action = ACTION_LOAD_FPGA;
+ }
} else if (strcmp(argv[index], COMMMAND_VERSION) == 0) {
action = ACTION_VERSION;
} else if (strcmp(argv[index], COMMMAND_EXTRA) == 0) {
@@ -216,6 +227,10 @@ int main(int argc, char **argv) {
case ACTION_JSON: {
m.json();
}
+ case ACTION_CHECK_FPGA: {
+ Mtac15Fpga mtac15Fpga(fpgaFilePath, forcedAP);
+ mtac15Fpga.printFpgaVersion();
+ }
case ACTION_LOAD_FPGA: {
Mtac15Fpga mtac15Fpga(fpgaFilePath, forcedAP);
return mtac15Fpga.upgradeFpga();