瀏覽代碼

Formatierung korrigiert

develop
Flo Smilari 1 年之前
父節點
當前提交
f1463b7f60
共有 2 個檔案被更改,包括 61 行新增127 行删除
  1. 二進制
      .vs/FSRemotePowerSwitch/v16/.suo
  2. 61
    127
      Form1.cs

二進制
.vs/FSRemotePowerSwitch/v16/.suo 查看文件


+ 61
- 127
Form1.cs 查看文件

using System.Threading; using System.Threading;
using System.Windows.Forms; using System.Windows.Forms;
namespace FSRemotePowerSwitch
{
public partial class MainForm : Form
{
namespace FSRemotePowerSwitch {
public partial class MainForm : Form {
private static string SETTINGS_FILE = "Settings.txt"; private static string SETTINGS_FILE = "Settings.txt";
private static string EXP_FIRMWARE_VER = "ExpectedFirmwareVersion"; private static string EXP_FIRMWARE_VER = "ExpectedFirmwareVersion";
private static bool connected; private static bool connected;
private static Boolean Connected
{
private static Boolean Connected {
[MethodImpl(MethodImplOptions.Synchronized)] [MethodImpl(MethodImplOptions.Synchronized)]
get { return connected; } get { return connected; }
[MethodImpl(MethodImplOptions.Synchronized)] [MethodImpl(MethodImplOptions.Synchronized)]
} }
private static bool requestPending; private static bool requestPending;
private static Boolean RequestPending
{
private static Boolean RequestPending {
[MethodImpl(MethodImplOptions.Synchronized)] [MethodImpl(MethodImplOptions.Synchronized)]
get { return requestPending; } get { return requestPending; }
[MethodImpl(MethodImplOptions.Synchronized)] [MethodImpl(MethodImplOptions.Synchronized)]
private Boolean initializing; private Boolean initializing;
private string firmwareVersion; private string firmwareVersion;
public MainForm()
{
public MainForm() {
initializing = false; initializing = false;
Connected = false; Connected = false;
RequestPending = false; RequestPending = false;
initializeSerialPortComboBox(); initializeSerialPortComboBox();
} }
private void onFormShown(object sender, EventArgs e)
{
private void onFormShown(object sender, EventArgs e) {
connect(); connect();
} }
private void connect()
{
if (serialPort.IsOpen)
{
private void connect() {
if (serialPort.IsOpen) {
serialPort.Close(); serialPort.Close();
} }
if (serialPortsCboBox.SelectedItem != null)
{
if (serialPortsCboBox.SelectedItem != null) {
Application.UseWaitCursor = true; Application.UseWaitCursor = true;
serialPort.PortName = serialPortsCboBox.SelectedItem.ToString(); serialPort.PortName = serialPortsCboBox.SelectedItem.ToString();
serialPort.Open(); serialPort.Open();
Thread waitThread = new Thread(Wait); Thread waitThread = new Thread(Wait);
waitThread.Start(); waitThread.Start();
}
else
{
} else {
initStatusLbl.Text = "Kein Port verfügbar!"; initStatusLbl.Text = "Kein Port verfügbar!";
connectedSerialPortLbl.Text = "Port: "; connectedSerialPortLbl.Text = "Port: ";
initProgressBar.Style = ProgressBarStyle.Continuous; initProgressBar.Style = ProgressBarStyle.Continuous;
} }
} }
private void Wait()
{
private void Wait() {
Stopwatch stopwatch = new Stopwatch(); Stopwatch stopwatch = new Stopwatch();
stopwatch.Start(); stopwatch.Start();
while (stopwatch.ElapsedMilliseconds < 3000)
{
while (stopwatch.ElapsedMilliseconds < 3000) {
Thread.Sleep(50); Thread.Sleep(50);
if (Connected)
{
if (Connected) {
break; break;
} }
} }
if (!Connected)
{
BeginInvoke(new EventHandler(delegate
{
if (!Connected) {
BeginInvoke(new EventHandler(delegate {
initStatusLbl.Text = "Zeitüberschreitung!"; initStatusLbl.Text = "Zeitüberschreitung!";
connectedSerialPortLbl.Text = "Port: "; connectedSerialPortLbl.Text = "Port: ";
initProgressBar.Style = ProgressBarStyle.Continuous; initProgressBar.Style = ProgressBarStyle.Continuous;
Cursor.Position = Cursor.Position; Cursor.Position = Cursor.Position;
} }
private void initializeSerialPortComboBox()
{
private void initializeSerialPortComboBox() {
initializing = true; initializing = true;
string[] ports = SerialPort.GetPortNames(); string[] ports = SerialPort.GetPortNames();
foreach (string port in ports)
{
foreach (string port in ports) {
serialPortsCboBox.Items.Add(port); serialPortsCboBox.Items.Add(port);
} }
PropertiesHandler serialPortCfg = new PropertiesHandler(SETTINGS_FILE); PropertiesHandler serialPortCfg = new PropertiesHandler(SETTINGS_FILE);
} }
private void onSerialPortsCboBoxSelectedIndexChanged(object sender, EventArgs e)
{
private void onSerialPortsCboBoxSelectedIndexChanged(object sender, EventArgs e) {
PropertiesHandler serialPortCfg = new PropertiesHandler(SETTINGS_FILE); PropertiesHandler serialPortCfg = new PropertiesHandler(SETTINGS_FILE);
serialPortCfg.set(SERIALPORT_KEY, serialPortsCboBox.SelectedItem); serialPortCfg.set(SERIALPORT_KEY, serialPortsCboBox.SelectedItem);
serialPortCfg.Save(); serialPortCfg.Save();
if (!initializing)
{
if (!initializing) {
reconnectBtn.Visible = false; reconnectBtn.Visible = false;
connect(); connect();
} }
} }
private void onSerialPortDataReceived(object sender, SerialDataReceivedEventArgs e)
{
private void onSerialPortDataReceived(object sender, SerialDataReceivedEventArgs e) {
string s = readSerialPortData((SerialPort)sender); string s = readSerialPortData((SerialPort)sender);
try
{
try {
Message msg = JsonConvert.DeserializeObject<Message>(s); Message msg = JsonConvert.DeserializeObject<Message>(s);
if (msg.Sender.Equals(Message.CMD_SENDER_AN) && msg.Cmd.Equals(Message.CMD_VER) && msg.Val.Equals(firmwareVersion))
{
if (msg.Sender.Equals(Message.CMD_SENDER_AN) && msg.Cmd.Equals(Message.CMD_VER) && msg.Val.Equals(firmwareVersion)) {
RequestPending = false; RequestPending = false;
BeginInvoke(new EventHandler(delegate
{
BeginInvoke(new EventHandler(delegate {
sendRelayStatusCmd(); sendRelayStatusCmd();
Connected = true; Connected = true;
initStatusLbl.Text = "Verbunden"; initStatusLbl.Text = "Verbunden";
powerSwitchButton.Enabled = true; powerSwitchButton.Enabled = true;
statusTimer.Enabled = true; statusTimer.Enabled = true;
})); }));
}
else if (msg.Sender.Equals(Message.CMD_SENDER_AN) && msg.Cmd.Equals(Message.CMD_STATUS_RELAY))
{
} else if (msg.Sender.Equals(Message.CMD_SENDER_AN) && msg.Cmd.Equals(Message.CMD_STATUS_RELAY)) {
RequestPending = false; RequestPending = false;
BeginInvoke(new EventHandler(delegate
{
if (msg.Val.Equals(Message.CMD_VAL_ON))
{
BeginInvoke(new EventHandler(delegate {
if (msg.Val.Equals(Message.CMD_VAL_ON)) {
powerStateLed.BackgroundImage = FSRemotePowerSwitch.Properties.Resources.blue_led_on; powerStateLed.BackgroundImage = FSRemotePowerSwitch.Properties.Resources.blue_led_on;
powerSwitchButton.CheckStateChanged -= onSwitchCheckStateChanged; powerSwitchButton.CheckStateChanged -= onSwitchCheckStateChanged;
powerSwitchButton.Checked = true; powerSwitchButton.Checked = true;
powerSwitchButton.CheckStateChanged += onSwitchCheckStateChanged; powerSwitchButton.CheckStateChanged += onSwitchCheckStateChanged;
}
else if (msg.Val.Equals(Message.CMD_VAL_OFF))
{
} else if (msg.Val.Equals(Message.CMD_VAL_OFF)) {
powerStateLed.BackgroundImage = FSRemotePowerSwitch.Properties.Resources.blue_led_off; powerStateLed.BackgroundImage = FSRemotePowerSwitch.Properties.Resources.blue_led_off;
powerSwitchButton.CheckStateChanged -= onSwitchCheckStateChanged; powerSwitchButton.CheckStateChanged -= onSwitchCheckStateChanged;
powerSwitchButton.Checked = false; powerSwitchButton.Checked = false;
} }
})); }));
} }
}
catch (Exception ex) when (ex is Newtonsoft.Json.JsonReaderException ||
ex is Newtonsoft.Json.JsonSerializationException)
{
} catch (Exception ex) when (ex is Newtonsoft.Json.JsonReaderException ||
ex is Newtonsoft.Json.JsonSerializationException) {
RequestPending = false; RequestPending = false;
initStatusLbl.Text = "Json Deserialize Exception!"; initStatusLbl.Text = "Json Deserialize Exception!";
serialPort.DiscardInBuffer(); serialPort.DiscardInBuffer();
} }
} }
private void onOpenBtnClick(object sender, EventArgs e)
{
if (serialPort.PortName != "COM1" && !serialPort.IsOpen)
{
private void onOpenBtnClick(object sender, EventArgs e) {
if (serialPort.PortName != "COM1" && !serialPort.IsOpen) {
serialPort.Open(); serialPort.Open();
openBtn.Enabled = false; openBtn.Enabled = false;
closeBtn.Enabled = true; closeBtn.Enabled = true;
} }
} }
private void onCloseBtnClick(object sender, EventArgs e)
{
if (serialPort.IsOpen)
{
private void onCloseBtnClick(object sender, EventArgs e) {
if (serialPort.IsOpen) {
serialPort.Close(); serialPort.Close();
openBtn.Enabled = true; openBtn.Enabled = true;
closeBtn.Enabled = false; closeBtn.Enabled = false;
} }
} }
private void onReconnectBtnClick(object sender, EventArgs e)
{
private void onReconnectBtnClick(object sender, EventArgs e) {
reconnectBtn.Visible = false; reconnectBtn.Visible = false;
connect(); connect();
} }
private void onSwitchCheckStateChanged(object sender, EventArgs e)
{
if (powerSwitchButton.Checked)
{
private void onSwitchCheckStateChanged(object sender, EventArgs e) {
if (powerSwitchButton.Checked) {
sendRelayPowerCmd(Message.CMD_VAL_ON); sendRelayPowerCmd(Message.CMD_VAL_ON);
}
else
{
} else {
sendRelayPowerCmd(Message.CMD_VAL_OFF); sendRelayPowerCmd(Message.CMD_VAL_OFF);
} }
} }
private void onWebCamPowerSwitchCheckStateChanged(object sender, EventArgs e)
{
if (webCamRotatorPowerSwitch.Checked)
{
private void onWebCamPowerSwitchCheckStateChanged(object sender, EventArgs e) {
if (webCamRotatorPowerSwitch.Checked) {
sendWebCamPowerCmd(Message.CMD_VAL_ON); sendWebCamPowerCmd(Message.CMD_VAL_ON);
}
else
{
} else {
sendWebCamPowerCmd(Message.CMD_VAL_OFF); sendWebCamPowerCmd(Message.CMD_VAL_OFF);
} }
} }
private String readSerialPortData(SerialPort serialPort)
{
private String readSerialPortData(SerialPort serialPort) {
string data = ""; string data = "";
while (serialPort.BytesToRead > 0)
{
while (serialPort.BytesToRead > 0) {
data += serialPort.ReadExisting(); data += serialPort.ReadExisting();
Thread.Sleep(50); Thread.Sleep(50);
} }
return data; return data;
} }
private void sendVersionCmd()
{
private void sendVersionCmd() {
Message msg = new Message(); Message msg = new Message();
msg.Sender = Message.CMD_SENDER_PC; msg.Sender = Message.CMD_SENDER_PC;
msg.Cmd = Message.CMD_VER; msg.Cmd = Message.CMD_VER;
msg.Val = null; msg.Val = null;
string msJson = JsonConvert.SerializeObject(msg); string msJson = JsonConvert.SerializeObject(msg);
if (serialPort.IsOpen && !RequestPending)
{
if (serialPort.IsOpen && !RequestPending) {
serialPort.Write(msJson); serialPort.Write(msJson);
RequestPending = true; RequestPending = true;
} }
} }
private void sendRelayPowerCmd(string value)
{
private void sendRelayPowerCmd(string value) {
Message msg = new Message(); Message msg = new Message();
msg.Sender = Message.CMD_SENDER_PC; msg.Sender = Message.CMD_SENDER_PC;
msg.Cmd = Message.CMD_POWER_RELAY; msg.Cmd = Message.CMD_POWER_RELAY;
msg.Val = value; msg.Val = value;
string msJson = JsonConvert.SerializeObject(msg); string msJson = JsonConvert.SerializeObject(msg);
if (serialPort.IsOpen && !RequestPending)
{
if (serialPort.IsOpen && !RequestPending) {
serialPort.Write(msJson); serialPort.Write(msJson);
RequestPending = true; RequestPending = true;
} }
} }
private void sendRelayStatusCmd()
{
private void sendRelayStatusCmd() {
Message msg = new Message(); Message msg = new Message();
msg.Sender = Message.CMD_SENDER_PC; msg.Sender = Message.CMD_SENDER_PC;
msg.Cmd = Message.CMD_STATUS_RELAY; msg.Cmd = Message.CMD_STATUS_RELAY;
msg.Val = null; msg.Val = null;
string msJson = JsonConvert.SerializeObject(msg); string msJson = JsonConvert.SerializeObject(msg);
if (serialPort.IsOpen && !RequestPending)
{
if (serialPort.IsOpen && !RequestPending) {
serialPort.Write(msJson); serialPort.Write(msJson);
RequestPending = true; RequestPending = true;
} }
} }
private void sendWebCamZeroCmd()
{
private void sendWebCamZeroCmd() {
Message msg = new Message(); Message msg = new Message();
msg.Sender = Message.CMD_SENDER_PC; msg.Sender = Message.CMD_SENDER_PC;
msg.Cmd = Message.CMD_ZERO_CAM; msg.Cmd = Message.CMD_ZERO_CAM;
msg.Val = "0"; msg.Val = "0";
string msJson = JsonConvert.SerializeObject(msg); string msJson = JsonConvert.SerializeObject(msg);
if (serialPort.IsOpen && !RequestPending)
{
if (serialPort.IsOpen && !RequestPending) {
serialPort.Write(msJson); serialPort.Write(msJson);
RequestPending = true; RequestPending = true;
} }
} }
private void sendWebCamAzimutCmd()
{
private void sendWebCamAzimutCmd() {
Message msg = new Message(); Message msg = new Message();
msg.Sender = Message.CMD_SENDER_PC; msg.Sender = Message.CMD_SENDER_PC;
msg.Cmd = Message.CMD_AZIMUT_CAM; msg.Cmd = Message.CMD_AZIMUT_CAM;
msg.Val = webCamRotator.Value.ToString(); msg.Val = webCamRotator.Value.ToString();
string msJson = JsonConvert.SerializeObject(msg); string msJson = JsonConvert.SerializeObject(msg);
if (serialPort.IsOpen && !RequestPending)
{
if (serialPort.IsOpen && !RequestPending) {
serialPort.Write(msJson); serialPort.Write(msJson);
RequestPending = true; RequestPending = true;
} }
} }
private void sendWebCamPowerCmd(string value)
{
private void sendWebCamPowerCmd(string value) {
Message msg = new Message(); Message msg = new Message();
msg.Sender = Message.CMD_SENDER_PC; msg.Sender = Message.CMD_SENDER_PC;
msg.Cmd = Message.CMD_POWER_CAM; msg.Cmd = Message.CMD_POWER_CAM;
msg.Val = value; msg.Val = value;
string msJson = JsonConvert.SerializeObject(msg); string msJson = JsonConvert.SerializeObject(msg);
if (serialPort.IsOpen && !RequestPending)
{
if (serialPort.IsOpen && !RequestPending) {
serialPort.Write(msJson); serialPort.Write(msJson);
RequestPending = true; RequestPending = true;
} }
} }
private void onStatusTimerTick(object sender, EventArgs e)
{
private void onStatusTimerTick(object sender, EventArgs e) {
sendRelayStatusCmd(); sendRelayStatusCmd();
} }
private void onMainFormClosing(object sender, FormClosingEventArgs e)
{
private void onMainFormClosing(object sender, FormClosingEventArgs e) {
Stopwatch stopwatch = new Stopwatch(); Stopwatch stopwatch = new Stopwatch();
stopwatch.Start(); stopwatch.Start();
while (RequestPending && stopwatch.ElapsedMilliseconds < 2000)
{
while (RequestPending && stopwatch.ElapsedMilliseconds < 2000) {
Thread.Sleep(50); Thread.Sleep(50);
} }
if (serialPort.IsOpen)
{
if (serialPort.IsOpen) {
serialPort.DiscardInBuffer(); serialPort.DiscardInBuffer();
serialPort.DiscardOutBuffer(); serialPort.DiscardOutBuffer();
serialPort.Close(); serialPort.Close();
} }
} }
private void onWebCamRotatorValueChanged(object Sender)
{
private void onWebCamRotatorValueChanged(object Sender) {
rotatorActValue.Text = webCamRotator.Value.ToString(); rotatorActValue.Text = webCamRotator.Value.ToString();
} }
private void onSetWebCamZero(object sender, EventArgs e)
{
private void onSetWebCamZero(object sender, EventArgs e) {
sendWebCamZeroCmd(); sendWebCamZeroCmd();
} }
private void onWebCamRotatorMiddleAreaClicked(object Sender)
{
private void onWebCamRotatorMiddleAreaClicked(object Sender) {
sendWebCamAzimutCmd(); sendWebCamAzimutCmd();
} }

Loading…
取消
儲存