private async void SendCommandAsync( WakePacket packet ) { if( Current_com_port == null || packet == null ) { return; } try { await Current_com_port.WriteAsync( packet ); } catch( TaskCanceledException ) { //ignore } catch( Exception ex ) { if( Current_com_port != null ) { Current_com_port.Close(); Current_com_port = null; } MessageBox.Show( ex.Message ); } }
private void Robot_car_arduino_controller_form_FormClosed( object sender, FormClosedEventArgs e ) { if( Current_com_port != null ) { Current_com_port.Close(); Current_com_port = null; } }
private async void Open_the_com_port_button_Click( object sender, EventArgs e ) { try { Open_the_com_port_button.Enabled = false; cbComPorts.Enabled = false; Joystick_controller.Center_the_joystick(); Update_joystick_coordinates_text_on_the_screen(); if( Current_com_port != null ) { Current_com_port.Close(); Current_com_port = null; return; } string Com_port_name = cbComPorts.SelectedValue.ToString(); Task<Com_port_class> openComPort = new Task<Com_port_class>( () => { return new Com_port_class( Com_port_name ); } ); openComPort.Start(); Current_com_port = await openComPort; MessageBox.Show( "COM port \"" + Com_port_name + "\" has been opened successfully." ); } catch( Exception Ex ) { if( Current_com_port != null ) { Current_com_port.Close(); Current_com_port = null; } MessageBox.Show( Ex.Message ); } finally { Open_the_com_port_button.Enabled = true; if( Current_com_port != null ) { Open_the_com_port_button.Text = DisconnectButtonText; } else { Open_the_com_port_button.Text = ConnectButtonText; cbComPorts.Enabled = true; } } }