fix bug: config_w5500_network

This commit is contained in:
TXuian 2022-11-25 16:51:40 +08:00
parent 7bd09f7d9c
commit 3ea8baf7a2
1 changed files with 7 additions and 3 deletions

View File

@ -479,6 +479,8 @@ void char_arr_assign(uint8_t *dst[4], uint32_t src[4]) {
} }
} }
char *network_param_name[] = {"ip", "sn", "gw"};
void config_w5500_network(int argc, char *argv[]) { void config_w5500_network(int argc, char *argv[]) {
if (argc < 2) { if (argc < 2) {
KPrintf("[W5500] Network config require params."); KPrintf("[W5500] Network config require params.");
@ -498,22 +500,24 @@ void config_w5500_network(int argc, char *argv[]) {
uint32_t tmp_arr[4]; uint32_t tmp_arr[4];
sscanf(argv[cur_arg_idx + 1], "%d.%d.%d.%d", &tmp_arr[0], &tmp_arr[1], sscanf(argv[cur_arg_idx + 1], "%d.%d.%d.%d", &tmp_arr[0], &tmp_arr[1],
&tmp_arr[2], &tmp_arr[3]); &tmp_arr[2], &tmp_arr[3]);
if (argv[cur_arg_idx] == "ip") { if (memcmp(argv[cur_arg_idx], network_param_name[0]) == 0) {
for (int i = 0; i < 4; ++i) { for (int i = 0; i < 4; ++i) {
wiz_netinfo.ip[i] = (uint8_t)(tmp_arr[i]); wiz_netinfo.ip[i] = (uint8_t)(tmp_arr[i]);
} }
KPrintf("[W5500] Network config %s: %d.%d.%d.%d", wiz_netinfo.ip[0], KPrintf("[W5500] Network config %s: %d.%d.%d.%d", wiz_netinfo.ip[0],
wiz_netinfo.ip[1], wiz_netinfo.ip[2], wiz_netinfo.ip[3]); wiz_netinfo.ip[1], wiz_netinfo.ip[2], wiz_netinfo.ip[3]);
} else if (argv[cur_arg_idx] == "sn") { } else if (memcmp(argv[cur_arg_idx], network_param_name[1]) == 0) {
for (int i = 0; i < 4; ++i) { for (int i = 0; i < 4; ++i) {
wiz_netinfo.sn[i] = (uint8_t)(tmp_arr[i]); wiz_netinfo.sn[i] = (uint8_t)(tmp_arr[i]);
} }
KPrintf("[W5500] Network config %s: %d.%d.%d.%d", wiz_netinfo.sn[0], KPrintf("[W5500] Network config %s: %d.%d.%d.%d", wiz_netinfo.sn[0],
wiz_netinfo.sn[1], wiz_netinfo.sn[2], wiz_netinfo.sn[3]); wiz_netinfo.sn[1], wiz_netinfo.sn[2], wiz_netinfo.sn[3]);
} else if (argv[cur_arg_idx] == "gw") { } else if (memcmp(argv[cur_arg_idx], network_param_name[2]) == 0) {
for (int i = 0; i < 4; ++i) { for (int i = 0; i < 4; ++i) {
wiz_netinfo.gw[i] = (uint8_t)(tmp_arr[i]); wiz_netinfo.gw[i] = (uint8_t)(tmp_arr[i]);
} }
} else {
KPrintf("[W5500] Invalid network param.");
} }
cur_arg_idx += 2; cur_arg_idx += 2;
} }