MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / fxArguments

Function fxArguments

tools/serial2xsbug/serial2xsbug.c:103–251  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

101};
102
103int fxArguments(txSerialTool self, int argc, char* argv[])
104{
105 int argi;
106 if (argc < 3) {
107 fprintf(stderr, "### serial2xsbug <port name> <baud rate> <data bits><parity><stop bits>\n");
108 fprintf(stderr, "### serial2xsbug <vid:pid> -showPath [-timeout <ms>]\n");
109 return 1;
110 }
111 memset(self, 0, sizeof(txSerialToolRecord));
112 self->path = argv[1];
113 if (argc > 2) {
114 self->baud = atoi(argv[2]);
115 if (argc > 3) {
116 self->data = argv[3][0] - '0';
117 self->parity = argv[3][1];
118 self->stop = argv[3][2] - '0';
119 }
120 }
121 self->host = "localhost";
122 if (getenv("XSBUG_HOST"))
123 self->host = getenv("XSBUG_HOST");
124 self->port = 5002;
125 if (getenv("XSBUG_PORT"))
126 self->port = atoi(getenv("XSBUG_PORT"));
127 self->restartOnConnect = 1;
128 self->showPath = 0;
129 self->timeout = 5000; // for showpath
130
131 if (9 == strlen(self->path) && (':' == self->path[4])) {
132 self->vendorID = (mapHex(self->path[0]) << 12) | (mapHex(self->path[1]) << 8) | (mapHex(self->path[2]) << 4) | mapHex(self->path[3]);
133 self->productID = (mapHex(self->path[5]) << 12) | (mapHex(self->path[6]) << 8) | (mapHex(self->path[7]) << 4) | mapHex(self->path[8]);
134 self->path = "";
135 }
136
137 TOOLS_BIN = NULL;
138 elfPath = NULL;
139 gCmd = NULL;
140
141 for (argi = 2; argi < argc; argi++) {
142 if (argv[argi][0] != '-')
143 continue;
144 if (!strcmp(argv[argi], "-showPath"))
145 self->showPath = 1;
146 else if (!strcmp(argv[argi], "-timeout") && ((argi + 1) < argc)) {
147 self->timeout = atoi(argv[++argi]);
148 }
149 else if (!strcmp(argv[argi], "-elf") && ((argi + 1) < argc)) {
150 elfPath = argv[++argi];
151 }
152 else if (!strcmp(argv[argi], "-bin") && ((argi + 1) < argc)) {
153 TOOLS_BIN = argv[++argi];
154 }
155 else if (!strcmp(argv[argi], "-uninstall") && !gCmd) {
156 gCmd = argv[argi] + 1;
157 }
158 else if (!strcmp(argv[argi], "-install") && !gCmd && ((argi + 1) < argc)) {
159 gCmd = argv[argi++] + 1;
160 gInstallFD = fopen(argv[argi], "rb");

Callers 3

mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85

Calls 1

mapHexFunction · 0.85

Tested by

no test coverage detected