Update conf parametri
This commit is contained in:
@@ -133,7 +133,7 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Processa una chiamata POST per l'invio di un array jSon di oggetti fluxLog
|
||||
/// Processa una chiamata POST per l'invio di un array Json di oggetti fluxLog
|
||||
/// PUT: IOB/flogJson/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
@@ -169,7 +169,7 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Processa una chiamata POST per l'invio di un array jSon di oggetti LIVE REC
|
||||
/// Processa una chiamata POST per l'invio di un array Json di oggetti LIVE REC
|
||||
/// PUT: IOB/liveJson/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
@@ -285,7 +285,7 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Processa una chiamata POST per l'invio di un array jSon di oggetti plcMemConf
|
||||
/// Processa una chiamata POST per l'invio di un array Json di oggetti plcMemConf
|
||||
/// PUT: IOB/flogJson/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
@@ -327,6 +327,88 @@ namespace MP_IO.Controllers
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// restituisce elenco parametri correnti come una List Json di oggetti parameterConf
|
||||
/// PUT: IOB/getCurrParam/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public string getCurrParams(string id)
|
||||
{
|
||||
string answ = "";
|
||||
if (string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
answ = "Missing IOB";
|
||||
}
|
||||
else
|
||||
{
|
||||
// procedo a recuperare l'oggetto...
|
||||
List<parameterConf> currParams = new List<parameterConf>();
|
||||
try
|
||||
{
|
||||
// deserializzo.
|
||||
currParams = DataLayer.getIobCurrParams(id);
|
||||
// se != null --> salvo!
|
||||
if (currParams != null)
|
||||
{
|
||||
answ = JsonConvert.SerializeObject(currParams);
|
||||
}
|
||||
}
|
||||
catch(Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Errore in getCurrParams{Environment.NewLine}{exc}");
|
||||
answ = "NO";
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Processa una chiamata POST per l'invio di una List Json di oggetti parameterConf
|
||||
/// PUT: IOB/setCurrParam/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public string setCurrParams(string id)
|
||||
{
|
||||
string answ = "";
|
||||
if (string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
answ = "Missing IOB";
|
||||
}
|
||||
else
|
||||
{
|
||||
// questa classe è derivata da Controller.Response... x cui recupero lo stream in altro modo...
|
||||
string content = "";
|
||||
System.Web.HttpContext.Current.Request.InputStream.Position = 0;
|
||||
using (var reader = new StreamReader(Request.InputStream, System.Text.Encoding.UTF8, true, 4096, true))
|
||||
{
|
||||
content = reader.ReadToEnd();
|
||||
}
|
||||
//Rest
|
||||
System.Web.HttpContext.Current.Request.InputStream.Position = 0;
|
||||
// procedo a deserializzare in blocco l'oggetto...
|
||||
List< parameterConf> currParams = new List<parameterConf>();
|
||||
try
|
||||
{
|
||||
// deserializzo.
|
||||
currParams = JsonConvert.DeserializeObject<List<parameterConf>>(content);
|
||||
// se != null --> salvo!
|
||||
if (currParams != null)
|
||||
{
|
||||
DataLayer.setIobCurrParams(id, currParams);
|
||||
answ = "OK";
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Errore in setCurrParams{Environment.NewLine}{exc}");
|
||||
answ = "NO";
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
// GET: IOB/liveRec/SIMUL_03?&liveData=chiave1|valore1#chiave2|valore#|chiave3|valore3
|
||||
public string liveRec(string id, string liveData)
|
||||
@@ -489,7 +571,7 @@ namespace MP_IO.Controllers
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns>jSon contenente la riga di stato macchina</returns>
|
||||
/// <returns>Json contenente la riga di stato macchina</returns>
|
||||
public string getCurrData(string id)
|
||||
{
|
||||
// attenzione! poiché nell'URL il carattere "#" fiene filtrato ci aspettiamo il carattere "|" che poi trasformiamo ora in "#"
|
||||
@@ -515,7 +597,7 @@ namespace MP_IO.Controllers
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns>jSon contenente la riga di stato macchina</returns>
|
||||
/// <returns>Json contenente la riga di stato macchina</returns>
|
||||
public string forceSplitOdl(string id)
|
||||
{
|
||||
// attenzione! poiché nell'URL il carattere "#" fiene filtrato ci aspettiamo il carattere "|" che poi trasformiamo ora in "#"
|
||||
@@ -530,7 +612,7 @@ namespace MP_IO.Controllers
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns>jSon contenente 1..n task da eseguire</returns>
|
||||
/// <returns>Json contenente 1..n task da eseguire</returns>
|
||||
public string getTask2Exe(string id)
|
||||
{
|
||||
string answ = "";
|
||||
@@ -625,7 +707,7 @@ namespace MP_IO.Controllers
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns>jSon contenente 1..n task da eseguire</returns>
|
||||
/// <returns>Json contenente 1..n task da eseguire</returns>
|
||||
public string getOptPar(string id)
|
||||
{
|
||||
string answ = "";
|
||||
@@ -837,7 +919,7 @@ namespace MP_IO.Controllers
|
||||
string dataSer = memLayer.ML.getRSV(hM2IOB);
|
||||
if (dataSer != "" && dataSer != null)
|
||||
{
|
||||
// restituisco jSon
|
||||
// restituisco Json
|
||||
answ = dataSer;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -4,7 +4,14 @@
|
||||
<div class="col-12 text-center">
|
||||
<div class="card">
|
||||
<div class="card-header bg-secondary text-warning">
|
||||
<div class="row">
|
||||
<div class="col-8 col-md-10">
|
||||
<h4>GESTIONE PARAMETRI MACCHINA</h4>
|
||||
</div>
|
||||
<div class="col-4 col-md-2">
|
||||
<asp:LinkButton runat="server" ID="lbtReload" CssClass="btn btn-sm btn-primary" OnClick="lbtReload_Click"><i class="fa fa-refresh" aria-hidden="true"></i></asp:LinkButton>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body text-dark">
|
||||
<i>Elenco parametri di configurazione ammessi per l'impianto</i>
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using MapoSDK;
|
||||
using MapoDb;
|
||||
using MapoSDK;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
@@ -15,35 +17,54 @@ namespace MoonProTablet.WebUserControls
|
||||
{
|
||||
}
|
||||
|
||||
public static List<parameterConf> GetParameters()
|
||||
/// <summary>
|
||||
/// idx macchina selezionata
|
||||
/// </summary>
|
||||
public string idxMacchina
|
||||
{
|
||||
//!!!FIXME !!!FARE recuperare VERI DATI da memoria REDIS dell'IOB...
|
||||
|
||||
List<parameterConf> dcList = new List<parameterConf>();
|
||||
plcMemMap memoria = new plcMemMap();
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
get
|
||||
{
|
||||
|
||||
parameterConf currPar = new parameterConf()
|
||||
{
|
||||
name = $"Par_{i}",
|
||||
description = $"Parametro {i}",
|
||||
value = $"{i * 100}",
|
||||
newValue = $"{i * 100 + 5}"
|
||||
};
|
||||
dcList.Add(currPar);
|
||||
#if false
|
||||
memoria.mMapWrite.Add($"Parametro {i}", currConf);
|
||||
#endif
|
||||
return memLayer.ML.StringSessionObj("IdxMacchina");
|
||||
}
|
||||
#if false
|
||||
foreach (var item in memoria.mMapWrite)
|
||||
set
|
||||
{
|
||||
dcList.Add(item.Value);
|
||||
}
|
||||
#endif
|
||||
return dcList;// memoria.mMapWrite;
|
||||
memLayer.ML.setSessionVal("IdxMacchina", value);
|
||||
}
|
||||
}
|
||||
public List<parameterConf> GetParameters()
|
||||
{
|
||||
bool fatto = false;
|
||||
//!!!FIXME !!!FARE recuperare VERI DATI da memoria REDIS dell'IOB...
|
||||
List<parameterConf> dcList = new List<parameterConf>();
|
||||
try
|
||||
{
|
||||
dcList = DataLayer.getIobCurrParams(idxMacchina);
|
||||
fatto = true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
if (!fatto || dcList.Count == 0)
|
||||
{
|
||||
plcMemMap memoria = new plcMemMap();
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
parameterConf currPar = new parameterConf()
|
||||
{
|
||||
name = $"Par_{i}",
|
||||
description = $"Parametro {i}",
|
||||
value = $"{i * 100}",
|
||||
newValue = $"{i * 100 + DateTime.Now.Second}"
|
||||
};
|
||||
dcList.Add(currPar);
|
||||
}
|
||||
}
|
||||
return dcList;// memoria.mMapWrite;
|
||||
}
|
||||
|
||||
protected void lbtReload_Click(object sender, EventArgs e)
|
||||
{
|
||||
grView.DataBind();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,15 @@ namespace MoonProTablet.WebUserControls
|
||||
public partial class mod_sendParameters
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Controllo lbtReload.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Campo generato automaticamente.
|
||||
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton lbtReload;
|
||||
|
||||
/// <summary>
|
||||
/// Controllo grView.
|
||||
/// </summary>
|
||||
|
||||
+48
-1
@@ -1014,13 +1014,51 @@ namespace MapoDb
|
||||
// se ho un area memoria valida...
|
||||
if (currMemMap != null)
|
||||
{
|
||||
// salvo!ve
|
||||
// salvo!
|
||||
string serVal = JsonConvert.SerializeObject(currMemMap);
|
||||
memLayer.ML.setRSV(memMapHash(idxMacchina), serVal);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// GET elenco parametri correnti x IOB
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public static List<parameterConf> getIobCurrParams(string idxMacchina)
|
||||
{
|
||||
string serVal = memLayer.ML.getRSV(currParametersHash(idxMacchina));
|
||||
List <parameterConf> currParameters = new List<parameterConf>();
|
||||
if(serVal != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
currParameters = JsonConvert.DeserializeObject<List<parameterConf>>(serVal);
|
||||
}
|
||||
catch(Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Eccezione in deserializzazione getIobCurrParam{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return currParameters;
|
||||
}
|
||||
/// <summary>
|
||||
/// SET elenco parametri correnti x IOB
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="currParameters"></param>
|
||||
/// <returns></returns>
|
||||
public static bool setIobCurrParams(string idxMacchina, List<parameterConf> currParameters)
|
||||
{
|
||||
bool answ = false;
|
||||
if(currParameters!=null)
|
||||
{
|
||||
string serVal = JsonConvert.SerializeObject(currParameters);
|
||||
memLayer.ML.setRSV(currParametersHash(idxMacchina), serVal);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Rimuove Key dell'ODL corrente x una data macchina IOB
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
@@ -1151,6 +1189,15 @@ namespace MapoDb
|
||||
return mHash(string.Format("MemMap:{0}", idxMacchina));
|
||||
}
|
||||
/// <summary>
|
||||
/// Hash dati CurrentParameters x la macchina specificata
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public static string currParametersHash(string idxMacchina)
|
||||
{
|
||||
return mHash(string.Format("CurrentParameters:{0}", idxMacchina));
|
||||
}
|
||||
/// <summary>
|
||||
/// Hash dati Current ODL x la macchina specificata
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
|
||||
+29
-3
@@ -114,7 +114,7 @@ namespace MapoSDK
|
||||
/// </summary>
|
||||
public int factor { get; set; } = 1;
|
||||
/// <summary>
|
||||
/// Valore parametro (come stringa, decimali con ",", default VUORO)
|
||||
/// Valore parametro (come stringa, decimali con ",", default VUOTO), poi LETTO da PLC (o appena scritto)
|
||||
/// </summary>
|
||||
public string value { get; set; } = "";
|
||||
/// <summary>
|
||||
@@ -129,10 +129,36 @@ namespace MapoSDK
|
||||
/// <summary>
|
||||
/// Classe estesa dei parametri da impostare sul PLC
|
||||
/// </summary>
|
||||
public class parameterConf: dataConf
|
||||
public class parameterConf : dataConf
|
||||
{
|
||||
public string newValue { get; set; } = "ND";
|
||||
/// <summary>
|
||||
/// Indica il NUOVO valore inviato che si richiede di impostare (da IOB/tablet), quando scritto su PLC corrisponde a value
|
||||
/// </summary>
|
||||
public string newValue { get; set; } = "";
|
||||
/// <summary>
|
||||
/// Indica se il parametro sia impostabile (da tablet / IOB)
|
||||
/// </summary>
|
||||
public bool setEnabled { get; set; } = false;
|
||||
/// <summary>
|
||||
/// Indica se il parametro sia stato salvato (value = newValue) oppure newValue NON impostato
|
||||
/// </summary>
|
||||
public bool saved
|
||||
{
|
||||
get
|
||||
{
|
||||
bool hasData = !string.IsNullOrWhiteSpace(value);
|
||||
bool areEqual = value == newValue;
|
||||
bool noWriteReq = string.IsNullOrWhiteSpace(newValue);
|
||||
return (areEqual || (hasData && noWriteReq));
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Ultimo messaggio associato (conferma scrittura, errore, ...)
|
||||
/// </summary>
|
||||
public string lastMessage { get; set; } = "";
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Struttura conf tipo dati
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user