Exemplo n.º 1
0
        private static void UpdateChannel(FreeSCADA.CLServer.ChannelState state, RemoutingChannel channel)
        {
            object channelValue = null;
            Type   valueType    = Type.GetType(state.Type);

            if (valueType != null)
            {
                channelValue = Convert.ChangeType(state.Value, valueType);
            }
            else
            {
                channelValue = Convert.ChangeType(state.Value, channel.Type);
            }

            ChannelStatusFlags flags = ChannelStatusFlags.Unknown;

            switch (state.Status)
            {
            case FreeSCADA.CLServer.ChannelStatusFlags.Bad:
                flags = ChannelStatusFlags.Bad;
                break;

            case FreeSCADA.CLServer.ChannelStatusFlags.Good:
                flags = ChannelStatusFlags.Good;
                break;

            case FreeSCADA.CLServer.ChannelStatusFlags.NotUsed:
                flags = ChannelStatusFlags.NotUsed;
                break;
            }

            channel.DoUpdate(channelValue, state.ModifyTime, flags);
        }
Exemplo n.º 2
0
 public void ValueChanged(string channelId, FreeSCADA.CLServer.ChannelState state)
 {
     if (channels.ContainsKey(channelId))
     {
         UpdateChannel(state, channels[channelId]);
     }
 }
 public void ValueChanged(string channelId, FreeSCADA.CLServer.ChannelState state)
 {
     channelIds.Add(channelId);
     states.Add(state);
 }