# HG changeset patch # User Michiel Broek # Date 1547915503 -3600 # Node ID 7f69b43e6084114dba7fddc511732f0443289d20 # Parent fd1d7225ca6e4b540d3ff4bf66874ec36f74eade Implemented beer uuid product in monitor fermenters. diff -r fd1d7225ca6e -r 7f69b43e6084 bmsd/bms.h --- a/bmsd/bms.h Sat Jan 19 13:58:24 2019 +0100 +++ b/bmsd/bms.h Sat Jan 19 17:31:43 2019 +0100 @@ -160,6 +160,7 @@ bool online; ///< Online status char *beercode; ///< Beer unique code char *beername; ///< Beer name in fermenter + char *beeruuid; ///< Beer uuid in fermenter char *air_address; ///< Air sensor address char *air_state; ///< Air sensor state float air_temperature; ///< Air temperature diff -r fd1d7225ca6e -r 7f69b43e6084 bmsd/fermenters.c --- a/bmsd/fermenters.c Sat Jan 19 13:58:24 2019 +0100 +++ b/bmsd/fermenters.c Sat Jan 19 17:31:43 2019 +0100 @@ -126,6 +126,11 @@ free(fermenter->beername); fermenter->beername = xstrcpy((char *)json_object_get_string(val)); } + if (json_object_object_get_ex(sensor, "uuid", &val)) { + if (fermenter->beeruuid) + free(fermenter->beeruuid); + fermenter->beeruuid = xstrcpy((char *)json_object_get_string(val)); + } } if (json_object_object_get_ex(jobj, "air", &sensor)) { if (json_object_object_get_ex(sensor, "address", &val)) { diff -r fd1d7225ca6e -r 7f69b43e6084 bmsd/mysql.c --- a/bmsd/mysql.c Sat Jan 19 13:58:24 2019 +0100 +++ b/bmsd/mysql.c Sat Jan 19 17:31:43 2019 +0100 @@ -3,7 +3,7 @@ * @brief MySQL/MariaDB access. * @author Michiel Broek * - * Copyright (C) 2018 + * Copyright (C) 2018-2019 * * This file is part of the bms (Brewery Management System) * @@ -147,6 +147,7 @@ fermenter->online = false; // Will be set later fermenter->beercode = xstrcpy(row[5]); fermenter->beername = xstrcpy(row[6]); + fermenter->beeruuid = xstrcpy(row[44]); if (strlen(row[7])) { fermenter->air_address = xstrcpy(row[7]); fermenter->air_state = xstrcpy(row[8]); @@ -250,6 +251,8 @@ free(tmpf->beercode); if (tmpf->beername) free(tmpf->beername); + if (tmpf->beeruuid) + free(tmpf->beeruuid); if (tmpf->air_address) free(tmpf->air_address); if (tmpf->air_state) @@ -403,7 +406,7 @@ snprintf(query, 2559, "INSERT INTO mon_fermenters SET uuid='%s', alias='%s', node='%s', online='%s', " \ - "beercode='%s', beername='%s', " \ + "beercode='%s', beername='%s', beeruuid='%s', " \ "air_address='%s', air_state='%s', air_temperature='%.3f', " \ "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \ @@ -418,6 +421,7 @@ "profile_inittemp_high='%.3f', profile_inittemp_low='%.3f', profile_steps='%s', stage='%s'", fermenter->uuid, fermenter->alias, fermenter->node, fermenter->online ? "Y":"N", fermenter->beercode ? fermenter->beercode : "", fermenter->beername ? fermenter->beername : "", + fermenter->beeruuid ? fermenter->beeruuid : "", fermenter->air_address ? fermenter->air_address : "", fermenter->air_state ? fermenter->air_state : "", fermenter->air_temperature, fermenter->beer_address ? fermenter->beer_address : "", fermenter->beer_state ? fermenter->beer_state : "", fermenter->beer_temperature, fermenter->chiller_address ? fermenter->chiller_address : "", fermenter->chiller_state ? fermenter->chiller_state : "", fermenter->chiller_temperature, @@ -450,7 +454,7 @@ char *query = malloc(2560); snprintf(query, 2559, - "UPDATE mon_fermenters SET online='%s', beercode='%s', beername='%s', " \ + "UPDATE mon_fermenters SET online='%s', beercode='%s', beername='%s', beeruuid='%s', " \ "air_address='%s', air_state='%s', air_temperature='%.3f', " \ "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \ @@ -464,6 +468,7 @@ "profile_uuid='%s', profile_name='%s', profile_state='%s', profile_percent='%d', " \ "profile_inittemp_high='%.3f', profile_inittemp_low='%.3f', profile_steps='%s', stage='%s' WHERE uuid='%s'", fermenter->online ? "Y":"N", fermenter->beercode ? fermenter->beercode : "", fermenter->beername ? fermenter->beername : "", + fermenter->beeruuid ? fermenter->beeruuid : "", fermenter->air_address ? fermenter->air_address : "", fermenter->air_state ? fermenter->air_state : "", fermenter->air_temperature, fermenter->beer_address ? fermenter->beer_address : "", fermenter->beer_state ? fermenter->beer_state : "", fermenter->beer_temperature, fermenter->chiller_address ? fermenter->chiller_address : "", fermenter->chiller_state ? fermenter->chiller_state : "", fermenter->chiller_temperature, diff -r fd1d7225ca6e -r 7f69b43e6084 www/includes/db_product.php --- a/www/includes/db_product.php Sat Jan 19 13:58:24 2019 +0100 +++ b/www/includes/db_product.php Sat Jan 19 17:31:43 2019 +0100 @@ -338,13 +338,14 @@ * SELECT, produce a list of products that can be fermented. */ if (isset($_GET['select']) && ($_GET['select'] == "ferment")) { - $query = "SELECT code,name,stage FROM products WHERE "; + $query = "SELECT code,name,uuid,stage FROM products WHERE "; $query .= "stage='Wait' OR stage='Brew' OR stage='Primary' OR stage='Secondary' OR stage='Tertiary' OR stage='Carbonation' ORDER BY code;"; $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $brews[] = array( 'code' => $row['code'], 'name' => $row['name'], + 'uuid' => $row['uuid'], 'stage' => $row['stage'] ); } diff -r fd1d7225ca6e -r 7f69b43e6084 www/js/mon_fermenter.js --- a/www/js/mon_fermenter.js Sat Jan 19 13:58:24 2019 +0100 +++ b/www/js/mon_fermenter.js Sat Jan 19 17:31:43 2019 +0100 @@ -60,6 +60,7 @@ datafields: [ { name: 'code', type: 'string' }, { name: 'name', type: 'string' }, + { name: 'uuid', type: 'string' }, { name: 'stage', type: 'string' }, ], id: 'code', @@ -71,6 +72,7 @@ // Create a dummy beer on top to store in idle fermenters. blank['code'] = "Free"; // Will override this later. blank['name'] = 'Dummy'; + blank['uuid'] = '66ecccbf-e942-4a35-af49-8b02314561a5'; blank['stage'] = "Ready"; data.push(blank); for (var i = 0; i < records.length; i++) { @@ -119,7 +121,7 @@ beforeLoadComplete: function (records) { var data = new Array(); var empty = {}; - // Create a dummy beer on top to store in idle fermenters. + // Create a dummy profile on top of the list. empty['record'] = -1; empty['uuid'] = ''; empty['name'] = 'Wis profiel'; @@ -256,11 +258,11 @@ }); } - function sendProduct(code, name) { + function sendProduct(code, name, uuid) { - console.log("sendProduct("+code+", "+name+")"); + console.log("sendProduct("+code+", "+name+", "+uuid+")"); var data = 'node='+record.node+'&alias='+record.alias+'&payload='; - data += '{"product":{"code":"'+code+'","name":"'+name+'"}}'; + data += '{"product":{"code":"'+code+'","name":"'+name+'","uuid":"'+uuid+'"}}'; $.ajax({ url: "cmd_fermenter.php", data: data, @@ -351,6 +353,7 @@ $("#info_profile").html(record.profile_name); blank['name'] = record.alias; blank['code'] = record.alias.toUpperCase(); + blank['uuid'] = record.uuid; if (record.profile_name == "") $("#info_mode").jqxDropDownList('disableItem', "PROFILE"); else @@ -503,7 +506,7 @@ skip = true; } if (newProduct) { - sendProduct(record.code, record.name); + sendProduct(record.beercode, record.beername, record.beeruuid); newProduct = false; skip = true; } @@ -540,8 +543,9 @@ if (event.args) { var index = event.args.index; var datarecord = productlist.records[index]; - record.code = datarecord.code; - record.name = datarecord.name; + record.beercode = datarecord.code; + record.beername = datarecord.name; + record.beeruuid = datarecord.uuid; newProduct = true; } });