public static LightSceneEntity GetConfLightingScene(int?deviceID) { LightSceneEntity lightSceneEntity = new LightSceneEntity(); var bacnetDeviceFromDB = lutronEntities.BACnetDevices .Where(x => x.device_id == deviceID && x.object_instance == (int?)LutronObjectType.Lighting_Scene) .Select(x => x).FirstOrDefault(); IList <BacnetValue> bacnetValueList; BacnetAddress bacnetAddress; bacnetAddress = new BacnetAddress(BacnetAddressTypes.IP, bacnetDeviceFromDB.network_id); bacnetAddress.RoutedSource = new BacnetAddress(BacnetAddressTypes.IP, bacnetDeviceFromDB.routed_source, (ushort)bacnetDeviceFromDB.routed_net); if (bacNetClient == null) { bacNetClient = BackNetClientInit.NewBackNetClient(); } bacNetClient.ReadPropertyRequest(bacnetAddress, new BacnetObjectId(BacnetObjectTypes.OBJECT_MULTI_STATE_VALUE, (uint)LutronObjectType.Lighting_Scene), BacnetPropertyIds.PROP_PRESENT_VALUE, out bacnetValueList); if (bacnetValueList != null && bacnetValueList.Count > 0) { lightSceneEntity.Value = Convert.ToString(bacnetValueList.FirstOrDefault().Value); } lightSceneEntity.DeviceID = (Int32)deviceID; return(lightSceneEntity); }
public static LightStateEntity GetConfLightState(int?deviceID) { var bacnetDeviceFromDB = lutronEntities.BACnetDevices .Where(x => x.device_id == deviceID && x.object_instance == (int?)LutronObjectType.Lighting_State) .Select(x => x).FirstOrDefault(); IList <BacnetValue> loBacnetValueList; BacnetAddress loBacnetAddress; loBacnetAddress = new BacnetAddress(BacnetAddressTypes.IP, bacnetDeviceFromDB.network_id); loBacnetAddress.RoutedSource = new BacnetAddress(BacnetAddressTypes.IP, bacnetDeviceFromDB.routed_source, (ushort)bacnetDeviceFromDB.routed_net); if (bacNetClient == null) { bacNetClient = BackNetClientInit.NewBackNetClient(); } bacNetClient.ReadPropertyRequest(loBacnetAddress, new BacnetObjectId(BacnetObjectTypes.OBJECT_BINARY_VALUE, (uint)LutronObjectType.Lighting_State), BacnetPropertyIds.PROP_PRESENT_VALUE, out loBacnetValueList); if (loBacnetValueList != null && loBacnetValueList.Count > 0) { return(new LightStateEntity { DeviceID = (Int32)deviceID, LightState = Convert.ToBoolean(loBacnetValueList.FirstOrDefault().Value) }); } else { return(new LightStateEntity { DeviceID = (Int32)deviceID, LightState = null }); } }
public static LightStateEntity SetConfLightState(LightStateEntity lightStateEntity) { var bacnetDeviceFromDB = lutronEntities.BACnetDevices .Where(x => x.device_id == lightStateEntity.DeviceID && x.object_instance == (int?)LutronObjectType.Lighting_State) .Select(x => x).FirstOrDefault(); if (bacnetDeviceFromDB != null && bacnetDeviceFromDB.bacnet_device_id > 0) { BacnetAddress bacnetAddress = new BacnetAddress(BacnetAddressTypes.IP, bacnetDeviceFromDB.network_id); bacnetAddress.RoutedSource = new BacnetAddress(BacnetAddressTypes.IP, bacnetDeviceFromDB.routed_source, (ushort)bacnetDeviceFromDB.routed_net); BacnetValue newLightState = new BacnetValue(BacnetApplicationTags.BACNET_APPLICATION_TAG_ENUMERATED, lightStateEntity.LightState == true ? 1 : 0); BacnetValue[] writeNewLightState = { newLightState }; if (bacNetClient == null) { bacNetClient = BackNetClientInit.NewBackNetClient(); } bacNetClient.WritePropertyRequest(bacnetAddress, new BacnetObjectId(BacnetObjectTypes.OBJECT_BINARY_VALUE, (uint)LutronObjectType.Lighting_State), BacnetPropertyIds.PROP_PRESENT_VALUE, writeNewLightState); } Thread.Sleep(1000); return(BackNetReadAction.GetConfLightState(lightStateEntity.DeviceID)); }
public static LightLevelEntity SetConfLightLevel(LightLevelEntity lightLevelEntity) { var bacnetDeviceFromDB = lutronEntities.BACnetDevices .Where(x => x.device_id == lightLevelEntity.DeviceID && x.object_instance == (int?)LutronObjectType.Lighting_Level) .Select(x => x).FirstOrDefault(); if (bacnetDeviceFromDB != null && bacnetDeviceFromDB.bacnet_device_id > 0) { BacnetAddress bacnetAddress = new BacnetAddress(BacnetAddressTypes.IP, bacnetDeviceFromDB.network_id); bacnetAddress.RoutedSource = new BacnetAddress(BacnetAddressTypes.IP, bacnetDeviceFromDB.routed_source, (ushort)bacnetDeviceFromDB.routed_net); BacnetValue newLightLevel = new BacnetValue(BacnetApplicationTags.BACNET_APPLICATION_TAG_REAL, Convert.ToSingle(lightLevelEntity.LightLevel)); BacnetValue[] writeNewLightLevel = { newLightLevel }; if (bacNetClient == null) { bacNetClient = BackNetClientInit.NewBackNetClient(); } bacNetClient.WritePropertyRequest(bacnetAddress, new BacnetObjectId(BacnetObjectTypes.OBJECT_ANALOG_VALUE, (uint)LutronObjectType.Lighting_Level), BacnetPropertyIds.PROP_PRESENT_VALUE, writeNewLightLevel); } return(BackNetReadAction.GetConfLightLevel(lightLevelEntity.DeviceID)); }
/// <summary> /// Adds bacnet device details. /// </summary> private static void AddBackNetDeviceDetail() { if (bacNetDeviceModel != null && bacNetDeviceModel.BACnetDeviceList != null) { List <BACnetDevice> bACnetDeviceLst = new List <BACnetDevice>(); List <BACnetDeviceMapping> bACnetDeviceMappingLst = new List <BACnetDeviceMapping>(); foreach (var deviceDetail in bacNetDeviceModel.BACnetDeviceList) { IList <BacnetValue> objValueLst; if (bacNetClient == null) { bacNetClient = BackNetClientInit.NewBackNetClient(); } bacNetClient.ReadPropertyRequest(deviceDetail.BacNetAddress, new BacnetObjectId(BacnetObjectTypes.OBJECT_DEVICE, deviceDetail.DeviceId), BacnetPropertyIds.PROP_OBJECT_LIST, out objValueLst); if (objValueLst == null) { continue; } foreach (var objValue in objValueLst) { var isExistNetworkId = CheckIfExistNetworkAddress(deviceDetail.BacNetAddress.ToString(), (int)((BacnetObjectId)objValue.Value).Instance, (int)deviceDetail.DeviceId , ((BacnetObjectId)objValue.Value).Type.ToString()); if (isExistNetworkId == true) { continue; } IList <BacnetValue> objNameList; bacNetClient.ReadPropertyRequest(deviceDetail.BacNetAddress, new BacnetObjectId((BacnetObjectTypes)((BacnetObjectId)objValue.Value).Type, ((BacnetObjectId)objValue.Value).Instance), BacnetPropertyIds.PROP_OBJECT_NAME, out objNameList); if (deviceDetail.BacNetAddress.RoutedSource != null && deviceDetail.BacNetAddress.RoutedSource.net != null) { var bacNetdevice = new BACnetDevice { device_id = Convert.ToInt32(deviceDetail.DeviceId), network_id = deviceDetail.BacNetAddress.ToString(), object_type = ((BacnetObjectId)objValue.Value).type.ToString(), object_instance = Convert.ToInt32(((BacnetObjectId)objValue.Value).Instance.ToString()), object_name = objNameList != null && objNameList.Count > 0 ? objNameList[0].Value.ToString() : null, routed_source = deviceDetail.BacNetAddress.RoutedSource.ToString(), routed_net = deviceDetail.BacNetAddress.RoutedSource.net }; bACnetDeviceLst.Add(bacNetdevice); } int?suiteID = null, roomID = null; var objName = Enum.GetName(typeof(LutronFloorObjectType), LutronFloorObjectType.OBJECT_ANALOG_VALUE).ToString(); if (((BacnetObjectId)objValue.Value).type.ToString().ToUpper() == objName) { if (Convert.ToInt32(((BacnetObjectId)objValue.Value).Instance.ToString()) < 4) { suiteID = 1; } else { suiteID = 2; } roomID = Convert.ToInt32(((BacnetObjectId)objValue.Value).Instance.ToString()); } var bACnetDeviceMapping = new BACnetDeviceMapping { device_id = Convert.ToInt32(deviceDetail.DeviceId), floor_id = Convert.ToInt32(deviceDetail.DeviceId), suite_id = suiteID, room_id = roomID, object_instance = Convert.ToInt32(((BacnetObjectId)objValue.Value).Instance.ToString()) }; bACnetDeviceMappingLst.Add(bACnetDeviceMapping); } } if (bACnetDeviceLst.Count() > 0) { AddBacNetDeviceDetail(bACnetDeviceLst); } if (bACnetDeviceMappingLst.Count() > 0) { AddBacNetMappingDetail(bACnetDeviceMappingLst); } } }
public IHttpActionResult StartBackNetProtocol() { BackNetClientInit.StartBackNetService(); return(Ok()); }