예제 #1
0
        public void AcceptCallback(IAsyncResult ar)
        {
            try
            {
                // Signal the main thread to continue.
                allDone.Set();

                // Get the socket that handles the client request.
                Socket listener = (Socket)ar.AsyncState;
                Socket handler  = listener.EndAccept(ar);

                //get requestType
                byte[]      lenghtBuffer = ReadBytes(4, handler);
                RequestType requestType  = (RequestType)BitConverter.ToInt32(lenghtBuffer, 0);

                if (requestType == RequestType.GetDataRange)
                {
                    //deserialize string to request object
                    RangeRequest request = JsonConvert.DeserializeObject <RangeRequest>(ReadString(handler));

                    var listRes = Database.GetTempRange(request.start, request.end);

                    view.AppendLog($"[+] TEMPERATURE RANGE REQUEST [+]\n Start: {request.start.ToShortDateString()} {request.start.ToLongTimeString()} \n End: {request.end.ToShortDateString()} {request.start.ToLongTimeString()}\n Sent {listRes.Count} Temperaturepoints back ! \n");

                    SendString(handler, JsonConvert.SerializeObject(listRes));
                }
                else
                {
                    //deserialize string to request object
                    Request request = JsonConvert.DeserializeObject <Request>(ReadString(handler));
                }
            }
            catch (Exception ex) { }
        }
예제 #2
0
        private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            //read string with escape delimiter
            string readString = ReadStringWithDelimeter();

            try
            {
                double number = double.Parse(readString, System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);
                Database.SaveTemp(new Temperatur(number, DateTime.Now));
                view.AppendLog($"GOT NUMBER FROM SERIAL: {number}");
            }
            catch (Exception) { }
        }
예제 #3
0
        public void ClientDataReceived(object receivedData, TypeCode type, string requestType)
        {
            var value = Convert.ChangeType(receivedData, type);

            view.AppendLog("[+]Received data[+] \nValue: " + value.ToString() + "\nType: " + type.ToString() + "\nAdditional Requestinfo: " + requestType + "\n");
        }