diff --git a/GroundStation/v2/ExampleServer.java b/GroundStation/v2/ExampleServer.java new file mode 100644 index 0000000..8621fdc --- /dev/null +++ b/GroundStation/v2/ExampleServer.java @@ -0,0 +1,116 @@ +import java.util.Scanner; + +import java.lang.*; +import java.io.*; +import java.net.*; + +import javax.swing.*; + +class ExampleServer { + private ServerSocket srvr; + private Socket skt; + private BufferedReader in; + private PrintWriter out; + + private MessageContent txContent; + private MessageContent rxContent; + + private JFrame window; + private JCheckBox motorsEnabled; + private JCheckBox motorTest; + private JTextArea motorTestValues; + + public ExampleServer( int port ) { + window = new JFrame( "Example Server" ); + window.getContentPane().setLayout( new BoxLayout( window.getContentPane(), BoxLayout.PAGE_AXIS ) ); + + motorsEnabled = new JCheckBox( "motors enabled" ); + motorsEnabled.setEnabled( false ); + window.getContentPane().add( motorsEnabled ); + + motorTest = new JCheckBox( "motor test" ); + motorTest.setEnabled( false ); + window.getContentPane().add( motorTest ); + + motorTestValues = new JTextArea( "MOTOR TEST VALUES:\n" + + " m3 ^ m1 \n" + + " ---- | ---- \n" + + " FRONT \n" + + " m2 m0 \n" + + " ---- ---- " ); + motorTestValues.setEnabled( false ); + window.getContentPane().add( motorTestValues ); + + window.setBounds( 850, 100, 10, 10 ); + window.pack(); + window.setVisible(true); + + System.out.println( "Setting up TCP server..." ); + try { + System.out.print( "Setting up server\n" ); + srvr = new ServerSocket( port ); + System.out.println( "address: " + srvr.getInetAddress() ); + System.out.println( "port: " + srvr.getLocalPort() ); + System.out.println( "Waiting for connection..." ); + skt = srvr.accept(); + System.out.println( "Server has connected!" ); + + in = new BufferedReader( new InputStreamReader( skt.getInputStream() ) ); + out = new PrintWriter( skt.getOutputStream(), true); + + while( true ) { + while( !in.ready() ); + + try { + String messageIn = in.readLine(); + Scanner temp = new Scanner( messageIn ); + boolean motorsEnabledBool = false; + boolean motorTesting = false; + int[] motorValues = { 0, 0, 0, 0 }; + + while( temp.hasNext() ) { + String next = temp.next(); + if( next.indexOf( "D" ) >= 0 || next.indexOf( "DISCONNECT" ) >= 0 ) { + System.out.print( "\n[ .... ] DISCONNECTING..." ); + skt.close(); + srvr.close(); + System.out.println( "\r[ DONE ]" ); + System.exit(0); + } + else if( next.indexOf( "H" ) == 0 ) { + //System.out.print( "\nH " ); + } + else if( next.indexOf( "E" ) == 0 ) { + motorsEnabledBool = true; + //System.out.print( "E " ); + } + else if( next.indexOf( "M" ) == 0 ) { + motorTesting = true; + int motorNum = Integer.parseInt( next.substring( 1, 3 ) ); + int motorVal = Integer.parseInt( next.substring( 4, 8 ) ); + motorValues[ motorNum ] = motorVal; + //System.out.print( "M " ); + } + } + motorsEnabled.setSelected( motorsEnabledBool ); + motorTest.setSelected( motorTesting ); + motorTestValues.setText( + "MOTOR TEST VALUES:\n" + + " m3 ^ m1 \n" + + String.format( " %04d | %04d \n", motorValues[3], motorValues[1] ) + + " FRONT \n" + + " m2 m0 \n" + + String.format( " %04d | %04d \n", motorValues[2], motorValues[0] ) ); + } + catch( IOException ex ) {} + } + } + catch( Exception ex ) { + System.out.println( ex ); + } + } + + public static void main( String[] args ) { + ExampleServer example = new ExampleServer( 51717 ); + } +} \ No newline at end of file