コード例 #1
0
        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);
        }
コード例 #2
0
        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"));
            }
        }
コード例 #3
0
        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);
                }
            }
        }