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.