public async Task <bool> ReadValues() { string[] valuesToRead = new string[signals.Length]; for (int i = 0; i < signals.Length; i++) { valuesToRead[i] = signals[i].Key; } DataValue[] values = (await OPC.ReadVar(node, valuesToRead)); if (values == null) { return(false); } for (int i = 0; i < values.Length; i++) { if (signals[i].Type == "bool") { signals[i].boolValue = values[i].GetValueOrDefault <bool>(); } else if (signals[i].Type == "string") { signals[i].stringValue = values[i].GetValueOrDefault <string>(); } else if (signals[i].Type == "ushort") { signals[i].numValue = values[i].GetValueOrDefault <ushort>(); } else if (signals[i].Type == "int") { signals[i].intValue = values[i].GetValueOrDefault <int>(); } } return(true); }
public async Task <bool> ToggleValue(string variableName) { DataValue value = (await OPC.ReadVar(node, new string[] { variableName })).FirstOrDefault(); bool variable = value.GetValueOrDefault <bool>(); if (variable == false) { OPC.WriteVar(node, new KeyValuePair <string, object>[] { new KeyValuePair <string, object>(variableName, true) }); } else { OPC.WriteVar(node, new KeyValuePair <string, object>[] { new KeyValuePair <string, object>(variableName, false) }); } return(true); }