168 lines
4.3 KiB
C#
168 lines
4.3 KiB
C#
using System.Text;
|
|
using System.Numerics;
|
|
using System.Windows.Forms;
|
|
using static DroneSimulator.NetClient;
|
|
using DroneClient;
|
|
|
|
namespace DroneSimulator
|
|
{
|
|
public partial class Form_Main : Form
|
|
{
|
|
private NetClient netClient = new NetClient();
|
|
|
|
public Form_Main()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void ConnectionCallback(object o)
|
|
{
|
|
ConnectData data = (ConnectData)o;
|
|
|
|
if (!data.Connect)
|
|
{
|
|
try
|
|
{
|
|
Invoke((MethodInvoker)delegate
|
|
{
|
|
button_Connect.Text = "Connect";
|
|
button_Connect.BackColor = Color.Transparent;
|
|
MessageBox.Show("Connection closed");
|
|
});
|
|
}
|
|
catch { }
|
|
|
|
return;
|
|
}
|
|
}
|
|
|
|
Drone dataDrone = new Drone();
|
|
|
|
private void ReceiveCallback(object o)
|
|
{
|
|
ReceiveData data = (ReceiveData)o;
|
|
|
|
List<byte[]?>? send = dataDrone.DataStream(data.Buffer, data.Size);
|
|
|
|
if (send == null) return;
|
|
try
|
|
{
|
|
foreach (byte[]? b in send)
|
|
{
|
|
if (b != null) data.Server?.Send(b);
|
|
}
|
|
}
|
|
catch { }
|
|
}
|
|
|
|
private void button_Connect_Click(object sender, EventArgs e)
|
|
{
|
|
var done = netClient.Connect(textBox_Server_Addr.Text, (int)numericUpDown_Server_Port.Value, ConnectionCallback, ReceiveCallback);
|
|
|
|
switch (done)
|
|
{
|
|
case NetClient.ClientState.Error:
|
|
{
|
|
MessageBox.Show("Error connecting to server");
|
|
break;
|
|
}
|
|
case NetClient.ClientState.Connected:
|
|
{
|
|
button_Connect.Text = "Disconnect";
|
|
button_Connect.BackColor = Color.LimeGreen;
|
|
break;
|
|
}
|
|
case NetClient.ClientState.Stop:
|
|
{
|
|
button_Connect.Text = "Connect";
|
|
button_Connect.BackColor = Color.Transparent;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (done != NetClient.ClientState.Connected) return;
|
|
}
|
|
|
|
private void Form_Main_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
netClient?.Close();
|
|
netClient = null;
|
|
}
|
|
|
|
private void timer_Test_Tick(object sender, EventArgs e)
|
|
{
|
|
label_Acc_X.Text = dataDrone.AccX.ToString();
|
|
label_Acc_Y.Text = dataDrone.AccY.ToString();
|
|
label_Acc_Z.Text = dataDrone.AccZ.ToString();
|
|
|
|
label_time_acc.Text = dataDrone.TimeAcc.ToString();
|
|
|
|
label_Gyr_X.Text = dataDrone.GyrX.ToString();
|
|
label_Gyr_Y.Text = dataDrone.GyrY.ToString();
|
|
label_Gyr_Z.Text = dataDrone.GyrZ.ToString();
|
|
|
|
label_time_gyr.Text = dataDrone.TimeGyr.ToString();
|
|
|
|
label_Pos_X.Text = dataDrone.PosX.ToString();
|
|
label_Pos_Y.Text = dataDrone.PosY.ToString();
|
|
label_Pos_L.Text = dataDrone.LaserRange.ToString();
|
|
|
|
label_time_range.Text = dataDrone.TimeRange.ToString();
|
|
|
|
netClient.SendData(dataDrone.SendReqest());
|
|
}
|
|
|
|
private void trackBar_Power_Scroll(object sender, EventArgs e)
|
|
{
|
|
float pow = (float)trackBar_Power.Value / 100;
|
|
|
|
label_Pow.Text = pow.ToString();
|
|
|
|
dataDrone.MotorUL = dataDrone.MotorUR = dataDrone.MotorDL = dataDrone.MotorDR = pow;
|
|
}
|
|
|
|
private void button_UU_MouseDown(object sender, MouseEventArgs e)
|
|
{
|
|
const float pow = 0.1f;
|
|
|
|
if (sender == button_UU)
|
|
{
|
|
dataDrone.MotorUL -= pow; dataDrone.MotorUR -= pow;
|
|
dataDrone.MotorDL += pow; dataDrone.MotorDR += pow;
|
|
}
|
|
if (sender == button_DD)
|
|
{
|
|
dataDrone.MotorUL += pow; dataDrone.MotorUR += pow;
|
|
dataDrone.MotorDL -= pow; dataDrone.MotorDR -= pow;
|
|
}
|
|
if (sender == button_LL)
|
|
{
|
|
dataDrone.MotorUL -= pow; dataDrone.MotorUR += pow;
|
|
dataDrone.MotorDL -= pow; dataDrone.MotorDR += pow;
|
|
}
|
|
if (sender == button_RR)
|
|
{
|
|
dataDrone.MotorUL += pow; dataDrone.MotorUR -= pow;
|
|
dataDrone.MotorDL += pow; dataDrone.MotorDR -= pow;
|
|
}
|
|
|
|
if (sender == button_ML)
|
|
{
|
|
dataDrone.MotorUL -= pow; dataDrone.MotorUR += pow;
|
|
dataDrone.MotorDL += pow; dataDrone.MotorDR -= pow;
|
|
}
|
|
|
|
if (sender == button_MR)
|
|
{
|
|
dataDrone.MotorUL += pow; dataDrone.MotorUR -= pow;
|
|
dataDrone.MotorDL -= pow; dataDrone.MotorDR += pow;
|
|
}
|
|
}
|
|
|
|
private void button_UU_MouseUp(object sender, MouseEventArgs e)
|
|
{
|
|
trackBar_Power_Scroll(null, null);
|
|
}
|
|
}
|
|
}
|