823 fermentation_log *log; |
823 fermentation_log *log; |
824 bool trigger = false; |
824 bool trigger = false; |
825 struct tm *mytime; |
825 struct tm *mytime; |
826 time_t timestamp; |
826 time_t timestamp; |
827 FILE *fp; |
827 FILE *fp; |
828 static char old_mode[17], old_stage[17]; |
|
829 |
828 |
830 strtok(topic, "/"); // ignore namespace |
829 strtok(topic, "/"); // ignore namespace |
831 strtok(NULL, "/"); // group_id |
830 strtok(NULL, "/"); // group_id |
832 strtok(NULL, "/"); // message_type |
831 strtok(NULL, "/"); // message_type |
833 edge_node = strtok(NULL, "/\0"); |
832 edge_node = strtok(NULL, "/\0"); |
931 |
930 |
932 /* |
931 /* |
933 * Build MySQL log. |
932 * Build MySQL log. |
934 * Only log every 10 minutes or if something important changed. |
933 * Only log every 10 minutes or if something important changed. |
935 */ |
934 */ |
936 if (strcmp(old_mode, log->mode) || strcmp(old_stage, log->stage) || (log->event && strlen(log->event))) |
935 if (log->event && strlen(log->event)) |
937 trigger = true; |
936 trigger = true; |
938 if (trigger) { |
937 if (trigger) { |
939 snprintf(query, 511, |
938 snprintf(query, 511, |
940 "INSERT INTO log_fermenter SET code='%s', datetime='%s', mode='%s', stage='%s', " \ |
939 "INSERT INTO log_fermenter SET code='%s', datetime='%s', mode='%s', stage='%s', " \ |
941 "temp_air='%.3f', temp_beer='%.3f', temp_chiller='%.3f', temp_room='%.3f', " \ |
940 "temp_air='%.4f', temp_beer='%.4f', temp_chiller='%.4f', temp_room='%.3f', " \ |
942 "sp_low='%.3f', sp_high='%.3f', heater_power='%d', cooler_power='%d', " \ |
941 "sp_low='%.3f', sp_high='%.3f', heater_power='%d', cooler_power='%d', " \ |
943 "event='%s', fermenter_uuid='%s'", |
942 "event='%s', fermenter_uuid='%s'", |
944 log->product_code, log->datetime, log->mode, log->stage, log->temperature_air, |
943 log->product_code, log->datetime, log->mode, log->stage, log->temperature_air, |
945 log->temperature_beer, log->temperature_chiller, log->temperature_room, |
944 log->temperature_beer, log->temperature_chiller, log->temperature_room, |
946 log->setpoint_low, log->setpoint_high, log->heater_power, log->cooler_power, |
945 log->setpoint_low, log->setpoint_high, log->heater_power, log->cooler_power, |
947 (log->event) ? log->event:"", (log->fermenter_uuid) ? log->fermenter_uuid:""); |
946 (log->event) ? log->event:"", (log->fermenter_uuid) ? log->fermenter_uuid:""); |
948 bms_mysql_query(query); |
947 bms_mysql_query(query); |
949 //syslog(LOG_NOTICE, "%s", query); |
948 } |
950 } |
|
951 snprintf(old_mode, 16, "%s", log->mode); |
|
952 snprintf(old_stage, 16, "%s", log->stage); |
|
953 free(query); |
949 free(query); |
954 |
950 |
955 /* |
951 /* |
956 * Build csv log line. Used by the web client. |
952 * Build csv log line. Used by the web client. |
957 */ |
953 */ |