示例#1
0
        private string ProcessWriteDataRequest(Request.WriteDataRequest writeData)
        {
            if (!_devices.ContainsKey(writeData.Id))
            {
                Logger.Logger.Log("WriteDataRequest on unknown device {0}", writeData.Id);
                return("");
            }

            OneWireAdapter.beginExclusive(true);
            DoWriteDeviceData(writeData);
            OneWireAdapter.endExclusive();

            return(JsonConvert.SerializeObject(new WriteAckAnswer {
                Ack = true
            }));
        }
示例#2
0
        private string ProcessReadChanelsNbRequest(Request.ReadNbChanelsRequest readData)
        {
            if (!_devices.ContainsKey(readData.Id))
            {
                Logger.Logger.Log("ReadChanelsNbRequest on unknown device {0}", readData.Id);
                return(JsonConvert.SerializeObject(new InvalidRequestAnswer {
                    InvalidRequestReason = "UnknownDevice"
                }));
            }

            OneWireAdapter.beginExclusive(true);
            var answer = DoReadDeviceChanelsNb(readData);

            OneWireAdapter.endExclusive();

            return(JsonConvert.SerializeObject(answer));
        }
示例#3
0
        private string ProcessGetDevicesRequest()
        {
            // Search for all 1-wire devices
            OneWireAdapter.beginExclusive(true);
            var devices = OneWireAdapter.getAllDeviceContainers();

            OneWireAdapter.endExclusive();

            // Rebuild internal devices list
            _devices = new Dictionary <string, Device>();
            while (devices.hasMoreElements())
            {
                var dev = ConvertDevice((OneWireContainer)devices.nextElement());
                _devices[dev.Id] = dev;
            }

            // Build answer
            var answer = new GetDevicesAnswer {
                Devices = new List <Device>(_devices.Values)
            };

            return(JsonConvert.SerializeObject(answer));
        }