Scratch write enab TCam Ch
This commit is contained in:
@@ -2368,7 +2368,7 @@ namespace CMS_CORE_Library.S7Net
|
||||
if (!useCache)
|
||||
{
|
||||
// refresh abilitazione canale x thermoCam | Write
|
||||
refreshRiscTermoCamAbilit();
|
||||
refreshRiscTermoCamEnab();
|
||||
// refresh ultima temp canale letta da thermoCam | Write
|
||||
refreshRiscTermoCamTempAct();
|
||||
// refresh temp canale impostata x thermoCam | Write
|
||||
@@ -3087,7 +3087,7 @@ namespace CMS_CORE_Library.S7Net
|
||||
/// <summary>
|
||||
/// Refresh dati ThermoCamera dal PLC x area command/status
|
||||
/// </summary>
|
||||
private void refreshRiscTermoCamAbilit()
|
||||
private void refreshRiscTermoCamEnab()
|
||||
{
|
||||
// leggo DB664 x abilitazione ch alla termocamera
|
||||
List<byte> currMem = new List<byte>();
|
||||
@@ -3435,35 +3435,43 @@ namespace CMS_CORE_Library.S7Net
|
||||
/// <returns></returns>
|
||||
public override CmsError PLC_WWarmerChTCamEnab(Dictionary<int, bool> newData)
|
||||
{
|
||||
// FIXME TODO serve nuova area termocamera
|
||||
#if false
|
||||
// memory area
|
||||
byte[] newMem = new byte[newData.Count];
|
||||
// leggo DB664 x abilitazione ch alla termocamera
|
||||
bool[] newMem = new bool[TCAM_CH_ENAB_DATA.Size * 8];
|
||||
List<byte> currMem = new List<byte>();
|
||||
|
||||
// read actual data on memory...
|
||||
CmsError libraryError = MEM_RWByteList(R, 0, RISC_CHP_DATA.MemType, RISC_CHP_DATA.Address, RISC_CHP_DATA.SubAddress, 0, RISC_CHP_DATA.Size, ref currMem);
|
||||
CmsError libraryError = MEM_RWByteList(R, 0, TCAM_CH_ENAB_DATA.MemType, TCAM_CH_ENAB_DATA.Address, TCAM_CH_ENAB_DATA.SubAddress, 0, TCAM_CH_ENAB_DATA.Size, ref currMem);
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
|
||||
newMem = currMem.ToArray();
|
||||
|
||||
// Convert int into to true/false array
|
||||
BitArray bArray = new BitArray(currMem.ToArray());
|
||||
bArray.CopyTo(newMem, 0);
|
||||
|
||||
// update only given data...
|
||||
foreach (var item in newData)
|
||||
{
|
||||
newMem[item.Key - 1] = (byte)item.Value;
|
||||
newMem[item.Key - 1] = item.Value;
|
||||
}
|
||||
// return as list...
|
||||
currMem = newMem.ToList();
|
||||
currMem = boolsToByteArray(newMem).ToList();
|
||||
|
||||
// scrivo sul PLC array di byte...
|
||||
libraryError = MEM_RWByteList(W, 0, RISC_CHP_DATA.MemType, RISC_CHP_DATA.Address, RISC_CHP_DATA.SubAddress, 0, RISC_CHP_DATA.Size, ref currMem);
|
||||
libraryError = MEM_RWByteList(W, 0, TCAM_CH_ENAB_DATA.MemType, TCAM_CH_ENAB_DATA.Address, TCAM_CH_ENAB_DATA.SubAddress, 0, TCAM_CH_ENAB_DATA.Size, ref currMem);
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
#endif
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public static byte[] boolsToByteArray(bool[] bits)
|
||||
{
|
||||
byte[] ret = new byte[(bits.Length - 1) / 8 + 1];
|
||||
bits.CopyTo(ret, 0);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Set ThermoCamera mode
|
||||
|
||||
Reference in New Issue
Block a user