public List<HomeOS.Hub.Common.Device> GetDevices()
        {
            List<Device> retList = new List<Device>();
            //Getting all list of COMPORTs available on the system.
            List<COMPortFinder> comportList = COMPortFinder.GetCOMPortsInfo();
            foreach (COMPortFinder comPortInfo in comportList)
            {
                //Checking if COMPORT is our desired COMPORT or not.
                if (comPortInfo.Description.Contains(MBED))
                {
                    string deviceUniqueName = String.Format("{0} - {1}", MBED, comPortInfo.Name);
                    string deviceFriendlyName = comPortInfo.Description;
                    /*
                     * The device object which is filled with necessary information like
                     * which driver should be invoked when this particular device is added to the platform.
                     */
                    Device device = new Device(deviceFriendlyName, deviceUniqueName, "", DateTime.Now, "HomeOS.Hub.Drivers.MbedDriver", false);

                    /*
                    * intialize the parameters for this device, 
                    * these paramenters will be passed to the driver when driver is invoked.
                    */
                    device.Details.DriverParams = new List<string>() { deviceUniqueName };

                    retList.Add(device);
                }
            }
            // list of devices will be returned to HomeOS platform/dashboard.
            return retList;
        }
Exemple #2
0
        private static Device GetDevice(Camera camera)
        {
            string cameraName = camera.ToString();

            var device = new Device("Webcam - " + cameraName, cameraName, cameraName, DateTime.Now, "DriverWebCam", false);
            return device;
        }
        public List<Device> GetDevices()
        {
            Device device = new Device("dummydevice", "dummydevice", "", DateTime.Now, "HomeOS.Hub.Drivers.Dummy", false);

            //intialize the parameters for this device
            device.Details.DriverParams = new List<string>() { device.UniqueName };

            return new List<Device>() { device };
        }
 /// <summary>
 /// Returns a list of Device consisting of all Bluetooth Devices in range.
 /// </summary>
 /// <returns>
 /// So far the parameters passed to the Bluetooth Driver are:
 /// 1. Device Unique Name
 /// 2. Device Address (MAC)
 /// 3. Device Class (Bluetooth Class Type)
 /// 4. Device Type (Engduino / AndroidPhone only at the moment)
 /// </returns>
 public List<Device> GetDevices() {
     List<Device> ret = new List<Device>();
     List<BluetoothDevice> devices = Bluetooth.getAllDevices();
     foreach (BluetoothDevice blueoothDevice in devices) {
         List<String> driverParams = new List<String>();
         String uniqueName = "Bluetooth | " + blueoothDevice.DeviceType + " | " + blueoothDevice.DeviceName + " | " + blueoothDevice.DeviceAddress;
         Device device = new Device(uniqueName, uniqueName, "", DateTime.Now, "HomeOS.Hub.Drivers.BluetoothDriver", false);
         driverParams.Add(device.UniqueName);
         driverParams.Add(blueoothDevice.DeviceAddress);
         driverParams.Add(blueoothDevice.DeviceClass);
         driverParams.Add(blueoothDevice.DeviceType);
         //intialize the parameters for this device
         device.Details.DriverParams = driverParams;
         ret.Add(device);
     }
     return ret;
 }
Exemple #5
0
        public List<Device> GetDevices()
        {
            List<Device> retList = new List<Device>();

            foreach (Camera camera in CameraService.AvailableCameras)
            {
                string deviceName = camera.ToString();

                Device device = new Device(deviceName, deviceName, "", DateTime.Now, "HomeOS.Hub.Drivers.WebCam", false);

                //intialize the parameters for this device
                device.Details.DriverParams = new List<string>() { device.UniqueName};

                retList.Add(device);
            }

            return retList;
        }
        public void Init(string baseUrl, string baseDir, ScoutViewOfPlatform platform, VLogger logger)
        {
            this.baseUrl = baseUrl;
            this.platform = platform;
            this.logger = logger;

            scoutService = new OwmScoutService(baseUrl + "/webapp", this, platform, logger);

            appServer = new WebFileServer(baseDir, baseUrl, logger);

            //initialize the device we'll use
            device = new Device("OpenWeatherMap", UniqueDeviceId(), "", DateTime.Now, "HomeOS.Hub.Drivers.OpenWeatherMap");

            // the parameters are: uniqueName, appid, lattitude, longitude
            device.Details.DriverParams = new List<string>() { device.UniqueName, DefaultAppId, "", "" };

            logger.Log("DummyScout initialized");
        }
Exemple #7
0
        public List<Device> GetDevices()
        {
            List<Device> retList = new List<Device>();

            foreach (var potentialSensor in KinectSensor.KinectSensors)
            {
                if (potentialSensor.Status == KinectStatus.Connected)
                {
                    string deviceName = potentialSensor.ToString();
                    Device device = new Device(deviceName, deviceName, "", DateTime.Now, "HomeOS.Hub.Drivers.Kinect", false);
                    //intialize the parameters for this device
                    device.Details.DriverParams = new List<string>() { device.UniqueName };

                    retList.Add(device);
                }
            }
            return retList;
        }
Exemple #8
0
        public void InsertDevice(Device device)
        {
            lock (currentDeviceList)
            {
                for (int index = 0; index < currentDeviceList.Count; index++)
                {
                    if (currentDeviceList[index].UniqueName.Equals(device.UniqueName))
                    {
                        //overwrite the old information with the new discovery
                        currentDeviceList[index] = device;

                        return;
                    }
                }

                //coming here implies that the device was not found in the current list; add it
                currentDeviceList.Add(device);
            }
        }
        public Tuple<bool, string> StartDriverForDevice(Device device, List<string> driverParams)
        {
            if (device.DriverBinaryName.Equals(""))
            {
                return new Tuple<bool, string>(false, "Driver not specified");
            }

            string driverFriendlyName = device.DriverBinaryName + " for " + device.FriendlyName;
            string driverAppName = "driver for " + device.FriendlyName;

            ModuleInfo moduleInfo = new ModuleInfo(driverFriendlyName, driverAppName, device.DriverBinaryName, null, true, driverParams.ToArray());

            // this will be set in StartModule -- why set here
            //moduleInfo.SetWorkingDir(Environment.CurrentDirectory + "\\" + moduleInfo.FriendlyName());

            moduleInfo.SetManifest(new Manifest());
            moduleInfo.Background = true;

            StartModule(moduleInfo);

            //add the module to the configuration and update details for the device
            //these changes are written to disk
            config.AddModule(moduleInfo);
            config.UpdateDeviceDetails(device.UniqueName, true, driverFriendlyName);

            return new Tuple<bool, string>(true, "Added driver module");
        }
        private static Device CreateDevice(UPnPDevice upnpDevice)
        {
 
            string ipAddress = ExtractIpAddress(upnpDevice.PresentationURL);

            var device = new Device(upnpDevice.FriendlyName, GetUniqueName(upnpDevice.FriendlyName), ipAddress, DateTime.Now, "HomeOS.Hub.Drivers.AxisCamera");

            //intialize the parameters for this device
            device.Details.DriverParams = new List<string>() { device.UniqueName, "root", "" };

            return device;
        }
        private void ReadDeviceList()
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlReader xmlReader = XmlReader.Create(DevicesFile, xmlReaderSettings);
            DateTime lastSeenDateTime;

            xmlDoc.Load(xmlReader);
            XmlElement root = xmlDoc.FirstChild as XmlElement;

            if (!root.Name.Equals("Devices"))
                throw new Exception(DevicesFile + " doesn;t start with Devices");

            foreach (XmlElement xmlDevice in root.ChildNodes)
            {
                if (!xmlDevice.Name.Equals("Device"))
                    throw new Exception("child is not a Device in " + DevicesFile);

                string friendlyName = xmlDevice.GetAttribute("FriendlyName");
                string uniqueName = xmlDevice.GetAttribute("UniqueName");
                string ipAddress = xmlDevice.GetAttribute("IPAddress");
                string lastSeenStr = xmlDevice.GetAttribute("LastSeen");
                string driverBinaryName = xmlDevice.GetAttribute("DriverBinaryName");

                //read the devicedetails now
                string configuredStr = xmlDevice.GetAttribute("Configured");
                string driverModuleFriendlyName = xmlDevice.GetAttribute("DriverModuleFriendlyName");

                //read the deviceDriverParams
                List<string> deviceDriverParams = new List<string>();

                XmlElement xmlDriverParams = (XmlElement) xmlDevice.ChildNodes.Item(0);

                if (!xmlDriverParams.Name.Equals("DriverParams"))
                    throw new Exception("child of Device is not DriverParams. it is " + xmlDriverParams.Name);

                int count = int.Parse(xmlDriverParams.GetAttribute("Count"));

                for (int index=0; index < count; index++) 
                {
                    deviceDriverParams.Add(xmlDriverParams.GetAttribute("Param"+index));
                }

                //sanity check and construct the device object

                if (!DateTime.TryParse(lastSeenStr, out lastSeenDateTime))
                {
                    // TODO: what should be the last seen time if there isn't one saved in the Devices configuration
                }

                Device device = new Device(friendlyName, uniqueName, ipAddress, lastSeenDateTime, driverBinaryName);

                bool configured = false;
                if (bool.TryParse(configuredStr, out configured))
                {
                    device.Details.Configured = configured;
                }

                device.Details.DriverFriendlyName = driverModuleFriendlyName;
                device.Details.DriverParams = deviceDriverParams;

                allDevices.Add(uniqueName, device);
            }

            xmlReader.Close();
        }
        public void SetDeviceDriverParams(Device targetDevice, List<string> paramList)
        {
            lock (allDevices)
            {
                foreach (Device device in allDevices.Values)
                {
                    if (device.UniqueName.Equals(targetDevice.UniqueName))
                    {
                        //make sure that you update device, not the targetDevice
                        device.Details.DriverParams = paramList;

                        WriteDeviceList();

                        return;
                    }
                }

                //no matching device was found :(

                throw new Exception(String.Format("Matching device not found in config.allDevice. DeviceToUpdate = {0}", targetDevice.UniqueName)); 
            }
        }
        public async Task<List<Device>> GetDevicesAsync()
        {
            var batteryServiceDeviceInfoCollection = await DeviceInformation.FindAllAsync(GattDeviceService.GetDeviceSelectorFromShortId(0x180F), new string[] { "System.Devices.ContainerId" });
            var res = new List<Device>();

            foreach (var device in batteryServiceDeviceInfoCollection)
            {
                //Output("\nDevice id : " + device.Id + "  name " + device.Name);

            //    //foreach (var prop in device.Properties)
            //    //{
            //    //    Output(" " + prop.Key + " " + (prop.Value == null ? null : prop.Value.GetType() + " " + prop.Value));
            //    //}

                var deviceContainerId = "{" + device.Properties["System.Devices.ContainerId"] + "}";

                string macaddr = "";
                try
                {
                    macaddr = device.Id.Split('_')[1].Substring(0, 12);
                }
                catch
                {
                    Output("Unable to parse mac address for device " + device.Id);
                    continue;
                }

                Device d = new Device("BLE device " + device.Name, "bleproximity-"+macaddr, "", DateTime.Now, "HomeOS.Hub.Drivers.BLEProximity", false);
                //intialize the parameters for this device
                 d.Details.DriverParams = new List<string>() { macaddr };
                res.Add(d);
            }
            Output("BLE prox scout found " + res.Count + " paired devices with battery characteristics");
            return res;
        }
        private Device CreateDeviceUsb(string serialString)
        {
            var devId = "Valve+" + serialString;
            string driverName = GetDriverName(devId);
            var device = new Device(devId, devId, serialString, DateTime.Now, driverName, false);

            //intialize the parameters for this device
            device.Details.DriverParams = new List<string>() { device.UniqueName };

            return device;
        }
Exemple #15
0
        private static Device CreateDevice(byte[] response, NetworkInterface netInterface)
        {
            var macAddress = getString(response, m_offset_MAC, m_length_MAC);
            var cameraIP = getIPAddressString(response, m_offset_Camera_IP);
            var routerIP = getIPAddressString(response, m_offset_router_IP);

            var device = new Device("Foscam - " + macAddress, GetUniqueName(macAddress), netInterface, cameraIP, DateTime.Now, "HomeOS.Hub.Drivers.Foscam");

            //intialize the parameters for this device
            device.Details.DriverParams = new List<string>() { device.UniqueName, "admin", "" };

            return device;
        }
        //this is for devices discovered over Usb
        private Device CreateDeviceUsb(string serialString)
        {
            var devId = serialString;

            string driverName = GetDriverName(devId);
            string friendlyName = GetFriendlyName(devId);
            var device = new Device(friendlyName, devId, "", DateTime.Now, driverName, false);

            //intialize the parameters for this device
            device.Details.DriverParams = new List<string>() { device.UniqueName, serialPortofArduino };

            return device;
        }
        //this is for devices discovered over Wifi
        private Device CreateDeviceWifi(byte[] response, int length, IPEndPoint sender, NetworkInterface netInterface)
        {
            var devId = Encoding.ASCII.GetString(response, 0, length);
            string driverName = GetDriverName(devId);
            string friendlyName = GetFriendlyName(devId);
            var device = new Device(friendlyName, devId, netInterface, sender.Address.ToString(), DateTime.Now, driverName, false);

            //intialize the parameters for this device
            device.Details.DriverParams = new List<string>() { device.UniqueName };

            return device;
        }
        private List<Device> ScanDevices()
        {
            List<Device> retList = new List<Device>();
            //only one of these calls can be active because of socket conflicts
            lock (this)
            {
                logger.Log("SynapseWirelessScout:ScanningDevices\n");

                using (var client = new UdpClient(8401))
                {
                    
                    client.Client.ReceiveTimeout = 1000;

                    Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");
                    client.Send(sendBytes, sendBytes.Length, "localhost", queryPortNumber);
                    try
                    {
                        // loop until you timeout
                        while (true)
                        {
                            //IPEndPoint object will allow us to read datagrams sent from any source.
                            IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);

                            // Blocks until a message returns on this socket from a remote host.
                            Byte[] receiveBytes = client.Receive(ref RemoteIpEndPoint);
                            string returnData = Encoding.ASCII.GetString(receiveBytes);

                            //create device
                            string deviceName = returnData;
                            string driverName = GetDriverName(deviceName);
                            string deviceID = deviceName;
                            Device device = new Device(deviceName, deviceID, "", DateTime.Now, driverName, false);

                            //intialize the parameters for this device
                            device.Details.DriverParams = new List<string>() { device.UniqueName };
                            //logger.Log("Put device on deivcelist: {0} \n", device.ToString());

                            retList.Add(device);
                        }
                    }
                    catch
                    {
                        ;
                    }
                }
            }
            return retList;
        }
        public List<string> GetDeviceDriverParams(Device targetDevice)
        {
            lock (allDevices)
            {
                foreach (Device device in allDevices.Values)
                {
                    if (device.UniqueName.Equals(targetDevice.UniqueName))
                    {
                        //make sure you fetch from device, not targetDevice
                        return device.Details.DriverParams;
                   }
                }

                //no matching device was found :(

                throw new Exception(String.Format("Matching device not found in allDevice. DeviceToUpdate = {0}", targetDevice.UniqueName));
            }
        }
 //TODO: this function should be retired
 public Tuple<bool, string> StartDriverForDevice(Device device, string username, string password)
 {
     return StartDriverForDevice(device, new List<string>() { device.UniqueName, username, password });
 }
 public List<string> GetDeviceDriverParams(Device targetDevice)
 {
     return config.GetDeviceDriverParams(targetDevice);
 }
 public void SetDeviceDriverParams(Device targetDevice, List<string> paramList)
 {
     config.SetDeviceDriverParams(targetDevice, paramList);
 }