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; }
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); }
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); } }
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); } }
/// <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; })); }
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); }