예제 #1
0
 internal void UpdateFromXMLAPI(XMLAPI.StateList.Datapoint dp)
 {
     SetInternalValue(dp.Value);
     _InternalTimestamp = String.IsNullOrWhiteSpace(dp.Timestamp) ? 0 : Convert.ToInt64(dp.Timestamp);
     Timestamp          = new DateTime(1970, 1, 1, 0, 0, 0, 0);
     Timestamp          = Timestamp.AddSeconds(_InternalTimestamp);
 }
예제 #2
0
        public static string MapDatapointType(XMLAPI.StateList.Datapoint dp, Channel c)
        {
            //rename switching devices internal temperature, so that it does not conflic with heating systems temperatures naming. Channel index logic should suffice.
            if (dp.Type == "ACTUAL_TEMPERATURE" && c.ChannelIndex == 0)
            {
                return("ACTUATOR_ACTUAL_TEMPERATURE");
            }

            if (dp.Type == "ACTUAL_TEMPERATURE_STATUS" && c.ChannelIndex == 0)
            {
                return("ACTUATOR_ACTUAL_TEMPERATURE_STATUS");
            }

            //HmIP-HEATING virtual device heating conflicting names
            if (c.Device.DeviceType == "HmIP-HEATING" && dp.Type == "STATE")
            {
                if (c.ChannelIndex == 3)
                {
                    return("HANDLE_STATE");
                }
                if (c.ChannelIndex == 4)
                {
                    return("RELAY_STATE");
                }
            }

            return(dp.Type);
        }
예제 #3
0
        public Datapoint(XMLAPI.StateList.Datapoint dp, Channel c)
        {
            Channel            = c;
            Name               = c.Name + "." + dp.Type;
            ISEID              = dp.Ise_id;
            Type               = MapDatapointType(dp, c);
            ValueUnit          = dp.Valueunit;
            _InternalTimestamp = String.IsNullOrWhiteSpace(dp.Timestamp) ? 0 : Convert.ToInt64(dp.Timestamp);
            Timestamp          = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            Timestamp          = Timestamp.AddSeconds(_InternalTimestamp);

            _InternalValueType = dp.Valuetype;
            Init_ValueType();

            SetInternalValue(dp.Value);
        }