public uint EnumDevices( ENUM_DEVICES_OPTIONS Options, out IList <IAdapterDevice> DeviceListPtr, out IAdapterIoRequest RequestPtr) { RequestPtr = null; DeviceListPtr = new List <IAdapterDevice>(); // Add all end points in all ZigBee devices to the list // if device list not locked // note that: // - an endpoint is a device for BridgeRT // - endpoints will be notified as ZigBee devices arrive if (Monitor.TryEnter(m_deviceMap)) { try { foreach (var zigBeeDeviceItem in m_deviceMap) { foreach (var endPointItem in zigBeeDeviceItem.Value.EndPointList) { DeviceListPtr.Add(endPointItem.Value); } } } finally { // use try/finally to ensure m_deviceList is unlocked in every case Monitor.Exit(m_deviceMap); } } return(ERROR_SUCCESS); }
public uint SetPropertyValue( IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; // sanity check if (Property == null) { return(ERROR_INVALID_PARAMETER); } // cast back IAdapterProperty to ZclCluster ZclCluster cluster = (ZclCluster)Property; // look for the attribute and write new data foreach (var item in cluster.InternalAttributeList) { var attribute = item.Value; if (attribute.Value.Name == Value.Name) { if (attribute.Write(Value.Data)) { return(ERROR_SUCCESS); } else { return((uint)ZclHelper.ZigBeeStatusToHResult(attribute.Status)); } } } return(ERROR_NOT_SUPPORTED); }
public uint GetProperty( IAdapterProperty Property, out IAdapterIoRequest RequestPtr) { RequestPtr = null; // sanity check if (Property == null) { return(ERROR_INVALID_PARAMETER); } // cast back IAdapterProperty to ZclCluster ZclCluster cluster = (ZclCluster)Property; // read all attributes for the attribute foreach (var item in cluster.InternalAttributeList) { var attribute = item.Value; object value; if (!attribute.Read(out value)) { // give up at 1st read error return((uint)ZclHelper.ZigBeeStatusToHResult(attribute.Status)); } } return(ERROR_SUCCESS); }
public uint SetPropertyValue(IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; // find corresponding attribute foreach (var attribute in ((AdapterProperty)Property).Attributes) { if (attribute.Value.Name == Value.Name) { string path = "devices/" + ((AdapterValue)attribute.Value).Path + "/state"; uint status = this.SetHttpValue(path, attribute.Value.Data, attribute.Value.Name); if (status == 0) { attribute.Value.Data = Value.Data; IAdapterDevice adapterDevice = null; this.devicesDict.TryGetValue(((AdapterValue)Value).Path, out adapterDevice); int SignalHashCode = ((AdapterValue)attribute.Value).SignalHashCode; IAdapterSignal covSignal = null; ((AdapterDevice)adapterDevice).SignalsDict.TryGetValue(SignalHashCode, out covSignal); this.NotifySignalListener(covSignal); } return(ERROR_SUCCESS); } } return(ERROR_INVALID_HANDLE); }
//Currently There is no action supported by brdige public uint CallMethod(IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; if (Method.Name.Equals("Delete")) { String path = Method.Path; return(SetHttpValue(path, null, "")); } else { FriendlyName = (string)Method.InputParams.First(param => param.Name.Equals("FriendlyName", StringComparison.OrdinalIgnoreCase)).Data; //NewDeviceProfile = (string)Method.InputParams.First(param => param.Name.Equals("Profile", StringComparison.OrdinalIgnoreCase)).Data; if (Method.Name.Equals("Add_RockerSwitch")) { NewDeviceProfile = "F6-02-01"; } else if (Method.Name.Equals("Add_Sensor")) { NewDeviceProfile = "F6-05-01"; } else if (Method.Name.Equals("Add_Handle")) { NewDeviceProfile = "F6-10-00"; } else if (Method.Name.Equals("Add_Other")) { NewDeviceProfile = "other"; } return((uint)SetHttpValue("system/receiveMode", null, "learnMode")); } }
public uint GetPropertyValue( IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { ValuePtr = null; RequestPtr = null; // find corresponding attribute foreach (var attribute in Property.Attributes) { if (attribute.Value.Name == AttributeName) { //Read from Modbus Device ((ModbusSensorAttribute)attribute).ReadAsync().Wait(); ValuePtr = attribute.Value; //Send signals if needed if (AttributeName == "Temperature" && previousTempValue != (double)ValuePtr.Data) { if (previousTempValue != -100.0) { tempValueChangeEventHandler(); } previousTempValue = (double)ValuePtr.Data; } return(ERROR_SUCCESS); } } return(ERROR_INVALID_HANDLE); }
public uint SetProperty( IAdapterProperty Property, out IAdapterIoRequest RequestPtr) { RequestPtr = null; // sanity check if (Property == null) { return(ERROR_INVALID_PARAMETER); } // cast back IAdapterProperty to ZclCluster ZclCluster cluster = (ZclCluster)Property; // write new value for all attributes // note that it is assumed that BridgeRT has set the new value // for each attribute foreach (var item in cluster.InternalAttributeList) { var attribute = item.Value; if (attribute.Write(attribute.Value.Data)) { // give up at 1st write error return((uint)ZclHelper.ZigBeeStatusToHResult(attribute.Status)); } } return(ERROR_SUCCESS); }
public uint SetProperty( IAdapterProperty Property, out IAdapterIoRequest RequestPtr) { RequestPtr = null; return(ERROR_SUCCESS); }
public uint CallMethod( IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; return(ERROR_SUCCESS); }
override public uint CallMethod(IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; ((BridgeAdapterMethod <KnxDevice>)Method).Device.CallMethod(Method); return(ERROR_SUCCESS); }
public uint CallMethod( IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; ((ModbusSensorMethod)Method).SetValue(); return(ERROR_SUCCESS); }
public uint CallMethod(IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; AllJoynMethod?.Invoke(this, new AllJoynMethodData(Method, devices[0])); return(ERROR_SUCCESS); }
public uint CallMethod( IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; if (Method is AdapterMethod) { ((AdapterMethod)Method).Invoke(); } return(ERROR_SUCCESS); }
public uint SetPropertyValue(IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; foreach (var attribute in ((AdapterProperty)Property).Attributes) { if (attribute.Value.Name == Value.Name) { attribute.Value.Data = Value.Data; return(ERROR_SUCCESS); } } return(ERROR_INVALID_HANDLE); }
public uint SetPropertyValue(IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; var r = ((AdapterProperty)Property).Attributes.Where(x => x.Value.Name == Value.Name).First() as BridgeRT.IAdapterAttribute; if (r == null) { return(ERROR_INVALID_HANDLE); } else { r.Value.Data = Value.Data; AllJoynSet?.Invoke(this, new AllJoynData(r.Value)); return(ERROR_SUCCESS); } }
public uint EnumDevices( ENUM_DEVICES_OPTIONS Options, out IList <IAdapterDevice> DeviceListPtr, out IAdapterIoRequest RequestPtr) { RequestPtr = null; try { DeviceListPtr = new List <IAdapterDevice>(this.devices); } catch (OutOfMemoryException ex) { throw; } return(ERROR_SUCCESS); }
public uint GetPropertyValue( IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { ValuePtr = null; RequestPtr = null; // find corresponding attribute foreach (var attribute in ((AdapterProperty)Property).Attributes) { if (attribute.Value.Name == AttributeName) { ValuePtr = attribute.Value; return(ERROR_SUCCESS); } } return(ERROR_INVALID_HANDLE); }
public uint SetPropertyValue( IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; // find corresponding attribute foreach (var attribute in Property.Attributes) { if (attribute.Value.Name == Value.Name) { //Write to Modbus Device ((ModbusSensorAttribute)attribute).WriteAsync(Value.Data).Wait(); attribute.Value.Data = Value.Data; return(ERROR_SUCCESS); } } return(ERROR_INVALID_HANDLE); }
public uint GetPropertyValue( IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { ValuePtr = null; RequestPtr = null; // sanity check if (Property == null) { return(ERROR_INVALID_PARAMETER); } // cast back IAdapterProperty to ZclCluster ZclCluster cluster = (ZclCluster)Property; // look for the attribute foreach (var item in cluster.InternalAttributeList) { var attribute = item.Value; if (attribute.Value.Name == AttributeName) { object value; if (attribute.Read(out value)) { ValuePtr = attribute.Value; return(ERROR_SUCCESS); } else { return((uint)ZclHelper.ZigBeeStatusToHResult(attribute.Status)); } } } return(ERROR_NOT_SUPPORTED); }
public uint CallMethod( IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; // sanity check if (Method == null) { return(ERROR_INVALID_PARAMETER); } // IAdapterMethod is either a ZclCommand or a ManagementLeave command, // cast back IAdapterMethod to ZclCommand first then to ManagementLeave if cast failed try { var command = (ZclCommand)Method; command.Send(); return((uint)command.HResult); } catch (InvalidCastException e) { // send the leave command and remove devices (hence all end points of the ZigBee device) // // Note that ManagementLeave is THE unique ZdoCommand exposed to AllJoyn // var command = (ManagementLeave)Method; command.Send(); if (command.ZigBeeStatus != ZdoHelper.ZDO_NOT_SUPPORTED) { // async device removal Task.Run(() => RemoveDevice(command.Device)); } return((uint)command.HResult); } }
public uint CallMethod(IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { return(_adapter.CallMethod(Method, out RequestPtr)); }
public uint EnumDevices(ENUM_DEVICES_OPTIONS Options, out IList <IAdapterDevice> DeviceListPtr, out IAdapterIoRequest RequestPtr) { RequestPtr = null; DeviceListPtr = new List <IAdapterDevice>(this.devices); return(ERROR_SUCCESS); }
public uint SetPropertyValue(IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { return(_adapter.SetPropertyValue(Property, Value, out RequestPtr)); }
public uint GetPropertyValue( IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { ValuePtr = null; RequestPtr = null; return ERROR_SUCCESS; }
virtual public uint GetPropertyValue(IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { ValuePtr = null; RequestPtr = null; return(ERROR_SUCCESS); }
public uint SetProperty( IAdapterProperty Property, out IAdapterIoRequest RequestPtr) { RequestPtr = null; return ERROR_SUCCESS; }
override public uint GetPropertyValue(IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { ValuePtr = null; RequestPtr = null; ValuePtr = ((BridgeAdapterProperty <KnxDevice>)Property).Device.GetPropertyValue(Property, AttributeName); return(ERROR_SUCCESS); }
public uint GetPropertyValue(IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { return(_adapter.GetPropertyValue(Property, AttributeName, out ValuePtr, out RequestPtr)); }
public uint EnumDevices( ENUM_DEVICES_OPTIONS Options, out IList<IAdapterDevice> DeviceListPtr, out IAdapterIoRequest RequestPtr) { RequestPtr = null; try { DeviceListPtr = new List<IAdapterDevice>(this.devices); } catch (OutOfMemoryException ex) { throw; } return ERROR_SUCCESS; }
public uint EnumDevices(ENUM_DEVICES_OPTIONS Options, out IList <IAdapterDevice> DeviceListPtr, out IAdapterIoRequest RequestPtr) { return(_adapter.EnumDevices(Options, out DeviceListPtr, out RequestPtr)); }
public uint CallMethod( IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; return ERROR_SUCCESS; }
virtual public uint SetPropertyValue(IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; return(ERROR_SUCCESS); }
public uint SetPropertyValue( IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; IAdapterValue attribute = Property.Attributes.ElementAt<IAdapterValue>(0); if (Property.Name == "Pin-5") { if (Convert.ToInt32(Value.Data) == 1) { pinValueData5 = 1; pin5.Write(GpioPinValue.High); } else { pinValueData5 = 0; pin5.Write(GpioPinValue.Low); } } else if (Property.Name == "Pin-6") { if (Convert.ToInt32(Value.Data) == 1) { pinValueData6 = 1; pin6.Write(GpioPinValue.High); } else { pinValueData6 = 0; pin6.Write(GpioPinValue.Low); } } else if (Property.Name == "Pin-12") { if (Convert.ToInt32(Value.Data) == 1) { pinValueData12 = 1; pin12.Write(GpioPinValue.High); } else { pinValueData12 = 0; pin12.Write(GpioPinValue.Low); } } else if (Property.Name == "Pin-16") { if (Convert.ToInt32(Value.Data) == 1) { pinValueData16 = 1; pin16.Write(GpioPinValue.High); } else { pinValueData16 = 0; pin16.Write(GpioPinValue.Low); } } attribute.Data = Value.Data; return ERROR_SUCCESS; }
public uint GetPropertyValue( IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { RequestPtr = null; IAdapterValue attribute = Property.Attributes.ElementAt<IAdapterValue>(0); if (Property.Name == "Pin-5") { pinValueData5 = (int)pin5.Read(); attribute.Data = pinValueData5; } else if (Property.Name == "Pin-6") { pinValueData6 = (int)pin6.Read(); attribute.Data = pinValueData6; } else if (Property.Name == "Pin-12") { pinValueData12 = (int)pin12.Read(); attribute.Data = pinValueData12; } else if (Property.Name == "Pin-16") { pinValueData16 = (int)pin16.Read(); attribute.Data = pinValueData16; } ValuePtr = attribute; return ERROR_SUCCESS; }
public uint GetProperty(IAdapterProperty Property, out IAdapterIoRequest RequestPtr) { return(_adapter.GetProperty(Property, out RequestPtr)); }
public uint GetPropertyValue( IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { ValuePtr = null; RequestPtr = null; // find corresponding attribute foreach (var attribute in ((AdapterProperty)Property).Attributes) { if (attribute.Value.Name == AttributeName) { ValuePtr = attribute.Value; return ERROR_SUCCESS; } } return ERROR_INVALID_HANDLE; }
public uint CallMethod(IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; AllJoynMethod?.Invoke(this, new AllJoynMethodData(Method, devices[0])); return ERROR_SUCCESS; }
public uint SetPropertyValue( IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; // find corresponding attribute foreach (var attribute in ((AdapterProperty)Property).Attributes) { if (attribute.Value.Name == Value.Name) { attribute.Value.Data = Value.Data; return ERROR_SUCCESS; } } return ERROR_INVALID_HANDLE; }
public uint GetPropertyValue(IAdapterProperty Property, string AttributeName, out IAdapterValue ValuePtr, out IAdapterIoRequest RequestPtr) { ValuePtr = null; RequestPtr = null; var r = ((AdapterProperty)Property).Attributes.Where(x => x.Value.Name == AttributeName).First() as BridgeRT.IAdapterAttribute; if (r == null) { return ERROR_INVALID_HANDLE; } else { ValuePtr = r.Value; return ERROR_SUCCESS; } }
public uint CallMethod( IAdapterMethod Method, out IAdapterIoRequest RequestPtr) { RequestPtr = null; if(Method is AdapterMethod) { ((AdapterMethod)Method).Invoke(); } return ERROR_SUCCESS; }
public uint SetPropertyValue(IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; var r = ((AdapterProperty)Property).Attributes.Where(x => x.Value.Name == Value.Name).First() as BridgeRT.IAdapterAttribute; if (r == null) { return ERROR_INVALID_HANDLE; } else { r.Value.Data = Value.Data; AllJoynSet?.Invoke(this, new AllJoynData(r.Value)); return ERROR_SUCCESS; } }
override public uint SetPropertyValue(IAdapterProperty Property, IAdapterValue Value, out IAdapterIoRequest RequestPtr) { RequestPtr = null; ((BridgeAdapterProperty <KnxDevice>)Property).Device.SendPropertyValue(Property, Value); return(ERROR_SUCCESS); }