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); }
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); }