JAVA — получение кадра NMEA из приемника GPS — дополнительные сведения о методе RandomAccessFile WriteBytes

У меня есть GPS-приемник. Я получаю все кадры NMEA, захваченные этим, в консоли Eclipse.

EDIT - это мой полный класс:

public class GPSFrame extends Observable implements Runnable
{
    static Thread myThread=null;
    static BufferedReader br;
    static BufferedWriter wr;
    static PrintWriter out;
    static InputStreamReader isr;
    static OutputStreamWriter osw;
    static java.io.RandomAccessFile port; 


    /**  CONSTRUCTOR **/
    public  GPSFrame()
    {    
         myThread=new Thread(this);
    }

    public void start()
    {
        try 
        {
            port=new java.io.RandomAccessFile("COM5","rwd");
            port.writeBytes("\r\n");
            port.writeBytes("c,31,0,0,5\r\n");
            port.writeBytes("T,1000,1\r\n");
        }
        catch (Exception e){ System.out.println("start "+e.toString()); }
        // The thread start automatically run() method
        myThread.start();
    }

/**********************************************************************************************
 *************************** RETRIEVE GPS FRAMES AND SEND TO SERVEUR **************************
 **********************************************************************************************/
    public void run() 
    {
        System.out.println("lecture COM...");
        // INFINIT LOOP - GPSFrame is always listening for the GPS receptor
        for(;;)
        {
            String st = null;
            try 
            {
                st=port.readLine();
                String[]gpsframe=st.split(",");

                /* IMPORTANT - DON'T FORGET SETCHANGED() or GPSFrame'll never
                 * notify UPDATE() ServerBoard method - We'll never see any changes */
                setChanged();
                notifyObservers(st);

            } 
            catch (IOException e){ System.out.println(e.getMessage()); }
            // Show in console
            System.out.println(st);
        }
    }   
}

Для этого я поискал в сети. Но я не понимаю метод start(). Что означают c, T и число, которое мы присваиваем writeBytes?

(Я также разместил вопрос об этом коде, но по другой причине. Если вы можете мне помочь, я буду чрезвычайно благодарен JAVA - GPS RECEPTOR отправляет странные/закодированные кадры в консоль)

Может кто-нибудь просветить меня, пожалуйста?

Заранее большое спасибо ! :)

С наилучшими пожеланиями,

тофу


person Tofuw    schedule 19.12.2013    source источник


Ответы (1)


Что ж, в качестве документации для writeBytes просто записывает в файл последовательность байтов (в вашем случае обычные символы ASCII: c, , , 3, 1 и т. д.).

Все, что заключено в двойные кавычки, записывается как есть, без дополнительной логики для понимания того, что может означать T, c или конкретное число.

Надеюсь, это поможет.

person kiruwka    schedule 19.12.2013
comment
Спасибо за Ваш ответ. Но что это означает, когда эти последовательности байтов принимаются рецептором? - person Tofuw; 19.12.2013
comment
Что ж, это вы должны проверить с документацией GPS-приемника. - person kiruwka; 19.12.2013