Page 62 - The Definitive Guide to Building Java Robots
P. 62

Preston_5564C02.fm  Page 43  Wednesday, September 14, 2005  5:42 AM



                                                                     CHAPTER 2  ■  SERIAL COMMUNICATION   43



                        Example 2-12. Controller.java
                        package com.scottpreston.javarobot.chapter2;

                        public abstract class Controller implements JController {
                            private JSerialPort serialPort;

                                public Controller(JSerialPort sPort) throws Exception {
                                serialPort = sPort;
                                serialPort.setDTR(false);
                            }

                            public String execute(byte[] cmd, int delay) throws Exception {
                                String out = null;
                                if ((serialPort instanceof WebSerialClient)
                                        && delay <= WebSerialClient.MAX_DELAY) {
                                    serialPort.setTimeout(delay);
                                    if (delay == 0) {
                                        serialPort.write(cmd);
                                    } else {
                                        out = serialPort.readString(cmd);
                                    }
                                } else {
                                    if (delay == 0) {
                                        serialPort.write(cmd);
                                    } else {
                                        serialPort.write(cmd);
                                        Utils.pause(delay);
                                        out = serialPort.readString();
                                    }

                                }
                                return out;
                            }

                            public byte[] execute2(byte[] cmd, int delay) throws Exception {
                                byte[] out = null;
                                if ((serialPort instanceof WebSerialClient)
                                        && delay <= WebSerialClient.MAX_DELAY) {
                                    serialPort.setTimeout(delay);
                                    if (delay == 0) {
                                        serialPort.write(cmd);
                                    } else {
                                        out = serialPort.read(cmd);
                                    }
   57   58   59   60   61   62   63   64   65   66   67