public async Task <TransformationResponse> Transform(TransformationRequest sourceRequest) { var client = new HttpClient(); var address = "https://cynxiooa76.execute-api.ap-southeast-2.amazonaws.com"; Console.WriteLine($"Requesting cloud transform from {address}"); var request = QuokkaJson.Copy(sourceRequest); request.ControllerNames = _runtimeConfiguration.GetControllers?.ToList(); var payload = JsonConvert.SerializeObject(request); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var data = await client.PostAsync($"{address}/prod", content); Console.WriteLine($"Completed with code: {data.StatusCode}"); if (data.StatusCode != System.Net.HttpStatusCode.OK) { throw new InvalidOperationException($"Request failed: {data.StatusCode}"); } var responseString = await data.Content.ReadAsStringAsync(); Console.WriteLine($"Content length: {responseString.Length}"); var response = JsonConvert.DeserializeObject <TransformationResponse>(responseString); foreach (var record in response.Logs) { _logStream.Log(record); } return(response); }
public async Task <IActionResult> Send(/*[FromBody] SetServos request*/) // cannot deserialize into struct { using (var reader = new StreamReader(Request.Body)) { var payload = await reader.ReadToEndAsync(); var request = JsonConvert.DeserializeObject <SetServos>(payload); var quokkPayload = QuokkaJson.SerializeObject(new[] { request }); var quokkPayloadBytes = Encoding.ASCII.GetBytes(quokkPayload); var port = new SerialPort(); port.PortName = "COM3"; port.BaudRate = 115200;// 9600; port.Parity = Parity.None; port.DataBits = 8; port.StopBits = StopBits.Two; port.Handshake = Handshake.None; port.Open(); port.Write(quokkPayloadBytes, 0, quokkPayloadBytes.Length); port.Close(); return(Ok("Ok")); } }
static void Main(string[] args) { var request = new SetServos() { s0 = 90, s1 = 90, s2 = 90, s3 = 90, }; while (true) { try { Console.WriteLine($"ServoID => value"); var servoId = Console.ReadLine(); if (servoId == "") { break; } var servoValue = Console.ReadLine(); if (servoValue == "") { break; } var port = new SerialPort(); port.PortName = "COM3"; port.BaudRate = 115200;// 9600; port.Parity = Parity.None; port.DataBits = 8; port.StopBits = StopBits.Two; port.Handshake = Handshake.None; var data = new byte[] { byte.Parse(servoId), byte.Parse(servoValue), }; var prop = request.GetType().GetField($"s{data[0]}"); TypedReference tr = __makeref(request); prop.SetValueDirect(tr, data[1]); var payload = QuokkaJson.SerializeObject(new[] { request }); var bytes = Encoding.ASCII.GetBytes(payload); port.Open(); port.Write(bytes, 0, bytes.Length); Console.WriteLine("Waiting for response ..."); var buff = new byte[10]; var received = port.Read(buff, 0, 2); foreach (var resp in buff.Take(received)) { Console.WriteLine($"Got {resp}"); } port.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }