549 } |
549 } |
550 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "HLT_HEATER_TEMP", "%f", Config.simulator->hlt_heater_temp)) < 0) { |
550 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "HLT_HEATER_TEMP", "%f", Config.simulator->hlt_heater_temp)) < 0) { |
551 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
551 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
552 return 1; |
552 return 1; |
553 } |
553 } |
554 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "HLT_HEATER_TIME", "%d", Config.simulator->hlt_heater_time)) < 0) { |
554 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "HLT_HEATER_VOLUME", "%d", Config.simulator->hlt_heater_volume)) < 0) { |
555 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
555 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
556 return 1; |
556 return 1; |
557 } |
557 } |
558 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "HLT_HEATER_SIZE", "%f", Config.simulator->hlt_heater_size)) < 0) { |
558 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "HLT_HEATER_POWER", "%d", Config.simulator->hlt_heater_power)) < 0) { |
559 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
559 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
560 return 1; |
560 return 1; |
561 } |
561 } |
562 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "HLT_HEATER_STATE", "%d", Config.simulator->hlt_heater_state)) < 0) { |
562 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "HLT_HEATER_STATE", "%d", Config.simulator->hlt_heater_state)) < 0) { |
563 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
563 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
570 } |
570 } |
571 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MLT_HEATER_TEMP", "%f", Config.simulator->mlt_heater_temp)) < 0) { |
571 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MLT_HEATER_TEMP", "%f", Config.simulator->mlt_heater_temp)) < 0) { |
572 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
572 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
573 return 1; |
573 return 1; |
574 } |
574 } |
575 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MLT_HEATER_TIME", "%d", Config.simulator->mlt_heater_time)) < 0) { |
575 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MLT_HEATER_VOLUME", "%d", Config.simulator->mlt_heater_volume)) < 0) { |
576 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
576 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
577 return 1; |
577 return 1; |
578 } |
578 } |
579 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MLT_HEATER_SIZE", "%f", Config.simulator->mlt_heater_size)) < 0) { |
579 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MLT_HEATER_POWER", "%d", Config.simulator->mlt_heater_power)) < 0) { |
580 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
580 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
581 return 1; |
581 return 1; |
582 } |
582 } |
583 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MLT_HEATER_STATE", "%d", Config.simulator->mlt_heater_state)) < 0) { |
583 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MLT_HEATER_STATE", "%d", Config.simulator->mlt_heater_state)) < 0) { |
584 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
|
585 return 1; |
|
586 } |
|
587 |
|
588 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "S_HLT_TEMP", "%f", Config.simulator->s_hlt_temp)) < 0) { |
|
589 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
|
590 return 1; |
|
591 } |
|
592 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "S_MLT_TEMP", "%f", Config.simulator->s_mlt_temp)) < 0) { |
|
593 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
584 syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteElement"); |
594 return 1; |
585 return 1; |
595 } |
586 } |
596 |
587 |
597 if ((rc = xmlTextWriterEndElement(writer)) < 0) { |
588 if ((rc = xmlTextWriterEndElement(writer)) < 0) { |
1193 * First time, allocate memory and set defaults. |
1184 * First time, allocate memory and set defaults. |
1194 */ |
1185 */ |
1195 if (! Config.simulator) { |
1186 if (! Config.simulator) { |
1196 Config.simulator = (simulator_var *)malloc(sizeof(simulator_var)); |
1187 Config.simulator = (simulator_var *)malloc(sizeof(simulator_var)); |
1197 Config.simulator->room_temperature = Config.simulator->hlt_temperature = Config.simulator->hlt_heater_temp = \ |
1188 Config.simulator->room_temperature = Config.simulator->hlt_temperature = Config.simulator->hlt_heater_temp = \ |
1198 Config.simulator->mlt_temperature = Config.simulator->mlt_heater_temp = \ |
1189 Config.simulator->mlt_temperature = Config.simulator->mlt_heater_temp = 20.0; |
1199 Config.simulator->s_hlt_temp = Config.simulator->s_mlt_temp = 0.0; |
1190 Config.simulator->hlt_heater_volume = Config.simulator->mlt_heater_volume = 20; |
1200 Config.simulator->hlt_heater_size = Config.simulator->mlt_heater_size = 0.0; |
1191 Config.simulator->hlt_heater_power = Config.simulator->mlt_heater_power = 2000; |
1201 Config.simulator->hlt_heater_time = Config.simulator->mlt_heater_time = Config.simulator->hlt_heater_state = Config.simulator->mlt_heater_state = 0; |
1192 Config.simulator->hlt_heater_state = Config.simulator->mlt_heater_state = 0; |
1202 } |
1193 } |
1203 |
1194 |
1204 cur = cur->xmlChildrenNode; |
1195 cur = cur->xmlChildrenNode; |
1205 while (cur != NULL) { |
1196 while (cur != NULL) { |
1206 if ((!xmlStrcmp(cur->name, (const xmlChar *)"ROOM_TEMPERATURE"))) { |
1197 if ((!xmlStrcmp(cur->name, (const xmlChar *)"ROOM_TEMPERATURE"))) { |
1219 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1210 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1220 if (sscanf((const char *)key, "%f", &fval) == 1) |
1211 if (sscanf((const char *)key, "%f", &fval) == 1) |
1221 Config.simulator->hlt_heater_temp = fval; |
1212 Config.simulator->hlt_heater_temp = fval; |
1222 xmlFree(key); |
1213 xmlFree(key); |
1223 } |
1214 } |
1224 if ((!xmlStrcmp(cur->name, (const xmlChar *)"HLT_HEATER_TIME"))) { |
1215 if ((!xmlStrcmp(cur->name, (const xmlChar *)"HLT_HEATER_VOLUME"))) { |
1225 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1216 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1226 if (sscanf((const char *)key, "%d", &ival) == 1) |
1217 if (sscanf((const char *)key, "%d", &ival) == 1) |
1227 Config.simulator->hlt_heater_time = ival; |
1218 Config.simulator->hlt_heater_volume = ival; |
1228 xmlFree(key); |
1219 xmlFree(key); |
1229 } |
1220 } |
1230 if ((!xmlStrcmp(cur->name, (const xmlChar *)"HLT_HEATER_SIZE"))) { |
1221 if ((!xmlStrcmp(cur->name, (const xmlChar *)"HLT_HEATER_POWER"))) { |
1231 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1222 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1232 if (sscanf((const char *)key, "%f", &fval) == 1) |
1223 if (sscanf((const char *)key, "%d", &ival) == 1) |
1233 Config.simulator->hlt_heater_size = fval; |
1224 Config.simulator->hlt_heater_power = ival; |
1234 xmlFree(key); |
1225 xmlFree(key); |
1235 } |
1226 } |
1236 if ((!xmlStrcmp(cur->name, (const xmlChar *)"HLT_HEATER_STATE"))) { |
1227 if ((!xmlStrcmp(cur->name, (const xmlChar *)"HLT_HEATER_STATE"))) { |
1237 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1228 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1238 if (sscanf((const char *)key, "%d", &ival) == 1) |
1229 if (sscanf((const char *)key, "%d", &ival) == 1) |
1249 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1240 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1250 if (sscanf((const char *)key, "%f", &fval) == 1) |
1241 if (sscanf((const char *)key, "%f", &fval) == 1) |
1251 Config.simulator->mlt_heater_temp = fval; |
1242 Config.simulator->mlt_heater_temp = fval; |
1252 xmlFree(key); |
1243 xmlFree(key); |
1253 } |
1244 } |
1254 if ((!xmlStrcmp(cur->name, (const xmlChar *)"MLT_HEATER_TIME"))) { |
1245 if ((!xmlStrcmp(cur->name, (const xmlChar *)"MLT_HEATER_VOLUME"))) { |
1255 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1246 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1256 if (sscanf((const char *)key, "%d", &ival) == 1) |
1247 if (sscanf((const char *)key, "%d", &ival) == 1) |
1257 Config.simulator->mlt_heater_time = ival; |
1248 Config.simulator->mlt_heater_volume = ival; |
1258 xmlFree(key); |
1249 xmlFree(key); |
1259 } |
1250 } |
1260 if ((!xmlStrcmp(cur->name, (const xmlChar *)"MLT_HEATER_SIZE"))) { |
1251 if ((!xmlStrcmp(cur->name, (const xmlChar *)"MLT_HEATER_POWER"))) { |
1261 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1252 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1262 if (sscanf((const char *)key, "%f", &fval) == 1) |
1253 if (sscanf((const char *)key, "%d", &ival) == 1) |
1263 Config.simulator->mlt_heater_size = fval; |
1254 Config.simulator->mlt_heater_power = ival; |
1264 xmlFree(key); |
1255 xmlFree(key); |
1265 } |
1256 } |
1266 if ((!xmlStrcmp(cur->name, (const xmlChar *)"MLT_HEATER_STATE"))) { |
1257 if ((!xmlStrcmp(cur->name, (const xmlChar *)"MLT_HEATER_STATE"))) { |
1267 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1258 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
1268 if (sscanf((const char *)key, "%d", &ival) == 1) |
1259 if (sscanf((const char *)key, "%d", &ival) == 1) |
1269 Config.simulator->mlt_heater_state = ival; |
1260 Config.simulator->mlt_heater_state = ival; |
1270 xmlFree(key); |
1261 xmlFree(key); |
1271 } |
1262 } |
1272 if ((!xmlStrcmp(cur->name, (const xmlChar *)"S_HLT_TEMP"))) { |
|
1273 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
|
1274 if (sscanf((const char *)key, "%f", &fval) == 1) |
|
1275 Config.simulator->s_hlt_temp = fval; |
|
1276 xmlFree(key); |
|
1277 } |
|
1278 if ((!xmlStrcmp(cur->name, (const xmlChar *)"S_MLT_TEMP"))) { |
|
1279 key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); |
|
1280 if (sscanf((const char *)key, "%f", &fval) == 1) |
|
1281 Config.simulator->s_mlt_temp = fval; |
|
1282 xmlFree(key); |
|
1283 } |
|
1284 cur = cur->next; |
1263 cur = cur->next; |
1285 } |
1264 } |
1286 |
1265 |
1287 return 0; |
1266 return 0; |
1288 } |
1267 } |
1402 */ |
1381 */ |
1403 if (! Config.simulator) { |
1382 if (! Config.simulator) { |
1404 Config.simulator = (simulator_var *)malloc(sizeof(simulator_var)); |
1383 Config.simulator = (simulator_var *)malloc(sizeof(simulator_var)); |
1405 syslog(LOG_NOTICE, "rdconfig() init a new simulator"); |
1384 syslog(LOG_NOTICE, "rdconfig() init a new simulator"); |
1406 Config.simulator->room_temperature = Config.simulator->hlt_temperature = Config.simulator->hlt_heater_temp = \ |
1385 Config.simulator->room_temperature = Config.simulator->hlt_temperature = Config.simulator->hlt_heater_temp = \ |
1407 Config.simulator->mlt_temperature = Config.simulator->mlt_heater_temp = \ |
1386 Config.simulator->mlt_temperature = Config.simulator->mlt_heater_temp = 20.0; |
1408 Config.simulator->s_hlt_temp = Config.simulator->s_mlt_temp = 20.0; |
1387 Config.simulator->hlt_heater_volume = Config.simulator->mlt_heater_volume = 20; |
1409 Config.simulator->hlt_heater_size = Config.simulator->mlt_heater_size = 0.0; |
1388 Config.simulator->hlt_heater_power = Config.simulator->mlt_heater_power = 2000; |
1410 Config.simulator->hlt_heater_time = Config.simulator->mlt_heater_time = Config.simulator->hlt_heater_state = Config.simulator->mlt_heater_state = 0; |
1389 Config.simulator->hlt_heater_state = Config.simulator->mlt_heater_state = 0; |
1411 } |
1390 } |
1412 #endif |
1391 #endif |
1413 |
1392 |
1414 return rc; |
1393 return rc; |
1415 } |
1394 } |