private void json_status_recv_parse(json_status status) { #if CONSOLE_DEBUG Console.WriteLine("----------json_status_recv_parse-------------"); Console.WriteLine("json func:" + status.FUNC); Console.WriteLine("json operate:" + status.OPERATE); Console.WriteLine("json status:" + status.STATUS); Console.WriteLine("json param1:" + status.PARAM1); Console.WriteLine("json param2:" + status.PARAM2); Console.WriteLine("json param3:" + status.PARAM3); Console.WriteLine("json param4:" + status.PARAM4); Console.WriteLine("json param5:" + status.PARAM5); Console.WriteLine("----------json_status_recv_parse end--------"); #endif if (status.FUNC == "HW") { if (status.OPERATE == "DHT11_UPDATE") { l_hump.Text = ""; l_hump.Text = status.PARAM1 + "% RH"; l_temp.Text = ""; l_temp.Text = status.PARAM2 + "℃"; } } }
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (serialPort1.IsOpen) { try { string recv_data_string; int recv_data_count = serialPort1.BytesToRead; while (serialPort1.BytesToRead > 0) { recv_data_string = serialPort1.ReadLine(); if (recv_data_string.Contains("{\r") || (serial_recv_status == PARSEING_JSON)) { serial_recv_status = PARSEING_JSON; if (recv_data_string.Contains("}")) { if (recv_data_string.Length > 1) { t_data_recv.AppendText(recv_data_string.Substring(1)); } recv_json_str += "}"; serial_recv_status = PRINTFING_LOG; #if CONSOLE_DEBUG Console.WriteLine(recv_json_str); #endif json_status status = JsonConvert.DeserializeObject <json_status>(recv_json_str); json_status_recv_parse(status); recv_json_str = ""; //return; } else { recv_json_str += recv_data_string; } } else { t_data_recv.AppendText(recv_data_string + '\r' + '\n'); } } } catch (Exception ex) { return; } } }