|
|
@@ -498,6 +498,396 @@ static int proc_modbus(dictionary *dic, int op, modbus_data_t *mb)
|
|
|
|
|
|
return r;
|
|
|
}
|
|
|
+
|
|
|
+static int proc_sensor(dictionary *dic, int op, sensor_th_t sensor[])
|
|
|
+{
|
|
|
+ int r=0;
|
|
|
+ char temp[100];
|
|
|
+ char *p,*token=NULL;
|
|
|
+
|
|
|
+ if(op==PARAS_CHECK) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ else if (op==PARAS_CREATE) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ else if (op==PARAS_WRITE) {
|
|
|
+ r = proc_sensor(dic, PARAS_CHECK, sensor);
|
|
|
+ if(r) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// 1
|
|
|
+ token = "sensor_1:th_max_1";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[0].th_max_1 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[0].th_max_1);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ token = "sensor_1:th_min_1";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[0].th_min_1 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[0].th_min_1);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ token = "sensor_1:th_max_2";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[0].th_max_2 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[0].th_max_2);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ token = "sensor_1:th_min_2";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[0].th_min_2 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[0].th_min_2);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+// 2
|
|
|
+ token = "sensor_2:th_max_1";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[1].th_max_1 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[1].th_max_1);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ token = "sensor_2:th_min_1";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[1].th_min_1 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[1].th_min_1);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ token = "sensor_2:th_max_2";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[1].th_max_2 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[1].th_max_2);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ token = "sensor_2:th_min_2";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[1].th_min_2 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[1].th_min_2);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+//3
|
|
|
+ token = "sensor_3:th_max_1";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[2].th_max_1 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[2].th_max_1);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ token = "sensor_3:th_min_1";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[2].th_min_1 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[2].th_min_1);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ token = "sensor_3:th_max_2";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[2].th_max_2 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[2].th_max_2);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ token = "sensor_3:th_min_2";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ sensor[2].th_min_2 = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", sensor[2].th_min_2);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ r = 0;
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = proc_sensor(dic, PARAS_CHECK, sensor);
|
|
|
+ }
|
|
|
+
|
|
|
+ return r;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+static int proc_net(dictionary *dic, int op,network_data_t *net)
|
|
|
+{
|
|
|
+ int r=0;
|
|
|
+ char temp[100];
|
|
|
+ char *p,*token=NULL;
|
|
|
+ if(op==PARAS_CHECK) {
|
|
|
+ return 0;
|
|
|
+ }else if (op==PARAS_CREATE) {
|
|
|
+ return 0;
|
|
|
+ }else if (op==PARAS_WRITE) {
|
|
|
+ r = proc_net(dic, PARAS_CHECK, net);
|
|
|
+ if(r) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ token = "network:mode";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = iniparser_getint(dic, token, -1);
|
|
|
+ if(r==-1) {
|
|
|
+ LOGE("___ iniparser_getint %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ net->mode = r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%d", net->mode);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ token = "network:ipaddr";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ const char * str = iniparser_getstring(dic, token,NULL);
|
|
|
+ if(str == NULL) {
|
|
|
+ LOGE("___ iniparser_getstring %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ memcpy(net->ipaddr,str,strlen(str));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%s", net->ipaddr);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ token = "network:mask";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ const char * str = iniparser_getstring(dic, token,NULL);
|
|
|
+ if(str == NULL) {
|
|
|
+ LOGE("___ iniparser_getstring %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ memcpy(net->mask,str,strlen(str));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%s", net->mask);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ token = "network:gateway";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ const char * str = iniparser_getstring(dic, token,NULL);
|
|
|
+ if(str == NULL) {
|
|
|
+ LOGE("___ iniparser_getstring %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ memcpy(net->gateway,str,strlen(str));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%s", net->gateway);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ token = "network:dns1";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ const char * str = iniparser_getstring(dic, token,NULL);
|
|
|
+ if(str == NULL) {
|
|
|
+ LOGE("___ iniparser_getstring %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ memcpy(net->dns1,str,strlen(str));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%s", net->dns1);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ token = "network:dns2";
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ const char * str = iniparser_getstring(dic, token,NULL);
|
|
|
+ if(str == NULL) {
|
|
|
+ LOGE("___ iniparser_getstring %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ memcpy(net->dns2,str,strlen(str));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ sprintf(temp, "%s", net->dns1);
|
|
|
+ r = iniparser_set(dic, token, temp);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ iniparser_set %s failed\n", token);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ r = 0;
|
|
|
+ if(op==PARAS_READ) {
|
|
|
+ r = proc_net(dic, PARAS_CHECK, net);
|
|
|
+ }
|
|
|
+
|
|
|
+ return r;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
static int proc_misc(dictionary *dic, int op, misc_data_t *misc)
|
|
|
{
|
|
|
int r=0;
|
|
|
@@ -2984,6 +3374,15 @@ static dictionary* ini_load(char *path, paras_data_t *info)
|
|
|
LOGE("___proc_misc failed\n");
|
|
|
}
|
|
|
|
|
|
+ r = proc_sensor(dic, PARAS_READ, info->sensor);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___proc_sensor failed\n");
|
|
|
+ }
|
|
|
+
|
|
|
+ r = proc_net(dic, PARAS_READ, &info->netwk);
|
|
|
+ if(r) {
|
|
|
+ LOGE("proc_net failed\n");
|
|
|
+ }
|
|
|
return dic;
|
|
|
}
|
|
|
static int ini_check(char *path)
|
|
|
@@ -3037,6 +3436,34 @@ static int ini_reset(paras_handle_t *h)
|
|
|
fprintf(fp, "beep = \"%d\"\n", p->misc.beep);
|
|
|
fprintf(fp, "rotate = \"%d\"\n", p->misc.rotate);
|
|
|
fprintf(fp, "\n");
|
|
|
+
|
|
|
+ fprintf(fp, "[sensor_1]\n");
|
|
|
+ fprintf(fp, "th_max_1 = \"%d\"\n", p->sensor[0].th_max_1);
|
|
|
+ fprintf(fp, "th_min_1 = \"%d\"\n", p->sensor[0].th_min_1);
|
|
|
+ fprintf(fp, "th_max_2 = \"%d\"\n", p->sensor[0].th_max_2);
|
|
|
+ fprintf(fp, "th_min_2 = \"%d\"\n", p->sensor[0].th_min_2);
|
|
|
+
|
|
|
+ fprintf(fp, "[sensor_2]\n");
|
|
|
+ fprintf(fp, "th_max_1 = \"%d\"\n", p->sensor[1].th_max_1);
|
|
|
+ fprintf(fp, "th_min_1 = \"%d\"\n", p->sensor[1].th_min_1);
|
|
|
+ fprintf(fp, "th_max_2 = \"%d\"\n", p->sensor[1].th_max_2);
|
|
|
+ fprintf(fp, "th_min_2 = \"%d\"\n", p->sensor[1].th_min_2);
|
|
|
+ fprintf(fp, "[sensor_3]\n");
|
|
|
+ fprintf(fp, "th_max_1 = \"%d\"\n", p->sensor[2].th_max_1);
|
|
|
+ fprintf(fp, "th_min_1 = \"%d\"\n", p->sensor[2].th_min_1);
|
|
|
+ fprintf(fp, "th_max_2 = \"%d\"\n", p->sensor[2].th_max_2);
|
|
|
+ fprintf(fp, "th_min_2 = \"%d\"\n", p->sensor[2].th_min_2);
|
|
|
+ fprintf(fp, "\n");
|
|
|
+
|
|
|
+ fprintf(fp, "[network]\n");
|
|
|
+ fprintf(fp, "mode = \"%d\"\n", p->netwk.mode);
|
|
|
+ fprintf(fp, "ipaddr = \"%s\"\n", p->netwk.ipaddr);
|
|
|
+ fprintf(fp, "gateway = \"%s\"\n", p->netwk.gateway);
|
|
|
+ fprintf(fp, "mask = \"%s\"\n", p->netwk.mask);
|
|
|
+ fprintf(fp, "dns1 = \"%s\"\n", p->netwk.dns1);
|
|
|
+ fprintf(fp, "dns2 = \"%s\"\n", p->netwk.dns2);
|
|
|
+ fprintf(fp, "\n");
|
|
|
+
|
|
|
|
|
|
fclose(fp);
|
|
|
if(h->dic) {
|