static void Main(string[] args) { ReadSettings(); softNodeClient = new SoftNodeClient(); softNode = new SoftNode(softNodeClient, nodeId, nodeName, nodeVersion); if (Convert.ToBoolean(ConfigurationManager.AppSettings["ShowNodeTxRxDebug"])) softNode.OnDebugTxRxMessage += message => Console.WriteLine("NODE: " + message); if (Convert.ToBoolean(ConfigurationManager.AppSettings["ShowNodeStateDebug"])) softNode.OnDebugNodeStateMessage += message => Console.WriteLine("NODE: " + message); softNode.OnIdResponseReceived += OnIdResponseReceived; softNode.ConnectToServer(serverURL); Sensor sensor = new Sensor(); sensor.sensorId = sensorId; sensor.sensorType = SensorType.S_RGB_LIGHT; sensor.description = sensorDescription; softNode.AddSensor(sensor); StartScreenCapture(); ShowMessage("Screen capture started"); while (true) { Console.ReadLine(); } }
public void AddSensor(Sensor sensor) { node.sensors.Add(sensor); if (IsConnected()) SendSensorPresentation(sensor); }
private void SendSensorPresentation(Sensor sensor) { if (!IsConnected()) return; Message message = new Message { nodeId = node.nodeId, sensorId = sensor.sensorId, messageType = MessageType.C_PRESENTATION, ack = false, subType = (int)sensor.type, payload = sensor.description }; if (OnDebugNodeStateMessage != null) OnDebugNodeStateMessage("Sending sensor "+sensor.sensorId+" presentation"); if (OnDebugTxRxMessage != null) OnDebugTxRxMessage(message.ToString()); client.SendMessage(message); }
private bool CheckLinkPossible(Sensor fromSensor, Sensor toSensor) { //if it's the same sensor if (fromSensor.ownerNodeId == toSensor.ownerNodeId && fromSensor.sensorId == toSensor.sensorId) return false; List<SensorLink> links = linksDb.GetAllLinks(); foreach (var link in links) { //prevent infinite loop if (link.fromNodeId == toSensor.ownerNodeId && link.fromSensorId == toSensor.sensorId && link.toNodeId == fromSensor.ownerNodeId && link.toSensorId == fromSensor.sensorId) return false; //prevend duplicates if (link.fromNodeId == fromSensor.ownerNodeId && link.fromSensorId == fromSensor.sensorId && link.toNodeId == toSensor.ownerNodeId && link.toSensorId == toSensor.sensorId) return false; } return true; }
private void WriteSensorDataToHistory(Sensor sensor) { using (var db = new SqlConnection(connectionString)) { db.Open(); CreateTableForSensor(sensor); List<SensorData> data = sensor.GetAllData(); if (data == null) return; foreach (var sensorData in data) sensorData.dateTime = DateTime.Now; var sqlQuery = String.Format( "INSERT INTO SensorHistory{0} (dataType, state, dateTime) " + "VALUES(@dataType,@state, @dateTime); " + "SELECT CAST(SCOPE_IDENTITY() as int)", sensor.db_Id); db.Execute(sqlQuery,data); } }
private void OnSensorUpdatedEvent(Sensor sensor) { if (sensor.storeHistoryEnabled && sensor.storeHistoryEveryChange) WriteSensorDataToHistory(sensor); }
private void CreateTableForSensor(Sensor sensor) { using (var db = new SqlConnection(connectionString)) { db.Open(); try { string req = String.Format( @"CREATE TABLE [dbo].[SensorHistory{0}]( [db_Id] [int] IDENTITY(1,1) NOT NULL, [dataType] [int] NULL, [state] [nvarchar](max) NULL, [dateTime] [datetime] NOT NULL ) ON [PRIMARY] ", sensor.db_Id); db.Query(req); } catch { } } }
private void OnSensorUpdatedEvent(Sensor sensor) { foreach (var link in links) { if (link.fromNodeId == sensor.ownerNodeId && link.fromSensorId == sensor.sensorId) { SensorData oldData = sensor.GetData(link.fromDataType.Value); SensorData newData = ConvertSensorData(oldData,link.toDataType); gateway.SendSensorState(link.toNodeId, link.toSensorId, newData); } } }
private void OnSensorUpdatedEvent(Sensor sensor) { if (!IsConnected()) return; hubProxy.Invoke("OnSensorUpdatedEvent", sensor); }
private void OnSensorUpdated(Sensor sensor) { if (writeInterval == 0) AddOrUpdateSensor(sensor); else { if (!updatedNodesId.Contains(sensor.ownerNodeId)) updatedNodesId.Add(sensor.ownerNodeId); } }
public void AddOrUpdateSensor(Sensor sensor) { // Sensor oldSensor = conn.Table<Sensor>().Where(x => x.nodeId == sensor.nodeId).FirstOrDefault(x => x.sensorId == sensor.sensorId); if (db.Sensors.Any(x => x.ownerNodeId == sensor.ownerNodeId && x.sensorId == sensor.sensorId)) { db.Entry(sensor).State = EntityState.Modified; } else { db.Sensors.Add(sensor); } db.SaveChanges(); }
public void UpdateSensorSettings(Sensor sensor) { throw new NotImplementedException(); }
public void UpdateSensorSettings(Sensor sensor) { using (var db = new SqlConnection(connectionString)) { db.Open(); var sqlQuery = "UPDATE Sensors SET " + "description = @description, " + "storeHistoryEnabled = @storeHistoryEnabled, " + "storeHistoryEveryChange = @storeHistoryEveryChange, " + "storeHistoryWithInterval = @storeHistoryWithInterval " + "WHERE ownerNodeId = @ownerNodeId AND sensorId = @sensorId"; db.Execute(sqlQuery, new { description = sensor.description, storeHistoryEnabled = sensor.storeHistoryEnabled, storeHistoryEveryChange = sensor.storeHistoryEveryChange, storeHistoryWithInterval = sensor.storeHistoryWithInterval, sensorId = sensor.sensorId, ownerNodeId = sensor.ownerNodeId }); } }
public void AddOrUpdateSensor(Sensor sensor) { using (var db = new SqlConnection(connectionString)) { db.Open(); Sensor oldSensor = db.Query<Sensor>("SELECT * FROM Sensors WHERE ownerNodeId = @ownerNodeId AND sensorId = @sensorId", new { ownerNodeId = sensor.ownerNodeId, sensorId = sensor.sensorId }).SingleOrDefault(); int node_db_id = db.Query<Sensor>("SELECT * FROM Nodes WHERE nodeId = @nodeId", new { nodeId = sensor.ownerNodeId }) .SingleOrDefault() .db_Id; if (oldSensor == null) { var sqlQuery = "INSERT INTO Sensors (ownerNodeId, sensorId, sensorType, sensorDataJson, description, storeHistoryEnabled, storeHistoryEveryChange, storeHistoryWithInterval ,Node_db_Id) " + "VALUES(@ownerNodeId, @sensorId, @sensorType, @sensorDataJson, @description, @storeHistoryEnabled, @storeHistoryEveryChange, @storeHistoryWithInterval, @Node_db_Id); " + "SELECT CAST(SCOPE_IDENTITY() as int)"; int dbId = db.Query<int>(sqlQuery, new { ownerNodeId = sensor.ownerNodeId, sensorId = sensor.sensorId, sensorType = sensor.sensorType, sensorDataJson = sensor.sensorDataJson, description = sensor.description, storeHistoryEnabled = sensor.storeHistoryEnabled, storeHistoryEveryChange = sensor.storeHistoryEveryChange, storeHistoryWithInterval = sensor.storeHistoryWithInterval, Node_db_Id = node_db_id }).Single(); gateway.SetSensorDbId(sensor.ownerNodeId, sensor.sensorId, dbId); } else { var sqlQuery = "UPDATE Sensors SET " + "ownerNodeId = @ownerNodeId, " + "sensorId = @sensorId, " + "sensorType = @sensorType, " + "sensorDataJson = @sensorDataJson, " + "description = @description, " + "storeHistoryEnabled = @storeHistoryEnabled, " + "storeHistoryWithInterval = @storeHistoryWithInterval, " + "storeHistoryEveryChange = @storeHistoryEveryChange, " + "Node_db_Id = @Node_db_Id " + "WHERE ownerNodeId = @ownerNodeId AND sensorId = @sensorId"; db.Execute(sqlQuery, new { ownerNodeId = sensor.ownerNodeId, sensorId = sensor.sensorId, sensorType = sensor.sensorType, sensorDataJson = sensor.sensorDataJson, description = sensor.description, storeHistoryEnabled = sensor.storeHistoryEnabled, storeHistoryWithInterval = sensor.storeHistoryWithInterval, storeHistoryEveryChange = sensor.storeHistoryEveryChange, Node_db_Id = node_db_id }); } } }
public void OnSensorUpdatedEvent(Sensor sensor) { Clients.Others.onSensorUpdatedEvent(sensor); }
public void OnNewSensorEvent(Sensor sensor) { Clients.Others.onNewSensorEvent(sensor); }