void CheckSerial(object sender, SerialDataEventArgs e, int flag) { switch (flag) { case 1: { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "p") { PressureBox.AppendText("\n" + d + "-->"); } PressureBox.AppendText(str); PressureBox.ScrollToCaret(); lon = longitude.Text; if (lon.StartsWith("o")) { lon = lon.Substring(1); } /////////////////////////////////////////////////////////////////////// double lat_temp; double lat_deg; double lat_m; double lat_final; double lon_temp; double lon_deg; double lon_m; double lon_final; if (str == "p") { webBrowser1.Refresh(); } if (lat == string.Empty || lon == string.Empty) { lat = "a3112.631494"; if (lat.StartsWith("a")) { lat = lat.Substring(1); } lon = "o2954.511475"; if (lon.StartsWith("o")) { lon = lon.Substring(1); } } lat_temp = Convert.ToDouble(lat); lat_deg = lat_temp / 100; lat_m = lat_temp % 100; ////miniuts double lat_deg = Math.Floor(lat_deg); //int lat_d = Convert.ToInt16(lat_deg);////degrees integer // lat_deg = Convert.ToDouble(lat_d);///Degrees double lat_m = lat_m / 60; lat_final = lat_m + lat_deg; lat = Convert.ToString(lat_final); ///////////////////////////////////////////////// lon_temp = Convert.ToDouble(lon); lon_deg = lon_temp / 100; lon_m = lon_temp % 100; ////miniuts double // int lon_d = Convert.ToInt16(lon_deg);////degrees integer // lon_deg = Convert.ToDouble(lon_d);///Degrees double lon_deg = Math.Floor(lon_deg); lon_m = lon_m / 60; lon_final = lon_m + lon_deg; lon = Convert.ToString(lon_final); StringBuilder queryAddress = new StringBuilder(); queryAddress.Append("http://www.bing.com/maps/?v=2&cp="); if (lat != string.Empty) { queryAddress.Append(lat + "~"); } if (lon != string.Empty) { queryAddress.Append(lon + "&lvl=18&style=a&dir=180&sp=point." + lat + "_" + lon + "_Cansat%203"); } if (str == "p") { webBrowser1.Navigate(queryAddress.ToString()); } ////////////////////////////////////////////////////////////////////// break; } case 2: { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "t") { TempBox.AppendText("\n"); TempBox.AppendText(d + "-->"); } TempBox.AppendText(str); TempBox.ScrollToCaret(); break; } case 3: { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "e") { ELEVATION.AppendText("\n"); ELEVATION.AppendText(d + "-->"); } ELEVATION.AppendText(str); ELEVATION.ScrollToCaret(); break; } case 4: { latitude.Clear(); string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "h") { HumidityBox.AppendText("\n"); HumidityBox.AppendText(d + "-->"); } HumidityBox.AppendText(str); HumidityBox.ScrollToCaret(); break; } case 5: { longitude.Clear(); string str = Encoding.ASCII.GetString(e.Data); latitude.AppendText(str); latitude.ScrollToCaret(); break; } case 6: { string str = Encoding.ASCII.GetString(e.Data); longitude.AppendText(str); longitude.ScrollToCaret(); lat = latitude.Text; if (lat.StartsWith("a")) { lat = lat.Substring(1); } break; } case 7: { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "B") { Bitch.AppendText("\n"); Bitch.AppendText(d + "-->"); } Bitch.AppendText(str); Bitch.ScrollToCaret(); break; } case 8: { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "Y") { YAW.AppendText("\n"); YAW.AppendText(d + "-->"); } YAW.AppendText(str); YAW.ScrollToCaret(); break; } case 9: { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "R") { Roll.AppendText("\n"); Roll.AppendText(d + "-->"); } Roll.AppendText(str); Roll.ScrollToCaret(); break; } } }
void CheckSerial(object sender, SerialDataEventArgs e, int flag) { switch (flag) { case 1: /// pressure case { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "P") { PressureBox.AppendText("\n" + d + "-->"); } PressureBox.AppendText(str); PressureBox.ScrollToCaret(); pres_1.AppendText(str); pres_1.ScrollToCaret(); pres = pres_1.Text; if (pres.StartsWith("P")) { pres = pres.Substring(1); } break; } case 2:/// temprature case { longitude.Clear(); string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "T") { TempBox.AppendText("\n"); TempBox.AppendText(d + "-->"); } TempBox.AppendText(str); TempBox.ScrollToCaret(); tmp_1.AppendText(str); tmp_1.ScrollToCaret(); tmp = tmp_1.Text; if (tmp.StartsWith("T")) { tmp = tmp.Substring(1); } break; } case 5:////Chat Case { string str = Encoding.ASCII.GetString(e.Data); string d; chatLog.Font = new Font(chatLog.Font, FontStyle.Regular); d = DateTime.Now.ToString("h:mm:ss tt"); if (str == ":") { chatLog.AppendText("\n"); chatLog.AppendText(d + " Astronaut--> "); } chatLog.AppendText(str); chatLog.ScrollToCaret(); ///////Parse temprature reading and check if exceeds safe limits //////// break; } case 6:////Heart rate case { string str = Encoding.ASCII.GetString(e.Data); longitude.AppendText(str); longitude.ScrollToCaret(); lon = longitude.Text; if (lon.StartsWith("T")) { lon = lon.Substring(1); } break; } case 7: /// Pitch case { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "B") { Pitch.AppendText("\n"); Pitch.AppendText(d + "-->"); } Pitch.AppendText(str); Pitch.ScrollToCaret(); /* tmp_no = Convert.ToDouble(tmp); * if ((tmp_no >= 30 || tmp_no < 0) ) * { * if (count == false) * { * tempWarning.AppendText("\n"); * tempWarning.AppendText("Warning:: Critical Temperature "); * tempWarning.ScrollToCaret(); * //MessageBox.Show("Temprature warning", "warning!", * // MessageBoxButtons.OK, MessageBoxIcon.Error); * count = true; * } * } * * * ///////Parse pressure reading and check if exceeds safe limits * * * pres_no = Convert.ToDouble(pres); * // pres_no = Double.Parse(pres); * if ((pres_no >= 100000 || pres_no < 10000) && count_1 == false) * { * preWarning.AppendText("\n"); * preWarning.AppendText("Warning:: Critical pressure "); * preWarning.ScrollToCaret(); * // MessageBox.Show("Pressure warning", "warning!", * // MessageBoxButtons.OK, MessageBoxIcon.Error); * count_1 = true; * * }*/ ////// /////////////////////////////////////////////////////////////////////// ////// Parse heart rate readings and send it to the cardiogram drawer com port/// ////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// break; } case 8: //// Yaw case { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "Y") { YAW.AppendText("\n"); YAW.AppendText(d + "-->"); } YAW.AppendText(str); YAW.ScrollToCaret(); pres_1.Clear(); tmp_1.Clear(); break; } case 9: ///Roll case { string str = Encoding.ASCII.GetString(e.Data); string d; d = DateTime.Now.ToString("h:mm:ss tt"); if (str == "R") { Roll.AppendText("\n"); Roll.AppendText(d + "-->"); } Roll.AppendText(str); Roll.ScrollToCaret(); pres_1.Clear(); tmp_1.Clear(); serialPort1.Open(); serialPort1.Write(lon); serialPort1.Close(); break; } } }
public event writecsvdelegate writecsvEvent; //写入数据事件 public void DataAnalysis(byte[] data, int num) //从数据报中解析出有用信息 { if (data[0] == 0xAA && data[1] == 0xAA) //帧头 { if (data[2] == 0X01) { Rol = (short)(((0 ^ data[4]) << 8) ^ data[5]); //将b1赋给s的低8位 Pit = (short)(((0 ^ data[6]) << 8) ^ data[7]); //将b1赋给s的低8位 Yaw = (short)(((0 ^ data[8]) << 8) ^ data[9]); //将b1赋给s的低8位 //WaverolpityawEvent((int)(Rol / 100), (int)(Pit / 100), (int)(Yaw / 100)); } if (data[2] == 0X02) { a_x = (short)(((0 ^ data[4]) << 8) ^ data[5]); a_y = (short)(((0 ^ data[6]) << 8) ^ data[7]); a_z = (short)(((0 ^ data[8]) << 8) ^ data[9]); g_x = (short)(((0 ^ data[10]) << 8) ^ data[11]); g_y = (short)(((0 ^ data[12]) << 8) ^ data[13]); g_z = (short)(((0 ^ data[14]) << 8) ^ data[15]); m_x = (short)(((0 ^ data[16]) << 8) ^ data[17]); m_y = (short)(((0 ^ data[18]) << 8) ^ data[19]); m_z = (short)(((0 ^ data[20]) << 8) ^ data[21]); } if (data[2] == 0X03) { THR = (short)(((0 ^ data[4]) << 8) ^ data[5]); YAW = (short)(((0 ^ data[6]) << 8) ^ data[7]); ROL = (short)(((0 ^ data[8]) << 8) ^ data[9]); PIT = (short)(((0 ^ data[10]) << 8) ^ data[11]); AUX1 = (short)(((0 ^ data[12]) << 8) ^ data[13]); AUX2 = (short)(((0 ^ data[14]) << 8) ^ data[15]); AUX3 = (short)(((0 ^ data[16]) << 8) ^ data[17]); AUX4 = (short)(((0 ^ data[18]) << 8) ^ data[19]); AUX5 = (short)(((0 ^ data[20]) << 8) ^ data[21]); AUX6 = (short)(((0 ^ data[22]) << 8) ^ data[23]); } if (data[2] == 0X07) { Hei = (short)(((0 ^ data[8]) << 8) ^ data[9]); //WaveheightEvent(Hei); } statusshowEvent(Rol, Pit, Yaw); showsensorshowEvent((int)a_x, (int)a_y, (int)a_z, (int)g_x, (int)g_y, (int)g_z, (int)m_x, (int)m_y, (int)m_z); heightshowEvent(Hei); showrecvdataEvent(THR, YAW, ROL, PIT, AUX1, AUX2, AUX3, AUX4, AUX5, AUX6); //WaveAllEvent((int)(Rol / 100), (int)(Pit / 100), (int)(Yaw / 100), Hei, (ROL-1500)/3, (PIT - 1500) / 3, (YAW - 1500) / 3, (THR - 1500) / 3); WaveAllEvent1((int)(Rol / 100), (int)(Pit / 100), (int)(Yaw / 100), Hei, (ROL - 1500) / 3, (PIT - 1500) / 3, (YAW - 1500) / 3, (THR - 1500) / 3); if (writecsvflag == true) { i++; // string fileName = "C:\\Users\\Administrator\\Desktop\\1.csv"; //指定文件保存在 当前项目文件夹中的bin/debug/文件夹中 //// if (!System.IO.File.Exists("C:\\Users\\Administrator\\Desktop\\1.csv")) // StreamWriter sw = new StreamWriter(fileName, true, Encoding.Default); if (i == 1) { ////向文件中输出一行记录 csv文件为逗号分隔符格式文件 同一行中单元格之间用逗号分开 //sw.WriteLine("高度,姓名,年龄"); if (writecsvEvent != null) { writecsvEvent("Rol", "Pit", "Yaw", "Hei", "RCrol", "RCpit", "RCyaw", "RCthr", "TargetHeight"); } } //sw.WriteLine("{0},张三,20", Hei.ToString()); if (writecsvEvent != null) { writecsvEvent(Rol.ToString(), Pit.ToString(), Yaw.ToString(), Hei.ToString(), ROL.ToString(), PIT.ToString(), YAW.ToString(), THR.ToString(), (TargetHeight / 10).ToString()); } } } }