refactoring and bug fix
This commit is contained in:
248
TelemetryIO/MainForm.Designer.cs
generated
248
TelemetryIO/MainForm.Designer.cs
generated
@ -28,66 +28,29 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.PortSelector = new System.Windows.Forms.ComboBox();
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
|
||||||
this.Send_btn = new System.Windows.Forms.Button();
|
|
||||||
this.Connect_btn = new System.Windows.Forms.Button();
|
|
||||||
this.InfoLabel = new System.Windows.Forms.Label();
|
this.InfoLabel = new System.Windows.Forms.Label();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
|
||||||
this.SpeedSelector = new System.Windows.Forms.ComboBox();
|
|
||||||
this.SendContinuous_btn = new System.Windows.Forms.Button();
|
|
||||||
this.IMU_label = new System.Windows.Forms.Label();
|
|
||||||
this.TestWrite_btn = new System.Windows.Forms.Button();
|
|
||||||
this.tabControl1 = new System.Windows.Forms.TabControl();
|
this.tabControl1 = new System.Windows.Forms.TabControl();
|
||||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||||
this.tabPage2 = new System.Windows.Forms.TabPage();
|
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||||
this.ratePID_control = new TelemetryIO.RatePID();
|
|
||||||
this.monitorVars1 = new TelemetryIO.MonitorVars();
|
this.monitorVars1 = new TelemetryIO.MonitorVars();
|
||||||
this.name_label = new System.Windows.Forms.Label();
|
this.name_label = new System.Windows.Forms.Label();
|
||||||
|
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.Connect_btn = new System.Windows.Forms.Button();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.SpeedSelector = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.PortSelector = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.ratePID_control = new TelemetryIO.RatePID();
|
||||||
this.tabControl1.SuspendLayout();
|
this.tabControl1.SuspendLayout();
|
||||||
this.tabPage1.SuspendLayout();
|
this.tabPage1.SuspendLayout();
|
||||||
this.tabPage2.SuspendLayout();
|
this.tabPage2.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// PortSelector
|
|
||||||
//
|
|
||||||
this.PortSelector.FormattingEnabled = true;
|
|
||||||
this.PortSelector.Location = new System.Drawing.Point(63, 12);
|
|
||||||
this.PortSelector.Name = "PortSelector";
|
|
||||||
this.PortSelector.Size = new System.Drawing.Size(121, 21);
|
|
||||||
this.PortSelector.TabIndex = 0;
|
|
||||||
this.PortSelector.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PortSelector_RefreshItems);
|
|
||||||
//
|
|
||||||
// label1
|
|
||||||
//
|
|
||||||
this.label1.AutoSize = true;
|
|
||||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
|
||||||
this.label1.Location = new System.Drawing.Point(16, 14);
|
|
||||||
this.label1.Name = "label1";
|
|
||||||
this.label1.Size = new System.Drawing.Size(41, 17);
|
|
||||||
this.label1.TabIndex = 1;
|
|
||||||
this.label1.Text = "Порт";
|
|
||||||
//
|
|
||||||
// Send_btn
|
|
||||||
//
|
|
||||||
this.Send_btn.Location = new System.Drawing.Point(118, 57);
|
|
||||||
this.Send_btn.Name = "Send_btn";
|
|
||||||
this.Send_btn.Size = new System.Drawing.Size(66, 21);
|
|
||||||
this.Send_btn.TabIndex = 2;
|
|
||||||
this.Send_btn.Text = "Send";
|
|
||||||
this.Send_btn.UseVisualStyleBackColor = true;
|
|
||||||
this.Send_btn.Click += new System.EventHandler(this.Send_btn_Click);
|
|
||||||
//
|
|
||||||
// Connect_btn
|
|
||||||
//
|
|
||||||
this.Connect_btn.Location = new System.Drawing.Point(19, 57);
|
|
||||||
this.Connect_btn.Name = "Connect_btn";
|
|
||||||
this.Connect_btn.Size = new System.Drawing.Size(79, 21);
|
|
||||||
this.Connect_btn.TabIndex = 3;
|
|
||||||
this.Connect_btn.Text = "Подключить";
|
|
||||||
this.Connect_btn.UseVisualStyleBackColor = true;
|
|
||||||
this.Connect_btn.Click += new System.EventHandler(this.Connect_btn_Click);
|
|
||||||
//
|
|
||||||
// InfoLabel
|
// InfoLabel
|
||||||
//
|
//
|
||||||
this.InfoLabel.Location = new System.Drawing.Point(12, 793);
|
this.InfoLabel.Location = new System.Drawing.Point(12, 793);
|
||||||
@ -96,52 +59,6 @@
|
|||||||
this.InfoLabel.TabIndex = 4;
|
this.InfoLabel.TabIndex = 4;
|
||||||
this.InfoLabel.Text = "Ok";
|
this.InfoLabel.Text = "Ok";
|
||||||
//
|
//
|
||||||
// label2
|
|
||||||
//
|
|
||||||
this.label2.AutoSize = true;
|
|
||||||
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
|
||||||
this.label2.Location = new System.Drawing.Point(208, 14);
|
|
||||||
this.label2.Name = "label2";
|
|
||||||
this.label2.Size = new System.Drawing.Size(69, 17);
|
|
||||||
this.label2.TabIndex = 6;
|
|
||||||
this.label2.Text = "Скорость";
|
|
||||||
//
|
|
||||||
// SpeedSelector
|
|
||||||
//
|
|
||||||
this.SpeedSelector.FormattingEnabled = true;
|
|
||||||
this.SpeedSelector.Location = new System.Drawing.Point(283, 12);
|
|
||||||
this.SpeedSelector.Name = "SpeedSelector";
|
|
||||||
this.SpeedSelector.Size = new System.Drawing.Size(121, 21);
|
|
||||||
this.SpeedSelector.TabIndex = 5;
|
|
||||||
//
|
|
||||||
// SendContinuous_btn
|
|
||||||
//
|
|
||||||
this.SendContinuous_btn.Location = new System.Drawing.Point(190, 57);
|
|
||||||
this.SendContinuous_btn.Name = "SendContinuous_btn";
|
|
||||||
this.SendContinuous_btn.Size = new System.Drawing.Size(109, 21);
|
|
||||||
this.SendContinuous_btn.TabIndex = 7;
|
|
||||||
this.SendContinuous_btn.Text = "Send_Continuous";
|
|
||||||
this.SendContinuous_btn.UseVisualStyleBackColor = true;
|
|
||||||
this.SendContinuous_btn.Click += new System.EventHandler(this.SendContinuous_btn_Click);
|
|
||||||
//
|
|
||||||
// IMU_label
|
|
||||||
//
|
|
||||||
this.IMU_label.Location = new System.Drawing.Point(496, 16);
|
|
||||||
this.IMU_label.Name = "IMU_label";
|
|
||||||
this.IMU_label.Size = new System.Drawing.Size(208, 19);
|
|
||||||
this.IMU_label.TabIndex = 8;
|
|
||||||
this.IMU_label.Text = "label3";
|
|
||||||
//
|
|
||||||
// TestWrite_btn
|
|
||||||
//
|
|
||||||
this.TestWrite_btn.Location = new System.Drawing.Point(318, 56);
|
|
||||||
this.TestWrite_btn.Name = "TestWrite_btn";
|
|
||||||
this.TestWrite_btn.Size = new System.Drawing.Size(75, 23);
|
|
||||||
this.TestWrite_btn.TabIndex = 9;
|
|
||||||
this.TestWrite_btn.Text = "TestWrite";
|
|
||||||
this.TestWrite_btn.UseVisualStyleBackColor = true;
|
|
||||||
this.TestWrite_btn.Click += new System.EventHandler(this.TestWrite_btn_Click);
|
|
||||||
//
|
|
||||||
// tabControl1
|
// tabControl1
|
||||||
//
|
//
|
||||||
this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Bottom;
|
this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Bottom;
|
||||||
@ -177,16 +94,6 @@
|
|||||||
this.tabPage2.Text = "Monitor";
|
this.tabPage2.Text = "Monitor";
|
||||||
this.tabPage2.UseVisualStyleBackColor = true;
|
this.tabPage2.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// ratePID_control
|
|
||||||
//
|
|
||||||
this.ratePID_control.BackColor = System.Drawing.Color.AntiqueWhite;
|
|
||||||
this.ratePID_control.bottom_label = null;
|
|
||||||
this.ratePID_control.Location = new System.Drawing.Point(6, 6);
|
|
||||||
this.ratePID_control.Name = "ratePID_control";
|
|
||||||
this.ratePID_control.serial = null;
|
|
||||||
this.ratePID_control.Size = new System.Drawing.Size(1240, 600);
|
|
||||||
this.ratePID_control.TabIndex = 11;
|
|
||||||
//
|
|
||||||
// monitorVars1
|
// monitorVars1
|
||||||
//
|
//
|
||||||
this.monitorVars1.Location = new System.Drawing.Point(6, 6);
|
this.monitorVars1.Location = new System.Drawing.Point(6, 6);
|
||||||
@ -198,57 +105,144 @@
|
|||||||
// name_label
|
// name_label
|
||||||
//
|
//
|
||||||
this.name_label.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
this.name_label.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
this.name_label.Location = new System.Drawing.Point(1203, 10);
|
this.name_label.Location = new System.Drawing.Point(402, 11);
|
||||||
this.name_label.Name = "name_label";
|
this.name_label.Name = "name_label";
|
||||||
this.name_label.Size = new System.Drawing.Size(148, 23);
|
this.name_label.Size = new System.Drawing.Size(148, 23);
|
||||||
this.name_label.TabIndex = 11;
|
this.name_label.TabIndex = 11;
|
||||||
this.name_label.Text = "name";
|
this.name_label.Text = "name";
|
||||||
//
|
//
|
||||||
|
// pictureBox1
|
||||||
|
//
|
||||||
|
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
|
||||||
|
this.pictureBox1.Location = new System.Drawing.Point(1287, 12);
|
||||||
|
this.pictureBox1.Name = "pictureBox1";
|
||||||
|
this.pictureBox1.Size = new System.Drawing.Size(64, 64);
|
||||||
|
this.pictureBox1.TabIndex = 12;
|
||||||
|
this.pictureBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.Connect_btn);
|
||||||
|
this.groupBox1.Controls.Add(this.label2);
|
||||||
|
this.groupBox1.Controls.Add(this.SpeedSelector);
|
||||||
|
this.groupBox1.Controls.Add(this.label1);
|
||||||
|
this.groupBox1.Controls.Add(this.PortSelector);
|
||||||
|
this.groupBox1.Location = new System.Drawing.Point(12, 4);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.Size = new System.Drawing.Size(232, 100);
|
||||||
|
this.groupBox1.TabIndex = 13;
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
this.groupBox1.Text = "Подключение";
|
||||||
|
//
|
||||||
|
// Connect_btn
|
||||||
|
//
|
||||||
|
this.Connect_btn.Location = new System.Drawing.Point(79, 71);
|
||||||
|
this.Connect_btn.Name = "Connect_btn";
|
||||||
|
this.Connect_btn.Size = new System.Drawing.Size(121, 21);
|
||||||
|
this.Connect_btn.TabIndex = 9;
|
||||||
|
this.Connect_btn.Text = "Подключить";
|
||||||
|
this.Connect_btn.UseVisualStyleBackColor = true;
|
||||||
|
this.Connect_btn.Click += new System.EventHandler(this.Connect_btn_Click);
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.label2.Location = new System.Drawing.Point(4, 46);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(69, 17);
|
||||||
|
this.label2.TabIndex = 8;
|
||||||
|
this.label2.Text = "Скорость";
|
||||||
|
//
|
||||||
|
// SpeedSelector
|
||||||
|
//
|
||||||
|
this.SpeedSelector.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.SpeedSelector.FormattingEnabled = true;
|
||||||
|
this.SpeedSelector.Location = new System.Drawing.Point(79, 44);
|
||||||
|
this.SpeedSelector.Name = "SpeedSelector";
|
||||||
|
this.SpeedSelector.Size = new System.Drawing.Size(121, 21);
|
||||||
|
this.SpeedSelector.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.label1.Location = new System.Drawing.Point(7, 19);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(41, 17);
|
||||||
|
this.label1.TabIndex = 3;
|
||||||
|
this.label1.Text = "Порт";
|
||||||
|
//
|
||||||
|
// PortSelector
|
||||||
|
//
|
||||||
|
this.PortSelector.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.PortSelector.FormattingEnabled = true;
|
||||||
|
this.PortSelector.Location = new System.Drawing.Point(79, 18);
|
||||||
|
this.PortSelector.Name = "PortSelector";
|
||||||
|
this.PortSelector.Size = new System.Drawing.Size(121, 21);
|
||||||
|
this.PortSelector.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.label3.Location = new System.Drawing.Point(266, 12);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(130, 20);
|
||||||
|
this.label3.TabIndex = 14;
|
||||||
|
this.label3.Text = "Имя устройства";
|
||||||
|
//
|
||||||
|
// ratePID_control
|
||||||
|
//
|
||||||
|
this.ratePID_control.BackColor = System.Drawing.Color.AntiqueWhite;
|
||||||
|
this.ratePID_control.bottom_label = null;
|
||||||
|
this.ratePID_control.Location = new System.Drawing.Point(6, 6);
|
||||||
|
this.ratePID_control.Name = "ratePID_control";
|
||||||
|
this.ratePID_control.serial = null;
|
||||||
|
this.ratePID_control.Size = new System.Drawing.Size(1299, 642);
|
||||||
|
this.ratePID_control.TabIndex = 11;
|
||||||
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(1363, 820);
|
this.ClientSize = new System.Drawing.Size(1363, 820);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.pictureBox1);
|
||||||
this.Controls.Add(this.name_label);
|
this.Controls.Add(this.name_label);
|
||||||
this.Controls.Add(this.tabControl1);
|
this.Controls.Add(this.tabControl1);
|
||||||
this.Controls.Add(this.TestWrite_btn);
|
|
||||||
this.Controls.Add(this.IMU_label);
|
|
||||||
this.Controls.Add(this.SendContinuous_btn);
|
|
||||||
this.Controls.Add(this.label2);
|
|
||||||
this.Controls.Add(this.SpeedSelector);
|
|
||||||
this.Controls.Add(this.InfoLabel);
|
this.Controls.Add(this.InfoLabel);
|
||||||
this.Controls.Add(this.Connect_btn);
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
this.Controls.Add(this.Send_btn);
|
|
||||||
this.Controls.Add(this.label1);
|
|
||||||
this.Controls.Add(this.PortSelector);
|
|
||||||
this.Name = "MainForm";
|
this.Name = "MainForm";
|
||||||
this.Text = "Form1";
|
this.Text = "TelemetryIO";
|
||||||
this.tabControl1.ResumeLayout(false);
|
this.tabControl1.ResumeLayout(false);
|
||||||
this.tabPage1.ResumeLayout(false);
|
this.tabPage1.ResumeLayout(false);
|
||||||
this.tabPage2.ResumeLayout(false);
|
this.tabPage2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.ComboBox PortSelector;
|
|
||||||
private System.Windows.Forms.Label label1;
|
|
||||||
private System.Windows.Forms.Button Send_btn;
|
|
||||||
private System.Windows.Forms.Button Connect_btn;
|
|
||||||
private System.Windows.Forms.Label InfoLabel;
|
private System.Windows.Forms.Label InfoLabel;
|
||||||
private System.Windows.Forms.Label label2;
|
|
||||||
private System.Windows.Forms.ComboBox SpeedSelector;
|
|
||||||
private System.Windows.Forms.Button SendContinuous_btn;
|
|
||||||
private System.Windows.Forms.Label IMU_label;
|
|
||||||
private System.Windows.Forms.Button TestWrite_btn;
|
|
||||||
private System.Windows.Forms.TabControl tabControl1;
|
private System.Windows.Forms.TabControl tabControl1;
|
||||||
private System.Windows.Forms.TabPage tabPage1;
|
private System.Windows.Forms.TabPage tabPage1;
|
||||||
private System.Windows.Forms.TabPage tabPage2;
|
private System.Windows.Forms.TabPage tabPage2;
|
||||||
private RatePID ratePID_control;
|
|
||||||
private MonitorVars monitorVars1;
|
private MonitorVars monitorVars1;
|
||||||
private System.Windows.Forms.Label name_label;
|
private System.Windows.Forms.Label name_label;
|
||||||
|
private System.Windows.Forms.PictureBox pictureBox1;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.Button Connect_btn;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.ComboBox SpeedSelector;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.ComboBox PortSelector;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private RatePID ratePID_control;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ namespace TelemetryIO
|
|||||||
private System.Timers.Timer packageReceivingTimeout = new System.Timers.Timer(5);
|
private System.Timers.Timer packageReceivingTimeout = new System.Timers.Timer(5);
|
||||||
private System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
|
private System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
|
||||||
private System.Timers.Timer packageTransferTimer = new System.Timers.Timer(50);
|
private System.Timers.Timer packageTransferTimer = new System.Timers.Timer(50);
|
||||||
|
private FormClosingEventArgs formArgs;
|
||||||
public MainForm()
|
public MainForm()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@ -33,17 +33,20 @@ namespace TelemetryIO
|
|||||||
SpeedSelector.Items.AddRange(speedItems);
|
SpeedSelector.Items.AddRange(speedItems);
|
||||||
SpeedSelector.SelectedIndex = 3;
|
SpeedSelector.SelectedIndex = 3;
|
||||||
|
|
||||||
Send_btn.Enabled = false;
|
|
||||||
|
|
||||||
packageTransferTimer.AutoReset = true;
|
packageTransferTimer.AutoReset = true;
|
||||||
timer.Interval = 100;
|
timer.Interval = 500;
|
||||||
timer.Start();
|
timer.Start();
|
||||||
timer.Tick += Timer_Tick;
|
timer.Tick += Timer_Tick;
|
||||||
|
|
||||||
ratePID_control.SubscribeOnEvent(serial);
|
ratePID_control.SubscribeOnEvent(serial);
|
||||||
monitorVars1.subscribeOnMonitoringItemsReceived(serial);
|
monitorVars1.subscribeOnMonitoringItemsReceived(serial);
|
||||||
ratePID_control.bottom_label = InfoLabel;
|
ratePID_control.bottom_label = InfoLabel;
|
||||||
serial.HandShakeOccurred += Serial_HandShakeOccurred;
|
serial.HandShakeOccurred += Serial_HandShakeOccurred;
|
||||||
|
serial.AnswerReceived += Serial_AnswerReceived;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Serial_AnswerReceived(object sender, SerialEventArgs e)
|
||||||
|
{
|
||||||
|
if(e.Answer == "EXITAPP") base.OnFormClosing(formArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Serial_HandShakeOccurred(object sender, EventArgs e)
|
private void Serial_HandShakeOccurred(object sender, EventArgs e)
|
||||||
@ -62,23 +65,12 @@ namespace TelemetryIO
|
|||||||
private void Timer_Tick(object sender, EventArgs e)
|
private void Timer_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (name_label.InvokeRequired) {
|
if (name_label.InvokeRequired) {
|
||||||
name_label.BeginInvoke(new Action(() => IMU_label.Text = Telemetry.Instance.name)); // Асинхронный вызов
|
name_label.BeginInvoke(new Action(() => name_label.Text = Telemetry.Instance.name)); // Асинхронный вызов
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
name_label.Text = Telemetry.Instance.name;
|
name_label.Text = Telemetry.Instance.name;
|
||||||
}
|
}
|
||||||
UpdateLabel(serial.view_str);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void serialSend()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Send_btn_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
serial.sendTest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Connect_btn_Click(object sender, EventArgs e)
|
private void Connect_btn_Click(object sender, EventArgs e)
|
||||||
@ -115,16 +107,13 @@ namespace TelemetryIO
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
b.Text = "Отключить";
|
b.Text = "Отключить";
|
||||||
Send_btn.Enabled = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
serial.Close();
|
serial.Close();
|
||||||
b.Text = "Подключить";
|
b.Text = "Подключить";
|
||||||
Send_btn.Enabled = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PortSelector_RefreshItems(object sender, MouseEventArgs e)
|
private void PortSelector_RefreshItems(object sender, MouseEventArgs e)
|
||||||
@ -134,50 +123,10 @@ namespace TelemetryIO
|
|||||||
PortSelector.SelectedIndex = 0;
|
PortSelector.SelectedIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void SendContinuous_btn_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
serial.sendTestCont();
|
|
||||||
/*Button b = sender as Button;
|
|
||||||
if (sendContinuousFlag == true)
|
|
||||||
{
|
|
||||||
sendContinuousFlag = false;
|
|
||||||
packageTransferTimer.Stop();
|
|
||||||
|
|
||||||
b.Text = "Stop_Sending";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sendContinuousFlag = true;
|
|
||||||
send_queue.Add(prepareTelegram());
|
|
||||||
packageTransferTimer.Start();
|
|
||||||
b.Text = "Send_Continuous";
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnFormClosing(FormClosingEventArgs e)
|
protected override void OnFormClosing(FormClosingEventArgs e)
|
||||||
{
|
{
|
||||||
serial.Exit();
|
formArgs = e;
|
||||||
base.OnFormClosing(e);
|
if(serial.isOpen)serial.requestExit();
|
||||||
}
|
|
||||||
|
|
||||||
public void UpdateLabel(string newText)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (IMU_label.InvokeRequired)
|
|
||||||
{
|
|
||||||
IMU_label.BeginInvoke(new Action(() => IMU_label.Text = newText)); // Асинхронный вызов
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
IMU_label.Text = newText;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void TestWrite_btn_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
float[] f = {0, 1, 2, 3, 4, 5, 6, 7, 8};
|
|
||||||
serial.sendTestWrite(f);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -117,4 +117,350 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
0ppQFP0Pxd+g80pnxg0AAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEANQEBAPkBA
|
||||||
|
QGhAQECDQEBAkEBAQI9AQECBQEBAakBAQEVAQEAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBACEBA
|
||||||
|
QGFAQEC8QEBA+kBAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQNlAQECPQEBAPEBA
|
||||||
|
QAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AABAQEADQEBAaEBAQOhAQED/QEBA/0BAQPpAQEDLQEBAnUBAQIBAQEBwQEBAcEBAQH5AQECYQEBAvkBA
|
||||||
|
QPFAQED/QEBA/0BAQP9AQEDYQEBAZUBAQAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAABAQEAbQEBAwUBAQP9AQED/QEBAzEBAQGJAQEARAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAABAQEADQEBAOEBAQIhAQEDlQEBA/0BAQP9AQEDdQEBAUAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAkQEBA4UBAQP9AQEDlQEBAVEBAQAEAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBABEBAQFhAQEDTQEBA/0BA
|
||||||
|
QP9AQEClQEBADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAVQEBA4EBAQP9AQEDBQEBAFQAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAQEBABEBAQG1AQEDzQEBA/0BAQNRAQEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEABQEBAukBA
|
||||||
|
QP9AQEDGQEBACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAJEBAQNJAQED/QEBA4UBAQB8AAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAQEBAXEBAQP9AQEDpQEBAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAPQEBAxUBA
|
||||||
|
QP9AQEDWQEBADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAQEBAA0BAQN9AQED/QEBAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAEBAQA5AQEDTQEBA/0BAQKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQFJAQED/QEBA2UBAQAIAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAJkBAQPZAQED+QEBAPQAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQECpQEBA/0BA
|
||||||
|
QG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQECBQEBA/0BA
|
||||||
|
QLcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
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
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAA09PT/38yGv9/Mhr/fzIa/9PT0//T09P/09PT/9PT0/9/Mhr/fzIa/38y
|
||||||
|
Gv/T09P/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAoAAAANAAAADwAAAA8AAAALAAAABQAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT0//T09P/09PT/9PT0//T09P/09PT/9PT
|
||||||
|
0//T09P/09PT/9PT0//T09P/09PT/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADT09P/09PT/9PT
|
||||||
|
0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAA09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT
|
||||||
|
0//T09P/09PT/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADT09P/09PT/9PT0//T09P/09PT/9PT
|
||||||
|
0//T09P/09PT/9PT0//T09P/09PT/9PT0/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAA////////////////////////4Af///////8AAH///////AAAH//////4D/AP//////A//gP/
|
||||||
|
////4P//gf/////B///g/////8P///B/////h///+H////+H///8P////4////4/////D//4Bh////8f
|
||||||
|
/+ABHgD//h//wAAYAD/+H/+AABAAH/4f/4HwAAAP/A//B/ABxg/4B/8HwAHHB/gD/wACA4cHwAD/AAID
|
||||||
|
h4fAAP8ABgcDh8AA/wgOBgGHwAD/Dh4AAIfAAP8PHgAAB8AA/wccAfAHwAD/gxgh/g/AAP+AACD8D8AA
|
||||||
|
/8AAcAAfwAD/4AH4AD/AAP/gAfwAf8AA/8AA+AB/wAD/gADwAD/AAP+CMGAwH8AA/w44QfwfwAD+DjwD
|
||||||
|
+A/AAP4cPAfgD8AA/hwcAAEPwAD+GA4AAY/AAP4ABgQDj8AA/gAABwcPwAD+A4AHjw/AAP4P8AOPD8AA
|
||||||
|
/wPwQ44P4AH/AABAyB/gAf+AAOAAH+AB/8AB8AA/4AH/8Af8AH/gAf////4B/+AB////////4AH/////
|
||||||
|
///gAf///////+AB////////4AH/////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////8=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
@ -16,6 +16,7 @@ namespace TelemetryIO.Models
|
|||||||
public string name = "";
|
public string name = "";
|
||||||
public float[] raw_imu = new float[6];
|
public float[] raw_imu = new float[6];
|
||||||
public float[] quaternion = new float[4];
|
public float[] quaternion = new float[4];
|
||||||
|
public float[] battery = new float[4];
|
||||||
public float[] motor_act = new float[4];
|
public float[] motor_act = new float[4];
|
||||||
public float[] motor_sp = new float[4];
|
public float[] motor_sp = new float[4];
|
||||||
public float[] pid0 = new float[9];
|
public float[] pid0 = new float[9];
|
||||||
@ -24,26 +25,28 @@ namespace TelemetryIO.Models
|
|||||||
public float[] pid3 = new float[9];
|
public float[] pid3 = new float[9];
|
||||||
|
|
||||||
private Telemetry() {
|
private Telemetry() {
|
||||||
dictMonitor.Add("rawAx", new VarAddress(0, 0));
|
dictMonitor.Add("rawAx", new VarAddress(RAW_IMU_ADDRESS, 0));
|
||||||
dictMonitor.Add("rawAy", new VarAddress(0, 1));
|
dictMonitor.Add("rawAy", new VarAddress(RAW_IMU_ADDRESS, 1));
|
||||||
dictMonitor.Add("rawAz", new VarAddress(0, 2));
|
dictMonitor.Add("rawAz", new VarAddress(RAW_IMU_ADDRESS, 2));
|
||||||
dictMonitor.Add("rawGx", new VarAddress(0, 3));
|
dictMonitor.Add("rawGx", new VarAddress(RAW_IMU_ADDRESS, 3));
|
||||||
dictMonitor.Add("rawGy", new VarAddress(0, 4));
|
dictMonitor.Add("rawGy", new VarAddress(RAW_IMU_ADDRESS, 4));
|
||||||
dictMonitor.Add("rawGz", new VarAddress(0, 5));
|
dictMonitor.Add("rawGz", new VarAddress(RAW_IMU_ADDRESS, 5));
|
||||||
|
|
||||||
dictMonitor.Add("Qw", new VarAddress(1, 0));
|
dictMonitor.Add("Qw", new VarAddress(Q_ADDRESS, 0));
|
||||||
dictMonitor.Add("Qx", new VarAddress(1, 1));
|
dictMonitor.Add("Qx", new VarAddress(Q_ADDRESS, 1));
|
||||||
dictMonitor.Add("Qy", new VarAddress(1, 2));
|
dictMonitor.Add("Qy", new VarAddress(Q_ADDRESS, 2));
|
||||||
dictMonitor.Add("Qz", new VarAddress(1, 3));
|
dictMonitor.Add("Qz", new VarAddress(Q_ADDRESS, 3));
|
||||||
|
|
||||||
dictMonitor.Add("motor0_Act", new VarAddress(100, 0));
|
dictMonitor.Add("Battery[V]", new VarAddress(BAT_ADDRESS, 0));
|
||||||
dictMonitor.Add("motor1_Act", new VarAddress(100, 1));
|
|
||||||
dictMonitor.Add("motor2_Act", new VarAddress(100, 2));
|
dictMonitor.Add("motor0_Act", new VarAddress(MOTORS_ACT_ADDRESS, 0));
|
||||||
dictMonitor.Add("motor3_Act", new VarAddress(100, 3));
|
dictMonitor.Add("motor1_Act", new VarAddress(MOTORS_ACT_ADDRESS, 1));
|
||||||
dictMonitor.Add("motor4_Act", new VarAddress(100, 4));
|
dictMonitor.Add("motor2_Act", new VarAddress(MOTORS_ACT_ADDRESS, 2));
|
||||||
dictMonitor.Add("motor5_Act", new VarAddress(100, 5));
|
dictMonitor.Add("motor3_Act", new VarAddress(MOTORS_ACT_ADDRESS, 3));
|
||||||
dictMonitor.Add("motor6_Act", new VarAddress(100, 6));
|
dictMonitor.Add("motor4_Act", new VarAddress(MOTORS_ACT_ADDRESS, 4));
|
||||||
dictMonitor.Add("motor7_Act", new VarAddress(100, 7));
|
dictMonitor.Add("motor5_Act", new VarAddress(MOTORS_ACT_ADDRESS, 5));
|
||||||
|
dictMonitor.Add("motor6_Act", new VarAddress(MOTORS_ACT_ADDRESS, 6));
|
||||||
|
dictMonitor.Add("motor7_Act", new VarAddress(MOTORS_ACT_ADDRESS, 7));
|
||||||
}
|
}
|
||||||
|
|
||||||
public VarAddress getVarAdress(string name)
|
public VarAddress getVarAdress(string name)
|
||||||
@ -81,35 +84,43 @@ namespace TelemetryIO.Models
|
|||||||
if (slot != 9999) Debug.WriteLine(slot);
|
if (slot != 9999) Debug.WriteLine(slot);
|
||||||
switch (slot)
|
switch (slot)
|
||||||
{
|
{
|
||||||
case 0://RAW IMU
|
case RAW_IMU_ADDRESS://RAW IMU
|
||||||
set_float(raw_imu, data, offset, len);
|
set_float(raw_imu, data, offset, len);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1://quaternion
|
case Q_ADDRESS://quaternion
|
||||||
set_float(quaternion, data, offset, len);
|
set_float(quaternion, data, offset, len);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 100://motors act
|
case BAT_ADDRESS://battery
|
||||||
|
set_float(battery, data, offset, len);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MOTORS_ACT_ADDRESS://motors act
|
||||||
set_float(motor_act, data, offset, len);
|
set_float(motor_act, data, offset, len);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1000:
|
case MOTORS_SP_ADDRESS://motors act
|
||||||
|
set_float(motor_sp, data, offset, len);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PID0_ADDRESS:
|
||||||
set_float(pid0, data, offset, len);
|
set_float(pid0, data, offset, len);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1001:
|
case PID1_ADDRESS:
|
||||||
set_float(pid1, data, offset, len);
|
set_float(pid1, data, offset, len);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1002:
|
case PID2_ADDRESS:
|
||||||
set_float(pid2, data, offset, len);
|
set_float(pid2, data, offset, len);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1003:
|
case PID3_ADDRESS:
|
||||||
set_float(pid3, data, offset, len);
|
set_float(pid3, data, offset, len);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 9999:
|
case NAME_ADDRESS:
|
||||||
set_name(data);
|
set_name(data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -132,6 +143,20 @@ namespace TelemetryIO.Models
|
|||||||
name = Encoding.ASCII.GetString(data, 0, 16);
|
name = Encoding.ASCII.GetString(data, 0, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public const int RAW_IMU_ADDRESS = 0;
|
||||||
|
public const int Q_ADDRESS = 1;
|
||||||
|
|
||||||
|
public const int BAT_ADDRESS = 50;
|
||||||
|
|
||||||
|
public const int MOTORS_ACT_ADDRESS = 100;
|
||||||
|
public const int MOTORS_SP_ADDRESS = 101;
|
||||||
|
|
||||||
|
public const int PID0_ADDRESS = 1000;
|
||||||
|
public const int PID1_ADDRESS = 1001;
|
||||||
|
public const int PID2_ADDRESS = 1002;
|
||||||
|
public const int PID3_ADDRESS = 1003;
|
||||||
|
|
||||||
|
public const int NAME_ADDRESS = 9999;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class VarAddress
|
public class VarAddress
|
||||||
|
97
TelemetryIO/MonitorVars.Designer.cs
generated
97
TelemetryIO/MonitorVars.Designer.cs
generated
@ -29,102 +29,127 @@
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.MainFormPlot = new ScottPlot.WinForms.FormsPlot();
|
this.MainFormPlot = new ScottPlot.WinForms.FormsPlot();
|
||||||
this.mon_test_label = new System.Windows.Forms.Label();
|
|
||||||
this.add_btn = new System.Windows.Forms.Button();
|
this.add_btn = new System.Windows.Forms.Button();
|
||||||
this.del_btn = new System.Windows.Forms.Button();
|
this.del_btn = new System.Windows.Forms.Button();
|
||||||
this.monNames_label = new System.Windows.Forms.Label();
|
|
||||||
this.monitorItems_cb = new System.Windows.Forms.ComboBox();
|
this.monitorItems_cb = new System.Windows.Forms.ComboBox();
|
||||||
this.monitorItems_lb = new System.Windows.Forms.ListBox();
|
this.monitorItems_lb = new System.Windows.Forms.ListBox();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.AutoScale_check = new System.Windows.Forms.CheckBox();
|
||||||
|
this.StartStop_btn = new System.Windows.Forms.Button();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// MainFormPlot
|
// MainFormPlot
|
||||||
//
|
//
|
||||||
this.MainFormPlot.DisplayScale = 0F;
|
this.MainFormPlot.DisplayScale = 0F;
|
||||||
this.MainFormPlot.Location = new System.Drawing.Point(238, 58);
|
this.MainFormPlot.Location = new System.Drawing.Point(238, 0);
|
||||||
this.MainFormPlot.Name = "MainFormPlot";
|
this.MainFormPlot.Name = "MainFormPlot";
|
||||||
this.MainFormPlot.Size = new System.Drawing.Size(923, 539);
|
this.MainFormPlot.Size = new System.Drawing.Size(951, 597);
|
||||||
this.MainFormPlot.TabIndex = 0;
|
this.MainFormPlot.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// mon_test_label
|
|
||||||
//
|
|
||||||
this.mon_test_label.AutoSize = true;
|
|
||||||
this.mon_test_label.Location = new System.Drawing.Point(3, 11);
|
|
||||||
this.mon_test_label.Name = "mon_test_label";
|
|
||||||
this.mon_test_label.Size = new System.Drawing.Size(78, 13);
|
|
||||||
this.mon_test_label.TabIndex = 2;
|
|
||||||
this.mon_test_label.Text = "mon_test_label";
|
|
||||||
//
|
|
||||||
// add_btn
|
// add_btn
|
||||||
//
|
//
|
||||||
this.add_btn.Location = new System.Drawing.Point(20, 88);
|
this.add_btn.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.add_btn.Location = new System.Drawing.Point(130, 3);
|
||||||
this.add_btn.Name = "add_btn";
|
this.add_btn.Name = "add_btn";
|
||||||
this.add_btn.Size = new System.Drawing.Size(75, 23);
|
this.add_btn.Size = new System.Drawing.Size(87, 26);
|
||||||
this.add_btn.TabIndex = 3;
|
this.add_btn.TabIndex = 3;
|
||||||
this.add_btn.Text = "add_btn";
|
this.add_btn.Text = "Добавить";
|
||||||
this.add_btn.UseVisualStyleBackColor = true;
|
this.add_btn.UseVisualStyleBackColor = true;
|
||||||
this.add_btn.Click += new System.EventHandler(this.add_btn_Click);
|
this.add_btn.Click += new System.EventHandler(this.add_btn_Click);
|
||||||
//
|
//
|
||||||
// del_btn
|
// del_btn
|
||||||
//
|
//
|
||||||
this.del_btn.Location = new System.Drawing.Point(20, 135);
|
this.del_btn.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.del_btn.Location = new System.Drawing.Point(67, 439);
|
||||||
this.del_btn.Name = "del_btn";
|
this.del_btn.Name = "del_btn";
|
||||||
this.del_btn.Size = new System.Drawing.Size(75, 23);
|
this.del_btn.Size = new System.Drawing.Size(75, 23);
|
||||||
this.del_btn.TabIndex = 4;
|
this.del_btn.TabIndex = 4;
|
||||||
this.del_btn.Text = "del_btn";
|
this.del_btn.Text = "Удалить";
|
||||||
this.del_btn.UseVisualStyleBackColor = true;
|
this.del_btn.UseVisualStyleBackColor = true;
|
||||||
this.del_btn.Click += new System.EventHandler(this.del_btn_Click);
|
this.del_btn.Click += new System.EventHandler(this.del_btn_Click);
|
||||||
//
|
//
|
||||||
// monNames_label
|
|
||||||
//
|
|
||||||
this.monNames_label.AutoSize = true;
|
|
||||||
this.monNames_label.Location = new System.Drawing.Point(597, 11);
|
|
||||||
this.monNames_label.Name = "monNames_label";
|
|
||||||
this.monNames_label.Size = new System.Drawing.Size(35, 13);
|
|
||||||
this.monNames_label.TabIndex = 5;
|
|
||||||
this.monNames_label.Text = "label1";
|
|
||||||
//
|
|
||||||
// monitorItems_cb
|
// monitorItems_cb
|
||||||
//
|
//
|
||||||
|
this.monitorItems_cb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.monitorItems_cb.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
this.monitorItems_cb.FormattingEnabled = true;
|
this.monitorItems_cb.FormattingEnabled = true;
|
||||||
this.monitorItems_cb.Location = new System.Drawing.Point(20, 58);
|
this.monitorItems_cb.Location = new System.Drawing.Point(3, 3);
|
||||||
this.monitorItems_cb.Name = "monitorItems_cb";
|
this.monitorItems_cb.Name = "monitorItems_cb";
|
||||||
this.monitorItems_cb.Size = new System.Drawing.Size(121, 21);
|
this.monitorItems_cb.Size = new System.Drawing.Size(121, 24);
|
||||||
this.monitorItems_cb.TabIndex = 6;
|
this.monitorItems_cb.TabIndex = 6;
|
||||||
//
|
//
|
||||||
// monitorItems_lb
|
// monitorItems_lb
|
||||||
//
|
//
|
||||||
|
this.monitorItems_lb.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
this.monitorItems_lb.FormattingEnabled = true;
|
this.monitorItems_lb.FormattingEnabled = true;
|
||||||
this.monitorItems_lb.Location = new System.Drawing.Point(20, 180);
|
this.monitorItems_lb.ItemHeight = 16;
|
||||||
|
this.monitorItems_lb.Location = new System.Drawing.Point(3, 52);
|
||||||
this.monitorItems_lb.Name = "monitorItems_lb";
|
this.monitorItems_lb.Name = "monitorItems_lb";
|
||||||
this.monitorItems_lb.Size = new System.Drawing.Size(121, 316);
|
this.monitorItems_lb.Size = new System.Drawing.Size(214, 372);
|
||||||
this.monitorItems_lb.TabIndex = 8;
|
this.monitorItems_lb.TabIndex = 8;
|
||||||
//
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.AutoScale_check);
|
||||||
|
this.groupBox1.Controls.Add(this.StartStop_btn);
|
||||||
|
this.groupBox1.Location = new System.Drawing.Point(3, 480);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.Size = new System.Drawing.Size(214, 100);
|
||||||
|
this.groupBox1.TabIndex = 11;
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
this.groupBox1.Text = "Управление трендом";
|
||||||
|
//
|
||||||
|
// AutoScale_check
|
||||||
|
//
|
||||||
|
this.AutoScale_check.AutoSize = true;
|
||||||
|
this.AutoScale_check.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.AutoScale_check.Location = new System.Drawing.Point(45, 67);
|
||||||
|
this.AutoScale_check.Name = "AutoScale_check";
|
||||||
|
this.AutoScale_check.Size = new System.Drawing.Size(120, 21);
|
||||||
|
this.AutoScale_check.TabIndex = 12;
|
||||||
|
this.AutoScale_check.Text = "Авто масштаб";
|
||||||
|
this.AutoScale_check.UseVisualStyleBackColor = true;
|
||||||
|
this.AutoScale_check.CheckedChanged += new System.EventHandler(this.AutoScale_check_CheckedChanged);
|
||||||
|
//
|
||||||
|
// StartStop_btn
|
||||||
|
//
|
||||||
|
this.StartStop_btn.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.StartStop_btn.Location = new System.Drawing.Point(51, 24);
|
||||||
|
this.StartStop_btn.Name = "StartStop_btn";
|
||||||
|
this.StartStop_btn.Size = new System.Drawing.Size(108, 31);
|
||||||
|
this.StartStop_btn.TabIndex = 11;
|
||||||
|
this.StartStop_btn.Text = "Старт";
|
||||||
|
this.StartStop_btn.UseVisualStyleBackColor = true;
|
||||||
|
this.StartStop_btn.Click += new System.EventHandler(this.StartStop_btn_Click);
|
||||||
|
//
|
||||||
// MonitorVars
|
// MonitorVars
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
this.Controls.Add(this.monitorItems_lb);
|
this.Controls.Add(this.monitorItems_lb);
|
||||||
this.Controls.Add(this.monitorItems_cb);
|
this.Controls.Add(this.monitorItems_cb);
|
||||||
this.Controls.Add(this.monNames_label);
|
|
||||||
this.Controls.Add(this.del_btn);
|
this.Controls.Add(this.del_btn);
|
||||||
this.Controls.Add(this.add_btn);
|
this.Controls.Add(this.add_btn);
|
||||||
this.Controls.Add(this.mon_test_label);
|
|
||||||
this.Controls.Add(this.MainFormPlot);
|
this.Controls.Add(this.MainFormPlot);
|
||||||
this.Name = "MonitorVars";
|
this.Name = "MonitorVars";
|
||||||
this.Size = new System.Drawing.Size(1240, 600);
|
this.Size = new System.Drawing.Size(1240, 600);
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private ScottPlot.WinForms.FormsPlot MainFormPlot;
|
private ScottPlot.WinForms.FormsPlot MainFormPlot;
|
||||||
private System.Windows.Forms.Label mon_test_label;
|
|
||||||
private System.Windows.Forms.Button add_btn;
|
private System.Windows.Forms.Button add_btn;
|
||||||
private System.Windows.Forms.Button del_btn;
|
private System.Windows.Forms.Button del_btn;
|
||||||
private System.Windows.Forms.Label monNames_label;
|
|
||||||
private System.Windows.Forms.ComboBox monitorItems_cb;
|
private System.Windows.Forms.ComboBox monitorItems_cb;
|
||||||
private System.Windows.Forms.ListBox monitorItems_lb;
|
private System.Windows.Forms.ListBox monitorItems_lb;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.CheckBox AutoScale_check;
|
||||||
|
private System.Windows.Forms.Button StartStop_btn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,11 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using TelemetryIO.Models;
|
using TelemetryIO.Models;
|
||||||
@ -20,12 +22,16 @@ namespace TelemetryIO
|
|||||||
private List<string> monitorNames = new List<string>();
|
private List<string> monitorNames = new List<string>();
|
||||||
private List<ScottPlot.Plottables.Signal> signals = new List<ScottPlot.Plottables.Signal>();
|
private List<ScottPlot.Plottables.Signal> signals = new List<ScottPlot.Plottables.Signal>();
|
||||||
|
|
||||||
|
private List<MonitorItem> monItems = new List<MonitorItem>();
|
||||||
|
|
||||||
private List<int[]>[] plotContent = new List<int[]>[32];
|
private List<int[]>[] plotContent = new List<int[]>[32];
|
||||||
|
|
||||||
private Timer updateTimer = new Timer();
|
private System.Windows.Forms.Timer updateTimer = new System.Windows.Forms.Timer();
|
||||||
private float[] monitoring = new float[32];
|
private float[] monitoring = new float[32];
|
||||||
private int test_index = 0;
|
private int test_index = 0;
|
||||||
private bool isSubscribed = false;
|
private bool isSubscribed = false;
|
||||||
|
private bool isMonitoring = true;
|
||||||
|
private bool isAutoScale = true;
|
||||||
|
|
||||||
private string processingName = "";
|
private string processingName = "";
|
||||||
private int processingIndex = -1;
|
private int processingIndex = -1;
|
||||||
@ -35,14 +41,12 @@ namespace TelemetryIO
|
|||||||
initMonitoringBuffer();
|
initMonitoringBuffer();
|
||||||
|
|
||||||
updateTimer.Interval = 100;
|
updateTimer.Interval = 100;
|
||||||
|
AutoScale_check.Checked = isAutoScale;
|
||||||
MainFormPlot.Plot.Axes.AutoScale();
|
|
||||||
|
|
||||||
monitorItems_cb.Items.AddRange(Telemetry.Instance.getKeys());
|
monitorItems_cb.Items.AddRange(Telemetry.Instance.getKeys());
|
||||||
monitorItems_cb.SelectedIndex = 0;
|
monitorItems_cb.SelectedIndex = 0;
|
||||||
updateTimer.Tick += UpdateTimer_Tick;
|
updateTimer.Tick += UpdateTimer_Tick;
|
||||||
updateTimer.Start();
|
updateTimer.Start();
|
||||||
//MainFormPlot.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void subscribeOnMonitoringItemsReceived(SerialHandler s)
|
public void subscribeOnMonitoringItemsReceived(SerialHandler s)
|
||||||
@ -58,7 +62,7 @@ namespace TelemetryIO
|
|||||||
{
|
{
|
||||||
if(e.Answer == "ADD")
|
if(e.Answer == "ADD")
|
||||||
{
|
{
|
||||||
monitorNames.Add(processingName);
|
MonitorItem item = new MonitorItem(processingName, processingIndex);
|
||||||
processingIndex++;
|
processingIndex++;
|
||||||
if (monitorItems_lb.InvokeRequired)
|
if (monitorItems_lb.InvokeRequired)
|
||||||
{
|
{
|
||||||
@ -68,14 +72,21 @@ namespace TelemetryIO
|
|||||||
{
|
{
|
||||||
monitorItems_lb.Items.Add(processingName);
|
monitorItems_lb.Items.Add(processingName);
|
||||||
}
|
}
|
||||||
monitorList.Add(new double[1024]);
|
|
||||||
MainFormPlot.Plot.Add.Signal(monitorList[monitorList.Count - 1]);
|
|
||||||
|
|
||||||
|
if (StartStop_btn.InvokeRequired)
|
||||||
|
{
|
||||||
|
StartStop_btn.Invoke(new Action(() => StartStop_btn.Enabled = true));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StartStop_btn.Enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
monItems.Add(item);
|
||||||
}
|
}
|
||||||
else if(e.Answer == "REMOVE")
|
else if(e.Answer == "REMOVE")
|
||||||
{
|
{
|
||||||
monitorNames.RemoveAt(processingIndex);
|
monItems.RemoveAt(processingIndex);
|
||||||
monitorList.RemoveAt(processingIndex);
|
|
||||||
if (monitorItems_lb.InvokeRequired)
|
if (monitorItems_lb.InvokeRequired)
|
||||||
{
|
{
|
||||||
monitorItems_lb.Invoke(new Action(() => monitorItems_lb.Items.RemoveAt(processingIndex)));
|
monitorItems_lb.Invoke(new Action(() => monitorItems_lb.Items.RemoveAt(processingIndex)));
|
||||||
@ -88,55 +99,89 @@ namespace TelemetryIO
|
|||||||
if (processingIndex >= 0) processingIndex--;
|
if (processingIndex >= 0) processingIndex--;
|
||||||
}else if(e.Answer == "REMOVEALL")
|
}else if(e.Answer == "REMOVEALL")
|
||||||
{
|
{
|
||||||
monitorNames.Clear();
|
monItems.Clear();
|
||||||
monitorList.Clear();
|
if (monitorItems_lb.InvokeRequired)
|
||||||
|
{
|
||||||
|
monitorItems_lb.Invoke(new Action(() => monitorItems_lb.Items.Clear()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
monitorItems_lb.Items.Clear();
|
||||||
|
}
|
||||||
|
if (StartStop_btn.InvokeRequired)
|
||||||
|
{
|
||||||
|
StartStop_btn.Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
StartStop_btn.Text = "Старт";
|
||||||
|
StartStop_btn.Enabled = false;
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StartStop_btn.Text = "Старт";
|
||||||
|
StartStop_btn.Enabled = false;
|
||||||
|
}
|
||||||
|
isMonitoring = false;
|
||||||
|
}
|
||||||
|
else if (e.Answer == "MONITORON")
|
||||||
|
{
|
||||||
|
if (StartStop_btn.InvokeRequired)
|
||||||
|
{
|
||||||
|
StartStop_btn.Invoke(new Action(() => StartStop_btn.Text = "Стоп"));
|
||||||
|
}
|
||||||
|
else StartStop_btn.Text = "Стоп";
|
||||||
|
isMonitoring = true;
|
||||||
|
}
|
||||||
|
else if (e.Answer == "MONITOROFF")
|
||||||
|
{
|
||||||
|
if (StartStop_btn.InvokeRequired)
|
||||||
|
{
|
||||||
|
StartStop_btn.Invoke(new Action(() => StartStop_btn.Text = "Старт"));
|
||||||
|
}
|
||||||
|
else StartStop_btn.Text = "Старт";
|
||||||
|
isMonitoring = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Serial_MonitoringItemsReceived(object sender, MonitoringEventArgs e)
|
private void Serial_MonitoringItemsReceived(object sender, MonitoringEventArgs e)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < monitorList.Count; i++)
|
for(int i = 0; i < monItems.Count; i++)
|
||||||
{
|
{
|
||||||
ShiftLeft(monitorList[i]);
|
monItems[i].Insert(e.Data[i]);
|
||||||
monitorList[i][monitorList[i].Length - 1] = e.Data[i];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
monitoring = new float[monitorList.Count];
|
monitoring = new float[monItems.Count];
|
||||||
for (int i = 0; i < monitorList.Count; i++)
|
for (int i = 0; i < monItems.Count; i++)
|
||||||
{
|
{
|
||||||
monitoring[i] = (float)monitorList[i][monitorList[i].Length - 1];
|
monitoring[i] = (float)monItems[i].Last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateTimer_Tick(object sender, EventArgs e)
|
private void UpdateTimer_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (mon_test_label.InvokeRequired)
|
if (monItems.Count > 0)
|
||||||
{
|
{
|
||||||
mon_test_label.Invoke(new Action(() => mon_test_label.Text = string.Join(", ", monitoring)));
|
MainFormPlot.Plot.Clear();
|
||||||
|
for(int i = 0; i < monItems.Count; i++)
|
||||||
|
{
|
||||||
|
var sig = MainFormPlot.Plot.Add.Signal(monItems[i].data);
|
||||||
|
sig.LegendText = monItems[i].name;
|
||||||
|
sig.Color = ScottPlot.Color.FromColor(monItems[i].color);
|
||||||
|
if (monitorItems_lb.InvokeRequired)
|
||||||
|
{
|
||||||
|
monitorItems_lb.Invoke(new Action(() => monitorItems_lb.Items[i] = monItems[i].name + "\t" + monItems[i].Last));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mon_test_label.Text = string.Join(", ", monitoring);
|
monitorItems_lb.Items[i] = monItems[i].name + "\t" + monItems[i].Last;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (monNames_label.InvokeRequired)
|
|
||||||
{
|
|
||||||
monNames_label.Invoke(new Action(() => monNames_label.Text = string.Join(", ", monitorNames)));
|
|
||||||
}
|
|
||||||
else monNames_label.Text = string.Join(", ", monitorNames);
|
|
||||||
|
|
||||||
if (monitorList.Count > 0)
|
|
||||||
{
|
|
||||||
MainFormPlot.Plot.Clear();
|
|
||||||
for(int i = 0; i < monitorList.Count; i++)
|
|
||||||
{
|
|
||||||
var sig = MainFormPlot.Plot.Add.Signal(monitorList[i]);
|
|
||||||
sig.LegendText = monitorNames[i];
|
|
||||||
}
|
}
|
||||||
MainFormPlot.Plot.Legend.IsVisible = true;
|
MainFormPlot.Plot.Legend.IsVisible = true;
|
||||||
MainFormPlot.Plot.Legend.Orientation = ScottPlot.Orientation.Horizontal;
|
MainFormPlot.Plot.Legend.Orientation = ScottPlot.Orientation.Horizontal;
|
||||||
MainFormPlot.Plot.Axes.AutoScale();
|
if(isAutoScale) MainFormPlot.Plot.Axes.AutoScale();
|
||||||
MainFormPlot.Refresh();
|
MainFormPlot.Refresh();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,9 +209,93 @@ namespace TelemetryIO
|
|||||||
serial.RemoveMonitoringItem(processingIndex);
|
serial.RemoveMonitoringItem(processingIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ShiftLeft(double[] arr)
|
private void StartStop_btn_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Buffer.BlockCopy(arr, sizeof(double), arr, 0, (arr.Length - 1)*sizeof(double));
|
if(isMonitoring)
|
||||||
|
{
|
||||||
|
serial.stopMonitoring();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
serial.startMonitoring();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AutoScale_check_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
CheckBox cb = sender as CheckBox;
|
||||||
|
if (cb.Checked) isAutoScale = true;
|
||||||
|
else isAutoScale = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MonitorItem
|
||||||
|
{
|
||||||
|
public double[] data = new double[2048];
|
||||||
|
public System.Drawing.Color color = System.Drawing.Color.Red;
|
||||||
|
public string name = "";
|
||||||
|
public int order = 0;
|
||||||
|
private static int col = 0;
|
||||||
|
private bool firstScan = true;
|
||||||
|
public int Length
|
||||||
|
{
|
||||||
|
get { return data.Length; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public double Last
|
||||||
|
{
|
||||||
|
get { return data[data.Length - 1]; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private System.Drawing.Color[] colors =
|
||||||
|
{
|
||||||
|
System.Drawing.Color.Red,
|
||||||
|
System.Drawing.Color.Green,
|
||||||
|
System.Drawing.Color.Blue,
|
||||||
|
System.Drawing.Color.Orange,
|
||||||
|
System.Drawing.Color.Orchid,
|
||||||
|
System.Drawing.Color.Purple,
|
||||||
|
System.Drawing.Color.Pink,
|
||||||
|
System.Drawing.Color.Black,
|
||||||
|
System.Drawing.Color.Gray,
|
||||||
|
System.Drawing.Color.SkyBlue,
|
||||||
|
System.Drawing.Color.Magenta,
|
||||||
|
System.Drawing.Color.DarkGreen,
|
||||||
|
System.Drawing.Color.LightGreen,
|
||||||
|
System.Drawing.Color.YellowGreen,
|
||||||
|
System.Drawing.Color.DarkRed,
|
||||||
|
};
|
||||||
|
|
||||||
|
private void init()
|
||||||
|
{
|
||||||
|
color = colors[col % 16];
|
||||||
|
col++;
|
||||||
|
}
|
||||||
|
public MonitorItem()
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MonitorItem(string name, int order)
|
||||||
|
{
|
||||||
|
this.name = name;
|
||||||
|
this.order = order;
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Insert(double d)
|
||||||
|
{
|
||||||
|
if (firstScan)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < data.Length; i++)
|
||||||
|
{
|
||||||
|
data[i] = d;
|
||||||
|
}
|
||||||
|
firstScan = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Buffer.BlockCopy(data, sizeof(double), data, 0, (data.Length - 1) * sizeof(double));
|
||||||
|
data[data.Length - 1] = d;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
12
TelemetryIO/RatePID.Designer.cs
generated
12
TelemetryIO/RatePID.Designer.cs
generated
@ -160,9 +160,10 @@
|
|||||||
//
|
//
|
||||||
// Save_btn
|
// Save_btn
|
||||||
//
|
//
|
||||||
this.Save_btn.Location = new System.Drawing.Point(1012, 562);
|
this.Save_btn.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.Save_btn.Location = new System.Drawing.Point(1097, 608);
|
||||||
this.Save_btn.Name = "Save_btn";
|
this.Save_btn.Name = "Save_btn";
|
||||||
this.Save_btn.Size = new System.Drawing.Size(75, 23);
|
this.Save_btn.Size = new System.Drawing.Size(90, 30);
|
||||||
this.Save_btn.TabIndex = 18;
|
this.Save_btn.TabIndex = 18;
|
||||||
this.Save_btn.Text = "Сохранить";
|
this.Save_btn.Text = "Сохранить";
|
||||||
this.Save_btn.UseVisualStyleBackColor = true;
|
this.Save_btn.UseVisualStyleBackColor = true;
|
||||||
@ -170,9 +171,10 @@
|
|||||||
//
|
//
|
||||||
// button1
|
// button1
|
||||||
//
|
//
|
||||||
this.button1.Location = new System.Drawing.Point(1107, 562);
|
this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.button1.Location = new System.Drawing.Point(1193, 608);
|
||||||
this.button1.Name = "button1";
|
this.button1.Name = "button1";
|
||||||
this.button1.Size = new System.Drawing.Size(75, 23);
|
this.button1.Size = new System.Drawing.Size(90, 30);
|
||||||
this.button1.TabIndex = 19;
|
this.button1.TabIndex = 19;
|
||||||
this.button1.Text = "Отменить";
|
this.button1.Text = "Отменить";
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
@ -1167,7 +1169,7 @@
|
|||||||
this.Controls.Add(this.button1);
|
this.Controls.Add(this.button1);
|
||||||
this.Controls.Add(this.Save_btn);
|
this.Controls.Add(this.Save_btn);
|
||||||
this.Name = "RatePID";
|
this.Name = "RatePID";
|
||||||
this.Size = new System.Drawing.Size(1200, 600);
|
this.Size = new System.Drawing.Size(1300, 650);
|
||||||
this.tabControl1.ResumeLayout(false);
|
this.tabControl1.ResumeLayout(false);
|
||||||
this.tab_pid0.ResumeLayout(false);
|
this.tab_pid0.ResumeLayout(false);
|
||||||
this.pid0_panel.ResumeLayout(false);
|
this.pid0_panel.ResumeLayout(false);
|
||||||
|
@ -57,6 +57,8 @@ namespace TelemetryIO
|
|||||||
private readonly int responseTimeout = 2000;
|
private readonly int responseTimeout = 2000;
|
||||||
private System.Timers.Timer timeout = new System.Timers.Timer(3000);
|
private System.Timers.Timer timeout = new System.Timers.Timer(3000);
|
||||||
|
|
||||||
|
private bool exitPending = false;
|
||||||
|
|
||||||
|
|
||||||
public struct Telegram
|
public struct Telegram
|
||||||
{
|
{
|
||||||
@ -101,8 +103,8 @@ namespace TelemetryIO
|
|||||||
private void Serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
|
private void Serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
|
||||||
{
|
{
|
||||||
SerialPort sp = (SerialPort)sender;
|
SerialPort sp = (SerialPort)sender;
|
||||||
|
try
|
||||||
|
{
|
||||||
while (sp.BytesToRead > 0)
|
while (sp.BytesToRead > 0)
|
||||||
{
|
{
|
||||||
if (!sp.IsOpen) return;
|
if (!sp.IsOpen) return;
|
||||||
@ -133,12 +135,13 @@ namespace TelemetryIO
|
|||||||
}
|
}
|
||||||
else if (cmd == TELE_CMD_RD_MON_ON)
|
else if (cmd == TELE_CMD_RD_MON_ON)
|
||||||
{//READ MONITORING DATA
|
{//READ MONITORING DATA
|
||||||
for(int i = 0; i < data.Length/4; i++)
|
for (int i = 0; i < data.Length / 4; i++)
|
||||||
{
|
{
|
||||||
monitor[i] = BitConverter.ToSingle(data, i*4);
|
monitor[i] = BitConverter.ToSingle(data, i * 4);
|
||||||
}
|
}
|
||||||
OnMonitoringItemsReceived(monitor);
|
OnMonitoringItemsReceived(monitor);
|
||||||
view_str = string.Join(", ", monitor.Select(x => "" + x).ToArray(), 0, data.Length/4);
|
OnAnswerReceived("MONITORON");
|
||||||
|
view_str = string.Join(", ", monitor.Select(x => "" + x).ToArray(), 0, data.Length / 4);
|
||||||
}
|
}
|
||||||
else if (cmd == TELE_CMD_WR)
|
else if (cmd == TELE_CMD_WR)
|
||||||
{//WRITTING OPERATION IS DONE WITH SUCCESS
|
{//WRITTING OPERATION IS DONE WITH SUCCESS
|
||||||
@ -147,30 +150,42 @@ namespace TelemetryIO
|
|||||||
Debug.Write("Data is written\n");
|
Debug.Write("Data is written\n");
|
||||||
OnAnswerReceived("Data is written");
|
OnAnswerReceived("Data is written");
|
||||||
}
|
}
|
||||||
}else if(cmd == TELE_CMD_HELLO)
|
}
|
||||||
|
else if (cmd == TELE_CMD_HELLO)
|
||||||
{//HANDSHAKING ANSWER
|
{//HANDSHAKING ANSWER
|
||||||
telemetry.setSlot(9999, data, 0, 0);
|
telemetry.setSlot(9999, data, 0, 0);
|
||||||
view_str = Encoding.ASCII.GetString(data);
|
view_str = Encoding.ASCII.GetString(data);
|
||||||
req_buffer.Clear();
|
req_buffer.Clear();
|
||||||
OnHandShakeOccurred();
|
OnHandShakeOccurred();
|
||||||
getPIDs();
|
getPIDs();
|
||||||
}else if(cmd == TELE_CMD_RD_MON_ADD)
|
}
|
||||||
|
else if (cmd == TELE_CMD_RD_MON_ADD)
|
||||||
{
|
{
|
||||||
OnAnswerReceived("ADD");
|
OnAnswerReceived("ADD");
|
||||||
isMonitorEmpty = false;
|
isMonitorEmpty = false;
|
||||||
}
|
}
|
||||||
else if(cmd == TELE_CMD_RD_MON_REMOVE)
|
else if (cmd == TELE_CMD_RD_MON_REMOVE)
|
||||||
{
|
{
|
||||||
OnAnswerReceived("REMOVE");
|
OnAnswerReceived("REMOVE");
|
||||||
}else if(cmd == TELE_CMD_RD_MON_REMOVEALL)
|
}
|
||||||
|
else if (cmd == TELE_CMD_RD_MON_REMOVEALL)
|
||||||
{
|
{
|
||||||
OnAnswerReceived("REMOVEALL");
|
if (exitPending)
|
||||||
isMonitorEmpty = true;
|
{
|
||||||
|
com_port.Close();
|
||||||
|
OnAnswerReceived("EXITAPP");
|
||||||
}
|
}
|
||||||
|
else OnAnswerReceived("REMOVEALL");
|
||||||
}
|
}
|
||||||
|
else if (cmd == TELE_CMD_RD_MON_OFF)
|
||||||
|
{
|
||||||
|
OnAnswerReceived("MONITOROFF");
|
||||||
|
}
|
||||||
|
Debug.WriteLine($"cmd = {cmd}");
|
||||||
waitingForResponse = false;
|
waitingForResponse = false;
|
||||||
sendNextRequest();
|
sendNextRequest();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (b == ESCAPE_BEGIN)
|
else if (b == ESCAPE_BEGIN)
|
||||||
{//START BYTE IS RECEIVED
|
{//START BYTE IS RECEIVED
|
||||||
rx_buf.Clear();
|
rx_buf.Clear();
|
||||||
@ -180,6 +195,10 @@ namespace TelemetryIO
|
|||||||
rx_buf.Add(b);
|
rx_buf.Add(b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}catch(Exception ex)
|
||||||
|
{
|
||||||
|
Debug.WriteLine(ex.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Open()
|
public void Open()
|
||||||
@ -202,6 +221,7 @@ namespace TelemetryIO
|
|||||||
isTimeout = true;
|
isTimeout = true;
|
||||||
req_buffer.Clear();
|
req_buffer.Clear();
|
||||||
this.Close();
|
this.Close();
|
||||||
|
if(exitPending) OnAnswerReceived("EXITAPP");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -213,11 +233,10 @@ namespace TelemetryIO
|
|||||||
com_port.Close();
|
com_port.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Exit()
|
public void requestExit()
|
||||||
{
|
{
|
||||||
RemoveMonitoringItems();
|
RemoveMonitoringItems();
|
||||||
while (isMonitorEmpty || isTimeout) ;
|
exitPending = true;
|
||||||
if(!isTimeout)Close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void putRequest(byte[] request)
|
public void putRequest(byte[] request)
|
||||||
@ -292,6 +311,11 @@ namespace TelemetryIO
|
|||||||
putRequest(prepareTelegram(TELE_CMD_RD_MON_REMOVEALL, 0, new byte[0], 0));
|
putRequest(prepareTelegram(TELE_CMD_RD_MON_REMOVEALL, 0, new byte[0], 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void saveFloats(float[] data)
|
||||||
|
{
|
||||||
|
prepareTelegram(TELE_CMD_WR, 1000, data, 0);
|
||||||
|
}
|
||||||
|
|
||||||
byte crc8(byte[] data, int length)
|
byte crc8(byte[] data, int length)
|
||||||
{
|
{
|
||||||
byte crc = 0x00; // Initial value
|
byte crc = 0x00; // Initial value
|
||||||
|
Reference in New Issue
Block a user