Example #1
0
        void UpdateDevice(DeviceBaseInfo device)
        {
            Database  db;
            string    sqlCommand;
            DbCommand dbCommand;

            db         = DatabaseFactory.CreateDatabase();
            sqlCommand = STMT_UPDATEDevice;
            dbCommand  = db.GetSqlStringCommand(sqlCommand);
            db.AddInParameter(dbCommand, "@devName", DbType.String, device.DeviceName);
            db.AddInParameter(dbCommand, "@addressCode", DbType.String, device.AddressCode);
            db.AddInParameter(dbCommand, "@current_max", DbType.Double, device.MaxCurrent);
            db.AddInParameter(dbCommand, "@current_warning", DbType.Double, device.WarningCurrent);
            db.AddInParameter(dbCommand, "@voltage_warning_high", DbType.Double, device.WarningVoltageHigh);
            db.AddInParameter(dbCommand, "@voltage_warning_low", DbType.Double, device.WarningVoltageLow);
            db.AddInParameter(dbCommand, "@devStatus", DbType.Int16, Convert.ToInt16(device.DeviceStatus));
            db.AddInParameter(dbCommand, "@distId", DbType.Int32, device.RoomId);
            db.AddInParameter(dbCommand, "@devId", DbType.Int32, device.DeviceId);
            //@distName,@nickName,@distAddress,@distDesc,@contact_primary,@phoneNumber_primary,@contact_bak1
            //,@phoneNumber_bak1,@contact_bak2,@phoneNumber_bak2
            // Get results.
            db.ExecuteNonQuery(dbCommand);

            return;
        }
Example #2
0
        DeviceBaseInfo GetDeviceById(int deviceId)
        {
            Database       db;
            string         sqlCommand;
            DbCommand      dbCommand;
            DeviceBaseInfo instance = null;

            db         = DatabaseFactory.CreateDatabase();
            sqlCommand = STMT_GETDEVICEBYID;
            dbCommand  = db.GetSqlStringCommand(sqlCommand);
            db.AddInParameter(dbCommand, "@devId", DbType.Int32, deviceId);

            // Get results.
            using (IDataReader objReader = db.ExecuteReader(dbCommand))
            {
                instance = ReadReader(objReader);
            }
            return(instance);
        }
Example #3
0
        private static IList <DeviceBaseInfo> ReadReaders(IDataReader objReader)
        {
            IList <DeviceBaseInfo> instances = new List <DeviceBaseInfo>();
            DeviceBaseInfo         instance;
            bool isnull = true;

            while (objReader.Read())
            {
                isnull            = false;
                instance          = new DeviceBaseInfo();
                instance.DeviceId = objReader["devId"] != DBNull.Value ?
                                    Convert.ToInt32(objReader["devId"]) : instance.DeviceId = null;
                instance.DeviceName = objReader["devName"] != DBNull.Value ?
                                      Convert.ToString(objReader["devName"]) : instance.DeviceName = null;
                instance.AddressCode = objReader["addressCode"] != DBNull.Value ?
                                       Convert.ToString(objReader["addressCode"]) : instance.AddressCode = null;
                instance.MaxCurrent = objReader["current_max"] != DBNull.Value ?
                                      Convert.ToDouble(objReader["current_max"]) : instance.MaxCurrent = null;

                instance.WarningCurrent = objReader["current_warning"] != DBNull.Value ?
                                          Convert.ToDouble(objReader["current_warning"]) : instance.WarningCurrent = null;
                instance.WarningVoltageHigh = objReader["voltage_warning_high"] != DBNull.Value ?
                                              Convert.ToDouble(objReader["voltage_warning_high"]) : instance.WarningVoltageHigh = null;
                instance.WarningVoltageLow = objReader["voltage_warning_low"] != DBNull.Value ?
                                             Convert.ToDouble(objReader["voltage_warning_low"]) : instance.WarningVoltageLow = null;
                instance.DeviceStatus = objReader["devStatus"] != DBNull.Value ?
                                        (DeviceStatus)Convert.ToInt32(objReader["devStatus"]) : instance.DeviceStatus = null;
                instance.RoomId = objReader["distId"] != DBNull.Value ?
                                  Convert.ToInt32(objReader["distId"]) : instance.RoomId = null;

                instances.Add(instance);
            }
            if (isnull)
            {
                return(null);
            }
            else
            {
                return(instances);
            }
        }
Example #4
0
        int?AddDevice(DeviceBaseInfo device)
        {
            Database  db;
            string    sqlCommand;
            DbCommand dbCommand;
            int?      deviceId    = 0;
            bool      returnValue = false;

            db         = DatabaseFactory.CreateDatabase();
            sqlCommand = STMT_ADDDEVICE;
            dbCommand  = db.GetSqlStringCommand(sqlCommand);
            db.AddInParameter(dbCommand, "@devName", DbType.String, device.DeviceName);
            db.AddInParameter(dbCommand, "@addressCode", DbType.String, device.AddressCode);
            db.AddInParameter(dbCommand, "@current_max", DbType.Double, device.MaxCurrent);
            db.AddInParameter(dbCommand, "@current_warning", DbType.Double, device.WarningCurrent);
            db.AddInParameter(dbCommand, "@voltage_warning_high", DbType.Double, device.WarningVoltageHigh);
            db.AddInParameter(dbCommand, "@voltage_warning_low", DbType.Double, device.WarningVoltageLow);
            db.AddInParameter(dbCommand, "@devStatus", DbType.Int16, Convert.ToInt16(device.DeviceStatus));
            db.AddInParameter(dbCommand, "@distId", DbType.Int32, device.RoomId);
            //@distName,@nickName,@distAddress,@distDesc,@contact_primary,@phoneNumber_primary,@contact_bak1
            //,@phoneNumber_bak1,@contact_bak2,@phoneNumber_bak2
            // Get results.
            using (IDataReader objReader = db.ExecuteReader(dbCommand))
            {
                if (objReader.Read())
                {
                    returnValue = true;
                    deviceId    = objReader["DevId"] != DBNull.Value ? Convert.ToInt32(objReader["DevId"]) : deviceId = null;
                }
            }
            if (returnValue)
            {
                return(null);
            }
            else
            {
                return(deviceId);
            }
        }
Example #5
0
        /// <summary>
        /// Возвращает базовую инфу об устройстве
        /// </summary>
        /// <returns></returns>
        public async Task <DeviceBaseInfo> GetDeviceInfoFromDeviceAsAP()
        {
            return(await Task.Run(async() =>
            {
                DeviceBaseInfo device = null;
                Communicator communicator = new Communicator();

                OperationResult result = await communicator.SendToDevice(_ip, CommandNames.GetInfo);

                if (result.Success)
                {
                    string[] info = result.ResponseMessage.Split('&');

                    ushort id = ushort.Parse(info[0]);
                    FirmwareType firmwareType = (FirmwareType)int.Parse(info[1]);
                    string mac = info[2];
                    string name = info[3];

                    device = new DeviceBaseInfo(id, name, new MacAddress(mac), firmwareType);
                }

                return device;
            }));
        }
Example #6
0
        public async Task <bool> FindAndConnectDevicesAsync()
        {
            ConnectorByWiFi connector      = new ConnectorByWiFi();
            CommunicatorAP  communicatorAP = new CommunicatorAP(_aPDefaultIP);

            //получаем доступные девайсы
            IEnumerable <WiFiAvailableNetwork> wifiAvailableDevices = await connector.GetAvailableDevicesAsAPAsync();

            List <Device> newDevices = new List <Device>();

            foreach (WiFiAvailableNetwork wifiDevice in wifiAvailableDevices)
            {
                //подключаемся к девайсу
                bool connRes = await connector.ConnectToDeviceAsync(wifiDevice, new PasswordCredential { Password = ConnectionSettings.DeviceConnParams.Password });

                if (connRes)
                {
                    //получаем инфу девайса из него самого
                    DeviceBaseInfo deviceInfo = await communicatorAP.GetDeviceInfoFromDeviceAsAP();

                    if (deviceInfo != null && deviceInfo.ID == 0)
                    {
                        //отправляем параметры для подключения к роутеру
                        bool postRes = await communicatorAP.SendConnectionParamsToDeviceAsAP(ConnectionSettings.RouterConnParams);

                        if (postRes)
                        {
                            //запрашиваем ip
                            IPAddress iP = await communicatorAP.GetLocalIPFromDeviceAsAP();

                            if (iP != null)
                            {
                                ushort id = GeneratedId();

                                //отправляем id девайсу
                                bool sendRes = await communicatorAP.SendIdToDeviceAsAP(id);

                                if (sendRes)
                                {
                                    Device device = new Device()
                                    {
                                        ID           = id,
                                        IP           = iP,
                                        FirmwareType = deviceInfo.FirmwareType,
                                        Mac          = deviceInfo.Mac,
                                        Name         = deviceInfo.Name,
                                        IsConnected  = true,
                                        Description  = deviceInfo.Name
                                    };


                                    newDevices.Add(device);
                                    _devices.Add(device.ID, device);
                                }
                            }
                        }
                    }
                }

                //отключаемся
                connector.DisconnectAsync();
            }

            //сохраняем новые девайсы в базу


            return(true);
        }
 public bool deviceBaseInfoUpdate(DeviceBaseInfo device)
 {
     return(false);
 }
 public bool deviceAddToRoom(int roomid, DeviceBaseInfo device)
 {
     return(false);
 }
 public int deviceAdd(DeviceBaseInfo device)
 {
     return(0);
 }