brewco/rdconfig.c

changeset 445
3ec477cda546
parent 441
bde74a8f2ad7
child 446
78e9d5234d15
equal deleted inserted replaced
444:eafb140a1ddd 445:3ec477cda546
374 } 374 }
375 if (((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "PUMP_ONBOIL", "%d", unit->pump_onboil)) < 0)) { 375 if (((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "PUMP_ONBOIL", "%d", unit->pump_onboil)) < 0)) {
376 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement"); 376 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
377 return 1; 377 return 1;
378 } 378 }
379 if (((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "PUMP_STOP", "%d", unit->pump_stop)) < 0)) { 379 if (((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "PUMP_STOP", "%.3f", unit->pump_stop)) < 0)) {
380 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement"); 380 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
381 return 1; 381 return 1;
382 } 382 }
383 if (((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "SKIP_ADD", "%d", unit->skip_add)) < 0)) { 383 if (((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "SKIP_ADD", "%d", unit->skip_add)) < 0)) {
384 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement"); 384 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
772 */ 772 */
773 int parseBrewsystem(xmlDocPtr doc, xmlNodePtr cur) 773 int parseBrewsystem(xmlDocPtr doc, xmlNodePtr cur)
774 { 774 {
775 xmlChar *key; 775 xmlChar *key;
776 int i, ival; 776 int i, ival;
777 float val; 777 float fval;
778 units_list *unit, *tmp; 778 units_list *unit, *tmp;
779 779
780 unit = (units_list *)malloc(sizeof(units_list)); 780 unit = (units_list *)malloc(sizeof(units_list));
781 unit->next = NULL; 781 unit->next = NULL;
782 unit->version = 1; 782 unit->version = 1;
790 unit->pump_rest = 2; 790 unit->pump_rest = 2;
791 unit->pump_premash = 1; 791 unit->pump_premash = 1;
792 unit->pump_onmash = 1; 792 unit->pump_onmash = 1;
793 unit->pump_mashout = 0; 793 unit->pump_mashout = 0;
794 unit->pump_onboil = 0; 794 unit->pump_onboil = 0;
795 unit->pump_stop = 90; 795 unit->pump_stop = 90.0;
796 unit->skip_add = 0; 796 unit->skip_add = 0;
797 unit->skip_remove = 0; 797 unit->skip_remove = 0;
798 unit->skip_iodine = 0; 798 unit->skip_iodine = 0;
799 unit->iodine_time = 90; 799 unit->iodine_time = 90;
800 unit->whirlpool = 1; 800 unit->whirlpool = 1;
986 unit->pump_onboil = ival; 986 unit->pump_onboil = ival;
987 xmlFree(key); 987 xmlFree(key);
988 } 988 }
989 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PUMP_STOP"))) { 989 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PUMP_STOP"))) {
990 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 990 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
991 if (sscanf((const char *)key, "%d", &ival) == 1) 991 if (sscanf((const char *)key, "%f", &fval) == 1)
992 unit->pump_stop = ival; 992 unit->pump_stop = fval;
993 xmlFree(key); 993 xmlFree(key);
994 } 994 }
995 if ((!xmlStrcmp(cur->name, (const xmlChar *)"SKIP_ADD"))) { 995 if ((!xmlStrcmp(cur->name, (const xmlChar *)"SKIP_ADD"))) {
996 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 996 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
997 if (sscanf((const char *)key, "%d", &ival) == 1) 997 if (sscanf((const char *)key, "%d", &ival) == 1)
1027 xmlFree(key); 1027 xmlFree(key);
1028 } 1028 }
1029 1029
1030 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_IMAX"))) { 1030 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_IMAX"))) {
1031 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1031 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1032 if (sscanf((const char *)key, "%f", &val) == 1) 1032 if (sscanf((const char *)key, "%f", &fval) == 1)
1033 unit->PID_hlt->iMax = val; 1033 unit->PID_hlt->iMax = fval;
1034 xmlFree(key); 1034 xmlFree(key);
1035 } 1035 }
1036 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_IGAIN"))) { 1036 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_IGAIN"))) {
1037 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1037 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1038 if (sscanf((const char *)key, "%f", &val) == 1) 1038 if (sscanf((const char *)key, "%f", &fval) == 1)
1039 unit->PID_hlt->iGain = val; 1039 unit->PID_hlt->iGain = fval;
1040 xmlFree(key); 1040 xmlFree(key);
1041 } 1041 }
1042 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_PGAIN"))) { 1042 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_PGAIN"))) {
1043 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1043 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1044 if (sscanf((const char *)key, "%f", &val) == 1) 1044 if (sscanf((const char *)key, "%f", &fval) == 1)
1045 unit->PID_hlt->pGain = val; 1045 unit->PID_hlt->pGain = fval;
1046 xmlFree(key); 1046 xmlFree(key);
1047 } 1047 }
1048 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_DGAIN"))) { 1048 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_DGAIN"))) {
1049 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1049 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1050 if (sscanf((const char *)key, "%f", &val) == 1) 1050 if (sscanf((const char *)key, "%f", &fval) == 1)
1051 unit->PID_hlt->dGain = val; 1051 unit->PID_hlt->dGain = fval;
1052 xmlFree(key); 1052 xmlFree(key);
1053 } 1053 }
1054 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_INPUT"))) { 1054 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_INPUT"))) {
1055 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1055 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1056 if (sscanf((const char *)key, "%f", &val) == 1) 1056 if (sscanf((const char *)key, "%f", &fval) == 1)
1057 unit->PID_hlt->Input = val; 1057 unit->PID_hlt->Input = fval;
1058 xmlFree(key); 1058 xmlFree(key);
1059 } 1059 }
1060 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_ERR"))) { 1060 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_ERR"))) {
1061 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1061 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1062 if (sscanf((const char *)key, "%f", &val) == 1) 1062 if (sscanf((const char *)key, "%f", &fval) == 1)
1063 unit->PID_hlt->Err = val; 1063 unit->PID_hlt->Err = fval;
1064 xmlFree(key); 1064 xmlFree(key);
1065 } 1065 }
1066 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_ERRLAST"))) { 1066 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_ERRLAST"))) {
1067 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1067 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1068 if (sscanf((const char *)key, "%f", &val) == 1) 1068 if (sscanf((const char *)key, "%f", &fval) == 1)
1069 unit->PID_hlt->ErrLast = val; 1069 unit->PID_hlt->ErrLast = fval;
1070 xmlFree(key); 1070 xmlFree(key);
1071 } 1071 }
1072 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_ISTATE"))) { 1072 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_ISTATE"))) {
1073 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1073 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1074 if (sscanf((const char *)key, "%f", &val) == 1) 1074 if (sscanf((const char *)key, "%f", &fval) == 1)
1075 unit->PID_hlt->iState = val; 1075 unit->PID_hlt->iState = fval;
1076 xmlFree(key); 1076 xmlFree(key);
1077 } 1077 }
1078 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_SETP"))) { 1078 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_SETP"))) {
1079 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1079 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1080 if (sscanf((const char *)key, "%f", &val) == 1) 1080 if (sscanf((const char *)key, "%f", &fval) == 1)
1081 unit->PID_hlt->SetP = val; 1081 unit->PID_hlt->SetP = fval;
1082 xmlFree(key); 1082 xmlFree(key);
1083 } 1083 }
1084 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_OUTP"))) { 1084 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_OUTP"))) {
1085 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1085 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1086 if (sscanf((const char *)key, "%f", &val) == 1) 1086 if (sscanf((const char *)key, "%f", &fval) == 1)
1087 unit->PID_hlt->OutP = val; 1087 unit->PID_hlt->OutP = fval;
1088 xmlFree(key); 1088 xmlFree(key);
1089 } 1089 }
1090 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_MODE"))) { 1090 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_HLT_MODE"))) {
1091 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1091 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1092 for (i = 0; i < 3; i++) { 1092 for (i = 0; i < 3; i++) {
1098 xmlFree(key); 1098 xmlFree(key);
1099 } 1099 }
1100 1100
1101 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_IMAX"))) { 1101 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_IMAX"))) {
1102 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1102 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1103 if (sscanf((const char *)key, "%f", &val) == 1) 1103 if (sscanf((const char *)key, "%f", &fval) == 1)
1104 unit->PID_mlt->iMax = val; 1104 unit->PID_mlt->iMax = fval;
1105 xmlFree(key); 1105 xmlFree(key);
1106 } 1106 }
1107 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_IGAIN"))) { 1107 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_IGAIN"))) {
1108 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1108 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1109 if (sscanf((const char *)key, "%f", &val) == 1) 1109 if (sscanf((const char *)key, "%f", &fval) == 1)
1110 unit->PID_mlt->iGain = val; 1110 unit->PID_mlt->iGain = fval;
1111 xmlFree(key); 1111 xmlFree(key);
1112 } 1112 }
1113 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_PGAIN"))) { 1113 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_PGAIN"))) {
1114 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1114 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1115 if (sscanf((const char *)key, "%f", &val) == 1) 1115 if (sscanf((const char *)key, "%f", &fval) == 1)
1116 unit->PID_mlt->pGain = val; 1116 unit->PID_mlt->pGain = fval;
1117 xmlFree(key); 1117 xmlFree(key);
1118 } 1118 }
1119 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_DGAIN"))) { 1119 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_DGAIN"))) {
1120 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1120 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1121 if (sscanf((const char *)key, "%f", &val) == 1) 1121 if (sscanf((const char *)key, "%f", &fval) == 1)
1122 unit->PID_mlt->dGain = val; 1122 unit->PID_mlt->dGain = fval;
1123 xmlFree(key); 1123 xmlFree(key);
1124 } 1124 }
1125 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_INPUT"))) { 1125 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_INPUT"))) {
1126 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1126 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1127 if (sscanf((const char *)key, "%f", &val) == 1) 1127 if (sscanf((const char *)key, "%f", &fval) == 1)
1128 unit->PID_mlt->Input = val; 1128 unit->PID_mlt->Input = fval;
1129 xmlFree(key); 1129 xmlFree(key);
1130 } 1130 }
1131 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_ERR"))) { 1131 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_ERR"))) {
1132 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1132 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1133 if (sscanf((const char *)key, "%f", &val) == 1) 1133 if (sscanf((const char *)key, "%f", &fval) == 1)
1134 unit->PID_mlt->Err = val; 1134 unit->PID_mlt->Err = fval;
1135 xmlFree(key); 1135 xmlFree(key);
1136 } 1136 }
1137 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_ERRLAST"))) { 1137 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_ERRLAST"))) {
1138 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1138 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1139 if (sscanf((const char *)key, "%f", &val) == 1) 1139 if (sscanf((const char *)key, "%f", &fval) == 1)
1140 unit->PID_mlt->ErrLast = val; 1140 unit->PID_mlt->ErrLast = fval;
1141 xmlFree(key); 1141 xmlFree(key);
1142 } 1142 }
1143 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_ISTATE"))) { 1143 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_ISTATE"))) {
1144 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1144 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1145 if (sscanf((const char *)key, "%f", &val) == 1) 1145 if (sscanf((const char *)key, "%f", &fval) == 1)
1146 unit->PID_mlt->iState = val; 1146 unit->PID_mlt->iState = fval;
1147 xmlFree(key); 1147 xmlFree(key);
1148 } 1148 }
1149 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_SETP"))) { 1149 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_SETP"))) {
1150 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1150 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1151 if (sscanf((const char *)key, "%f", &val) == 1) 1151 if (sscanf((const char *)key, "%f", &fval) == 1)
1152 unit->PID_mlt->SetP = val; 1152 unit->PID_mlt->SetP = fval;
1153 xmlFree(key); 1153 xmlFree(key);
1154 } 1154 }
1155 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_OUTP"))) { 1155 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_OUTP"))) {
1156 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1156 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1157 if (sscanf((const char *)key, "%f", &val) == 1) 1157 if (sscanf((const char *)key, "%f", &fval) == 1)
1158 unit->PID_mlt->OutP = val; 1158 unit->PID_mlt->OutP = fval;
1159 xmlFree(key); 1159 xmlFree(key);
1160 } 1160 }
1161 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_MODE"))) { 1161 if ((!xmlStrcmp(cur->name, (const xmlChar *)"PID_MLT_MODE"))) {
1162 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 1162 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
1163 for (i = 0; i < 3; i++) { 1163 for (i = 0; i < 3; i++) {

mercurial