Example #1
0
        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);
        }
Example #2
0
        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);
        }