Daten aus dem Speicher lesen

Wenn Daten aus dem Speicher gelesen werden sollen, ist es ebenfalls notwendig, die Speicherdimensionen zu kennen. Ebenso wie beim Schreiben von Daten muss eine Instanz der Klasse jcontrol.io.Flash ezeugt werden, um auf den Speicher und die entsprechende Bank zugreifen zu können. Für das Lesen aus dem Speicher wird hier die Methode read der Klasse jcontrol.io.Flash verwendet.

Wie die Methode write, so erwartet auch read 4 Paramter:

  •  Die zu lesenden Daten (data) als Byte-Array (byte[]).
  •  Den Startindex (vom Typ int), ab dem das Byte-Array (data) gefüllt werden soll. (ACHTUNG: Erstes Byte hat den Index 0!)
  •  Die Anzahl zu lesender Bytes (length) vom Typ int; Es werden dann die Bytes aus dem Speicher in die Bytes des Arrays mit den Indizes von startindex bis (startindex+length-1) übertragen.
  •  Der Zielsektor (sector vom Typ int), aus dem gelesen werden soll.

Folgendes Programm schreibt wiederum den String "Welcome to JControl!!!" an den Anfang des 0ten Sektors von Bank 0. Allerdings werden diese Daten hier wieder ausgelesen und zum Zwecke der Überprüfung auf der seriellen Schnittstelle ausgegeben.

1    /**
2     * Java file created by JControl/IDE
3     *
4     * @author RSt
5     * @date 04.11.04 15:49
6     *
7     */
8    import java.io.IOException;
9    import jcontrol.comm.RS232;
10    import jcontrol.io.Flash;
11    
12    public class FlashRead {
13    
14        static Flash myFlash;
15        static RS232 myRS232;
16    
17        public FlashRead() {
18            try{
19                //Initiate Flash object with context to bank 0
20                myFlash = new Flash(0);
21                //Initiate RS232 object for printing messages
22                myRS232 = new RS232();//default = 19200 baud
23            }catch(IOException e){
24            }
25        }
26    
27        public static void main(String[] args) {
28            new FlashRead();
29            String writeThis = "Welcome to JControl!!!";
30            byte[] data = writeThis.getBytes();
31            byte[] read = new byte[data.length];
32            try{
33                //write data to memory:
34                myFlash.write(data, 0, data.length, 0);
35                //read Flash content:
36                myFlash.read(read, 0, read.length, 0);
37                //write read data to serial port
38                myRS232.println(new String(read));
39            }catch(IOException e){
40            }
41            for(;;);//Stops execution of this program.
42        }
43    }
Listing 3: FlashRead.java

Die Ausgabe des Programms kann nun mit der RS232-Konsole der JControl/IDE oder einem anderen Terminal-Programm überprüft werden.