public void MarkReady(bool b) { lock (_ready_lock) { _ready = b; if (Utils.Millis > t0 && _ready) { int balance = StateLog.Instance.Nodes.NodeCount; if (balance == 0) { balance = 1; } for (int bs = 0; bs < balance; bs++) { Params.STEP++; Location loc = new Location() { HasPoint = new List <Point> { } }; for (int i = 0; i < points_nr; i++) { loc.HasPoint.Add(new Point() { ID = i.ToString() }); } ESBDataRequest dr = new ESBDataRequest() { Type = DataRequest._Type.WRITE, Priority = 2, Value = Params.STEP.ToString(), Received = Utils.Micros.ToString(), Benv = loc, ReturnTopic = "MyApplication" }; ReceiveDataRequest(dr); t0 = Utils.Millis + Params.HERTZ; MarkReady(false); } } } }
public void MarshallDataRequest(ESBDataRequest esbRequest) { Dictionary <string, List <string> > pointDetails = ExtractFromRDF(esbRequest.Benv); // List<Request> requests = new List<Request>(); string assigned_to = StateLog.Instance.Nodes.ScheduleRequest(); DataRequest action = new DataRequest() { Type = esbRequest.Type, PointDetails = pointDetails, Priority = esbRequest.Priority, Value = esbRequest.Value, ID = Utils.GenerateUUID(), Assigned = assigned_to, ReturnTopic = esbRequest.ReturnTopic, Received = Utils.Micros.ToString() // debugging }; if (assigned_to != null) { // Logger.Write(Logger.Tag.WARN, "SCHEDULING to " + action.Assigned); StateLog.Instance.AppendAction(action); Call r0 = new Call() { ID = Utils.GenerateUUID(), Data = Encoder.EncodeDataRequest(action), Type = Call._Type.DATA_REQUEST }; StateLog.Instance.AddToAllBehind(r0); // requests.Add(r0); } else { if (Params.TEST_RECEIVER_HOST != string.Empty) { try { TestReceiverClient.Instance.AddEntryError("Failed to deploy driver and to process request."); } catch (Exception e) { Logger.Write(Logger.Tag.ERROR, "ADD_ENTRY: " + e.ToString()); } } } }
public static void Run() { int bytes = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(new Point() { ID = "sensor_999" }, Formatting.None)).Length; Console.WriteLine("Point bytes: " + bytes); ESBDataRequest dr = new ESBDataRequest() { Type = DataRequest._Type.WRITE, Priority = 2, Value = Params.STEP.ToString(), // T0 = Utils.Micros.ToString(), Benv = new Location() { HasPoint = new List <Point> { new Point() { ID = "sensor_999" } } }, ReturnTopic = "MyApplication" }; Console.WriteLine(JsonConvert.SerializeObject(dr)); int bytes_dr = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(dr, Formatting.None)).Length; Console.WriteLine("DR bytes: " + bytes_dr); DataRequest action = new DataRequest() { Type = dr.Type, PointDetails = new Dictionary <string, List <string> > { { "docker-image-1", new List <string> { "sensor_999" } } }, Priority = dr.Priority, Value = dr.Value, ID = Utils.GenerateUUID(), Assigned = StateLog.Instance.Nodes.ScheduleRequest(), // T0 = dr.T0, // T1 = Utils.Micros.ToString(), ReturnTopic = dr.ReturnTopic }; Call r0 = new Call() { ID = Utils.GenerateUUID(), Data = Encoder.EncodeDataRequest(action), Type = Call._Type.DATA_REQUEST }; int bytes_r0 = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(r0, Formatting.None)).Length; Console.WriteLine("r0 bytes: " + bytes_dr); int bytes_rb = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(new ProcedureCallBatch() { Batch = new List <Call> { r0 }, Completed = new HashSet <string> { "sensor_999" }, Sender = Credentials.Self, Step = 10000000000 }, Formatting.None)).Length; Console.WriteLine("rb bytes: " + bytes_rb); }
public static byte[] EncodeESBDataRequest(ESBDataRequest node) { return(Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(node, Formatting.None))); }
public void ReceiveDataRequest(ESBDataRequest dataRequest) { HA.MarshallDataRequest(dataRequest); }