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;
				}
			}
		}