Einfügen als Gemeinsames Modul
Funktionen:
init()
Beschreibung Nach oben
Das Modul trx.c2 ist der Treiber für den 433 MHz Transceiver TRX
433 (CONRAD Best.-Nr. 190045),
um diesen mit der C-Control II ansteuern zu
können. Unterstützt wird sowohl
die C-Control II Unit (auch auf dem
CONRAD-Roboter CCRP5) mit
angeschlossenem LC-Display als auch die C-Control II Station.
Einfügen als Gemeinsames Modul Nach oben
Die Datei trx.c2 in das Verzeichnis .\CControl2\UserLib
der IDE
kopieren und
in der Datei modules.txt die Zeile trx.c2 am Ende einfügen (falls sie noch nicht
vorhanden ist!).
Ein zusätzliches Ausrufezeichen unmittelbar nach einem Modulnamen in modules.txt
bestimmt,
daß das Modul in jedem neuen Projekt von Anfang an aktiviert wird.
Konstanten Nach oben
Die hier angeführten Modus-Konstanten werden für die erweiterten Sende- und
Empfangsfunktionen
benötigt. Sie kennzeichnen die jeweiligen Datenrahmen (RF-Frames)
im Datenbyte 0 (DB0),
so dass der Inhalt jedes Frames eindeutig
identifizierbar wird:
const MODE_POWERcontrol = 1;
// Kontrolle Sendeleistung
const MODE_CHANNELcontrol = 2;
// Kontrolle Kanal
const MODE_PREAMBLEcontrol = 3;
// Kontrolle Präambel
const MODE_DEVADDRcontrol = 4;
// Kontrolle Geräteadresse
const MODE_FRAMEcontrol = 5;
// Kontrolle Framelänge
const MODE_DIRECTcontrol =10; //
Direktkontrolle über CF
const MODE_REPEATcontrol =11; //
Kontrolle Sendewiederholung
const MODE_REQUESTcontrol =12; //
Kontrolle Sendeanforderung
const MODE_CODEcontrol =13;
//
Kontrolle Kontrollcode
const MODE_STATUStrx =20;
// Status Datentransfer
const MODE_BYTEtrx =21;
// Byte Datentransfer
const MODE_INTtrx =22;
// Integer Datentransfer
const MODE_LONGtrx =23;
// Long Datentransfer
const MODE_FLOATtrx =24;
// Float Datentransfer
const MODE_STRINGtrx =25;
// String
Datentransfer
const MODE_DATEtrx =26;
// Datum
Datentransfer
const MODE_TIMEtrx =27;
// Zeit
Datentransfer
Variablen Nach oben
Mit den hier angeführten Variablen werden Grundeinstellungen des TRX 433
gespeichert und Betriebszustände signalisiert:
/******************************************************************/
long LAST_TX_TIME; // Sendezeit des letzten
RF-Frames
long
LAST_RX_TIME; // Empfangszeit des letzten RF-Frames
byte
TX_REQUEST; // Sendeanforderung
[LO/HI]
byte
TX_ERROR; // Sendefehler
[LO/HI]
byte RX_ERROR;
// Empfangsfehler
[LO/HI]
byte CONTROL_CODE; // Kontrollcode
[0..255]
/******************************************************************/
//Grundeinstellungen TRX 433:
byte POWER;
// Sendeleistung
[0..255]
byte CHANNEL; // Kanal (Frequenz)
[0..4]
byte PREAMBLE; // Präambel
[1..255]
byte ADDRESSED_MODE; // Adressierter Modus
[LO/HI]
byte DEVICE_ADDRESS; // Geräteadresse
[1..254]
byte FRAME;
// Datenrahmen
[8]
//Grundeinstellungen Gegenstation (aus-> receiveSTATUS():
byte POWER_2;
// Sendeleistung Gegenstation [0..255]
byte CHANNEL_2; // Kanal (Frequenz)
Gegenstation [0..4]
byte PREAMBLE_2; // Präambel
Gegenstation [1..255]
byte ADDRESSED_MODE_2; // Adressierter Modus
Gegenstation [LO/HI]
byte DEVICE_ADDRESS_2; // Geräteadresse
Gegenstation [1..254]
byte FRAME_2; // Datenrahmen
Gegenstation [8/(16)]
/******************************************************************/
//RF und CF FRAME-BUFFER:
byte DB0; //
E
byte DB1; //
M
byte DB2; //
A
byte DB3; //
R
byte DB4; //
F
byte DB5; //
-
byte DB6; //
F
byte ADDR; // C R -> ADDRESS
byte CMD; // O
-> COMMAND
byte HBYTE; // M
-> DATA0
byte LBYTE; // M
-> DATA1
Die Variablen LAST_TX_TIME und LAST_RX_TIME enthalten die
letzte Sende- bzw. Empfangszeit
eines RF-Frames. Diese Systemzeiten werden für
zeitgesteuerte Sendeprotokolle im Multi Master Betrieb
benötigt, bei dem die
Teilnehmer bestimmte "Zeit-Slots" zum Senden oder Empfang zugeteilt
bekommen.
TX_REQUEST und TX_ERROR signalisieren beim "Control-TRX"
(siehe sendCONTROL() und
receiveCONTROL()!), dass eine Sendeanforderung bzw.
ein Sendefehler vorliegt.
Beim "Control-TRX" kann auch ein CONTROL_CODE
(Standard: 0) benutzt werden, um
eine Kontrollfunktion auf einige oder eine
Gruppe von Empfängern anzuwenden, die dann
denselben Kontrollcode wie der
Sender haben.
Bei allen erweiterten Empfangsfunktionen signalisiert RX_ERROR, ob ein Datenrahmen korrekt empfangen wurde.
Die Variablen POWER, CHANNEL, PREAMBLE, ADDRESSED_MODE, DEVICE_ADDRESS,
FRAME
enthalten die Grundeinstellungen des TRX 433. Ihr Inhalt bleibt
aktuell, wenn nur die Funktionen
dieses Moduls zur Änderung von Einstellungen
verwendet werden.
Die Variablen POWER_2, CHANNEL_2, PREAMBLE_2, ADDRESSED_MODE_2,
DEVICE_ADDRESS_2, FRAME_2 enthalten die Grundeinstellungen einer
Gegenstation,
die mit der Funktion receiveSTATUS()
empfangen wurden. Die Werte
von CHANNEL_2 und
FRAME_2 werden in der Regel identisch mit den
eigenen Einstellungen sein.
Es ist jedoch auch möglich, über den "Status-TRX"
z.B. einen Kanalwechsel anzukündigen.
Der "RF FRAME-BUFFER" (Sende-/Empfangs-Datenpuffer) besteht aus den
Bytes ADDR,
DB0..DB6 (8 Byte), der "CF FRAME-BUFFER"
(Befehls-Datenpuffer) aus ADDR, CMD,
HBYTE und LBYTE (4 Byte). Über diese
Variablen erfolgt die Kommunikation mit dem TRX 433.
Funktionen:
init() Nach oben
function init()
Die Funktion init() initialisiert den TRX 433-Treiber und muss am Anfang des thread main aufgerufen werden.
ready() Nach oben
function ready() returns int
Die Funktion ready() liefert den Wert LO (0), wenn keine
Daten empfangen wurden,
oder HI (-1), wenn empfangene Daten aus dem RF
FRAME-BUFFER gelesen werden können.
flush() Nach oben
function flush()
Die Funktion flush() leert den RF FRAME-BUFFER (Empfangs-Datenpuffer).
wait4ready() Nach oben
function wait4ready(long timeout)
Die Funktion wait4ready() wartet solange, bis empfangene
Daten aus dem RF FRAME-BUFFER
gelesen werden können (Rückgabewert: HI) oder
bis die gewählte Timeout-Dauer überschritten ist (Rückgabewert: LO).
timeout | Timeout [max. 2147483647] (ms) |
TRX_SEND() Nach oben
function TRX_SEND()
Die Funktion TRX_SEND() ist die zentrale Senderoutine.
Abhängig vom Wert von ADDR wird entweder ein 4 Byte-CF-Frame (bei ADDR=0),
bestehend aus ADDR (= 0), CMD, HBYTE, LBYTE, oder ein 8 Byte-RF-Frame (bei ADDR ungleich 0),
bestehend aus ADDR, DB0..DB6, gesendet. CF-Frames dienen
zur Kontrolle des eigenen TRX 433,
RF-Frames zur Datenübertragung an andere
Transceiver. Vor dem Aufruf von TRX_SEND() müssen
die Variablen ADDR
und DB0..DB6 (RF-Frame) mit dem gewünschten Sendeinhalt gefüllt werden,
bei einem CF-Frame die Variablen CMD, HBYTE und LBYTE. Nach dem Senden eines RF-Frames
speichert LAST_TX_TIME die
Systemzeit, um zeitgesteuerte Sendeprotokolle zu ermöglichen.
Die mit TRX_SEND()
gesendeten RF-Frames können von anderen TRX 433 empfangen werden,
wenn diese
nicht im adressierten Modus arbeiten, oder wenn deren Geräteadresse (DEVICE_ADDRESS)
mit der Empfängeradresse (in ADDR) überein stimmt.
TRX_RECEIVE() Nach oben
function TRX_RECEIVE()
Die Funktion TRX_RECEIVE() ist die zentrale Empfangsroutine für 8
Byte-RF-Frames.
Der empfangene RF-Frame steht dann in den Variablen ADDR
(Senderadresse),
DB0..DB6 (Daten) zur Verfügung. Im adressierten Modus
werden nur die RF-Frames
an den Computer gemeldet, deren Senderadresse (in ADDR) mit der
eigenen
Geräteadresse (DEVICE_ADDRESS) überein stimmt. Nach dem Empfang eines RF-Frames
speichert LAST_RX_TIME die
Systemzeit, um zeitgesteuerte Sendeprotokolle zu ermöglichen.
Vor dem Aufruf
von TRX_RECEIVE() muss mit den Funktionen ready()
oder wait4ready()
die
Datenleitung (DATA) abgefragt werden. Ist der Rückgabewert dieser
Funktionen HI,
dann können die Daten mit TRX_RECEIVE() eingelesen werden.
getSTATUS() Nach oben
function getSTATUS() returns int
Die Funktion getSTATUS() liest einen 4 Byte-Status-Frame vom
eigenen TRX 433.
Dieser enthält in LBYTE die Geräteadresse,
die in DEVICE_ADDRESS gespeichert
und zusätzlich als Rückgabewert
von getSTATUS() ausgegeben wird.
Wenn die Geräteadresse 255 ist,
arbeitet der Transceiver im nicht-adressierten Modus.
Die Variable ADDRESSED_MODE
wird dann auf LO gesetzt, sonst auf HI (= adressierter Modus).
CHset() Nach oben
function CHset(byte ch)
Mit CHset() erfolgt die Kanaleinstellung.
Es gibt 5 Kanäle (ch
-> 0:
433,3 / 1: 433,5 / 2: 433,9 / 3: 434,2 / 4: 434,5 MHz).
Die Kanal Nummer wird in
CHANNEL gespeichert.
ch | Kanal (Frequenz) [0..4] |
CH0set() Nach oben
function CH0set()
Die Funktion CH0set() stellt den Kanal 0 (433,3 MHz) ein.
Die Kanal
Nummer wird in CHANNEL gespeichert.
CH1set() Nach oben
function CH1set()
Die Funktion CH1set() stellt den Kanal 1 (433,5 MHz) ein.
Die Kanal
Nummer wird in CHANNEL gespeichert.
CH2set() Nach oben
function CH2set()
Die Funktion CH2set() stellt den Kanal 2 (433,9 MHz) ein.
Die Kanal
Nummer wird in CHANNEL gespeichert.
Kanal 2 ist der Standard-Kanal nach
einem Reset des TRX 433.
CH3set() Nach oben
function CH3set()
Die Funktion CH3set() stellt den Kanal 3 (434,2 MHz) ein.
Die Kanal
Nummer wird in CHANNEL gespeichert.
CH4set() Nach oben
function CH4set()
Die Funktion CH4set() stellt den Kanal 4 (434,5 MHz) ein.
Die Kanal
Nummer wird in CHANNEL gespeichert.
PWRset() Nach oben
function PWRset(byte pwr)
Mit PWRset() erfolgt die Einstellung der Sendeleistung.
Ein Wert von
15 für pwr entspricht z.B. 0 dBm. Die Sendeleistung wird in POWER
gespeichert.
pwr | Sendeleistung (-43..+10 dBm) [0..255] |
PWR0set() Nach oben
function PWR0set()
Die Funktion PWR0set() stellt die minimale Sendeleistung -43 dBm [0]
ein.
Die Sendeleistung wird in POWER gespeichert.
PWR1set() Nach oben
function PWR1set()
Die Funktion PWR1set() stellt die Sendeleistung -20 dBm [1] ein.
Die
Sendeleistung wird in POWER gespeichert.
PWR2set() Nach oben
function PWR2set()
Die Funktion PWR2set() stellt die Sendeleistung -15 dBm [2] ein.
Die
Sendeleistung wird in POWER gespeichert.
PWR3set() Nach oben
function PWR3set()
Die Funktion PWR3set() stellt die Sendeleistung -10 dBm [4] ein.
Die
Sendeleistung wird in POWER gespeichert.
PWR4set()
Nach oben
function PWR4set()
Die Funktion PWR4set() stellt die Sendeleistung -5 dBm [8] ein.
Die
Sendeleistung wird in POWER gespeichert.
PWR5set() Nach oben
function PWR5set()
Die Funktion PWR5set() stellt die Sendeleistung 0 dBm [15] ein.
Die
Sendeleistung wird in POWER gespeichert. 0 dBm ist die
Standard-Sendeleistung nach einem Reset des TRX 433.
PWR6set() Nach oben
function PWR6set()
Die Funktion PWR6set() stellt die Sendeleistung +5 dBm [111] ein.
Die Sendeleistung wird in POWER gespeichert.
PWR7set() Nach oben
function PWR7set()
Die Funktion PWR7set() stellt die maximale Sendeleistung +10 dBm
[255] ein.
Die Sendeleistung wird in POWER gespeichert.
TRXreset()
Nach oben
function TRXreset()
Die Funktion TRXreset() bewirkt ein Reset des TRX 433.
Dadurch werden die
Standardwerte wieder hergestellt: Sendeleistung 0 dBm (POWER = 15),
Präambel 10 (PREAMBLE = 10), Frequenz 433,9 MHz (CHANNEL = 2),
Datenrahmen 8 Byte (FRAME = 8), nicht-adressierter Modus (DEVICE_ADDRESS
= 255, ADDRESSED_MODE = LO).
FRAME8set() Nach oben
function FRAME8set()
Mit der Funktion FRAME8set() wird ein Datenrahmen von 8 Byte
eingestellt.
Dies ist gleichzeitig die Standard-Einstellung nach einem Reset des
TRX 433.
Da mit c2 kein 16 Byte-Datenrahmen möglich ist, wird diese
Funktion normalerweise
nicht benötigt (d.h. es wird immer ein 8 Byte-Datenrahmen verwendet).
ADDRset() Nach oben
function ADDRset(byte dev_addr)
Mit der Funktion ADDRset() wird der adressierte Modus
eingeschaltet (ADDRESSED_MODE = HI)
und eine Geräteadresse (DEVICE_ADDRESS)
mit dem Parameter dev_addr festgelegt.
Beim Senden von RF-Frames wird die
Geräteadresse in ADDR übermittelt.
Beim Empfänger werden im adressierten Modus
nur die
RF-Frames an den Computer gemeldet,
deren Senderadresse mit der eigenen
Geräteadresse überein stimmt.
dev_addr | Geräte-Adresse [1..254] |
PREAMBLEset() Nach oben
function PREAMBLEset(byte preamble)
Mit der Funktion PREAMBLEset() wird die Länge der Präambel
(siehe Bedienungsanleitung des TRX 433, Seite 16!)
bestimmt. Der Standardwert
ist 10. Ein höherer Wert verbessert die Datensicherheit,
verringert aber die
Datenrate. Bei der Verwendung dieser Funktion ist Vorsicht geboten,
weil
unterschiedliche Präambel-Längen u.U. eine Kommunikation zwischen zwei TRX 433
unmöglich machen!
preamble | Präambel [1..255] |
FSKset() Nach oben
function FSKset(byte state)
Die Funktion FSKset() setzt die FSK-Frequenz auf "Hoch" (state = HI) oder "Niedrig" (state = LO).
state | Status [LO/HI] |
TEST_txon() Nach oben
function TEST_txon()
Die Funktion TEST_txon() schaltet den Sender des TRX 433 zu
Testzwecken ein.
Diese Funktion wird normalerweise nicht benötigt. Bei der
Verwendung von TEST_txon()
ist zu beachten, dass der "Duty Cycle"
von 10% nicht überschritten wird (d.h. max. 6 Minuten Sendezeit pro Stunde)!
TEST_rxon() Nach oben
function TEST_rxon()
Die Funktion TEST_rxon() schaltet den Empfänger des TRX 433
ein.
Diese Funktion wird normalerweise nicht benötigt.
TEST_audio1k() Nach oben
function TEST_audio1k()
Die Funktion TEST_audio1k() sendet eine Dauerfrequenz von
1kHz zu Testzwecken.
Bei der Verwendung von TEST_audio1k() ist zu
beachten, dass der "Duty Cycle"
von 10% nicht überschritten wird
(d.h. max. 6 Minuten Sendezeit pro Stunde)!
TEST_audio2k() Nach oben
function TEST_audio2k()
Die Funktion TEST_audio2k() sendet eine Dauerfrequenz von
2kHz zu Testzwecken.
Bei der Verwendung von TEST_audio2k() ist zu
beachten, dass der "Duty Cycle"
von 10% nicht überschritten wird
(d.h. max. 6 Minuten Sendezeit pro Stunde)!
TEST_FREQset() Nach oben
function TEST_FREQset(float freq, int deviation)
Die Funktion TEST_FREQset() stellt eine andere als die mit den 5
Kanälen mögliche
Sende-/Empfangsfrequenz ein. Diese Funktion wird
normalerweise nicht benötigt und
entspricht nicht der bestimmungsgemäßen
Verwendung des TRX 433!
freq | Frequenz [z.B. 433.95] (MHz) |
deviation | Frequenzhub [z.B. 10] (kHz) |
sendCONTROL() Nach oben
function sendCONTROL(byte mode, byte param)
Die Funktion sendCONTROL() sendet einen Control-Frame an einen
anderen TRX 433,
der hierdurch "ferngesteuert" (kontrolliert) oder zu
einem bestimmten Verhalten veranlasst werden soll.
Der Parameter mode
legt fest, welche Kontroll-Aufgabe (siehe Modus-Konstanten der Form
"MODE_XXXXXcontrol"
[1..19]!) beabsichtigt ist; param bestimmt, wie die gewählte
Kontroll-Aufgabe
ausgeführt wird. Beispielsweise besagt die Konstante MODE_POWERcontrol
[1],
dass die Sendeleistung ferngesteuert werden soll. Der Parameter param
enthält dann die gewünschte
Sendeleistung [0..255]. Bei der Direktkontrolle (MODE_DIRECTcontrol)
wird param nicht benötigt,
sondern in DB4..DB6 zusätzlich der CF-Frame (CMD, HBYTE, LBYTE)
übertragen.
Bei allen anderen Kontrollfunktionen sind DB4..DB6 frei und
können zur Übermittlung
weiterer Kontrollinformationen genutzt werden.
mode | Modus (Kontroll-Aufgabe) [1..19] |
param | Parameter [0..255] |
receiveCONTROL() Nach oben
function receiveCONTROL(byte mode, byte tx_addr) returns int
Die Funktion receiveCONTROL() empfängt Control-Frames, die mit sendCONTROL()
gesendet wurden.
Damit wird der TRX 433 fernsteuerbar bzw. kontrollierbar.
Der
Parameter mode legt fest, welche Kontroll-Aufgabe erwartet bzw.
zugelassen wird.
Nur wenn sich Sender und Empfänger einig über die
Kontroll-Aufgabe sind, wird diese hier auch ausgeführt.
(Ausnahme: Ist mode
gleich 255, dann wird jede vom Sender übermittelte Kontroll-Aufgabe zugelassen
und ausgeführt.)
Setzt
der Empfänger mode gleich 0,
dann ist jede Kontrolle gesperrt. Der Parameter tx_addr bestimmt,
von
welcher Senderadresse Control-Frames angenommen werden. Ist tx_addr
gleich 0,
dann werden
Control-Frames von jeder Senderadresse akzeptiert. Sender und Empfänger von
Control-Frames müssen
auch den selben CONTROL_CODE verwenden (Standard:
0). Durch unterschiedliche Kontrollcodes können
von einem Sender mehrere
Gruppen von Empfängern auf unterschiedliche Weise ferngesteuert werden.
DB4..DB6 enthalten ggf. drei
Bytes mit weiteren Kontrollinformationen (Ausnahme: MODE_DIRECTcontrol).
Wenn RX_ERROR
den Wert HI hat, liegt ein Empfangsfehler vor, und der Control-Frame ist evtl. nicht
korrekt
übertragen worden. Vor dem Aufruf
von receiveCONTROL() muss mit den Funktionen ready()
oder
wait4ready() die
Datenleitung (DATA) abgefragt werden.
Ist der Rückgabewert dieser
Funktionen HI, dann können die Daten mit receiveCONTROL() eingelesen werden.
mode | Modus (Kontroll-Aufgabe) [0, 1..19, 255] |
tx_addr | Senderadresse [0, 1..255] |
Folgende Kontroll-Aufgaben sind zur Zeit implementiert:
MODE_POWERcontrol -> Fernsteuerung der Sendeleistung
MODE_CHANNELcontrol -> Fernsteuerung des Kanals
MODE_PREAMBLEcontrol -> Fernsteuerung der Präambel-Länge
MODE_DEVADDRcontrol -> Fernsteuerung der Geräteadresse
MODE_FRAMEcontrol -> Fernsteuerung der Framelänge (nicht benötigt, da immer 8 Byte!)
MODE_DIRECTcontrol -> Direktkontrolle über CF-Frame. Mit diesem
Modus sind alle Einstellungen
des TRX 433 direkt beeinflussbar. Ein Empfänger,
der diese Kontrolle zulässt, muss sehr sicher sein,
dass er dem Sender vertrauen
kann. Dies gilt auch für den Inhalt des CF-Frames, da dieser empfängerseitig nicht
geprüft wird!
MODE_REPEATcontrol -> Mit diesem Modus kann ein Datenempfänger
signalisieren,
ob Daten angekommen sind. Der Datenempfänger sendet dazu einen Control-Frame.
Der ehemalige Datensender (hier der Empfänger des Control-Frames)
erfährt durch die Variable TX_ERROR,
ob seine Daten angekommen sind (LO)
oder nicht (HI). Im letzteren Fall muss die Datensendung ggf. wiederholt werden.
MODE_REQUESTcontrol -> Mit diesem Modus kann eine Datensendung
angefordert werden.
Der Empfänger dieses Control-Frames erfährt durch die
Variable TX_REQUEST,
ob eine Sendeanforderung anliegt (HI) oder nicht
(LO).
MODE_CODEcontrol -> Mit diesem Modus kann der CONTROL_CODE
geändert werden.
Der Sender übermittelt dazu mit sendCONTROL()
einen Control-Frame, der als param (in DB1)
den neuen
Kontrollcode enthält. Der Sender muss diesen Control-Frame noch mit dem alten
Kontrollcode versenden!
Erst danach muss auch der Sender dann ggf. seinen
Kontrollcode ändern.
sendSTATUS() Nach oben
function sendSTATUS()
Die Funktion sendSTATUS() sendet einen Status-Frame.
Er
übermittelt die Inhalte von POWER, CHANNEL, PREAMBLE, FRAME,- also die
Grundeinstellungen des TRX 433.
receiveSTATUS() Nach oben
function receiveSTATUS() returns int
Die Funktion receiveSTATUS() empfängt einen Status-Frame.
Die
Grundeinstellungen des Senders werden in den Variablen POWER_2, CHANNEL_2,
PREAMBLE_2, FRAME_2 abgelegt. Seine Adresse wird in DEVICE_ADDRESS_2
gespeichert
und zusätzlich als Rückgabewert von receiveSTATUS()
ausgegeben. ADDRESSED_MODE_2 enthält LO,
wenn die Adresse des Senders
255 ist, sonst HI. Wenn RX_ERROR
den Wert HI hat,
liegt ein Empfangsfehler vor, und der Status-Frame ist evtl. nicht
korrekt übertragen worden.
Vor dem Aufruf
von receiveSTATUS() muss mit den Funktionen ready()
oder wait4ready() die
Datenleitung (DATA)
abgefragt werden. Ist der Rückgabewert dieser
Funktionen HI,
dann können die Daten mit receiveSTATUS() eingelesen werden.
sendBYTE() Nach oben
function sendBYTE(byte var)
Die Funktion sendBYTE() sendet ein Daten-Byte (var). DB4..DB6
sind frei und
können zur gleichzeitigen Übermittlung von drei weiteren Bytes
verwendet werden.
var | Byte [0..255] |
receiveBYTE() Nach oben
function receiveBYTE() returns int
Die Funktion receiveBYTE() empfängt ein Daten-Byte
(Rückgabewert).
DB4..DB6 enthalten ggf. drei weitere Daten-Bytes. Wenn RX_ERROR
den Wert HI hat,
liegt ein Empfangsfehler vor, und die Daten sind evtl. nicht
korrekt übertragen worden.
Vor dem Aufruf
von receiveBYTE() muss mit den Funktionen ready()
oder wait4ready()
die
Datenleitung (DATA) abgefragt werden. Ist der Rückgabewert dieser
Funktionen HI,
dann können die Daten mit receiveBYTE() eingelesen werden.
sendINT() Nach oben
function sendINT(int var)
Die Funktion sendINT() sendet Daten im Integer-Format (var).
DB5..DB6
sind frei und können zur gleichzeitigen Übermittlung von zwei zusätzlichen Bytes
verwendet werden.
var | Integer [-32768..32767] |
receiveINT() Nach oben
function receiveINT()
Die Funktion receiveINT() empfängt Daten im Integer-Format
(Rückgabewert).
DB5..DB6 enthalten ggf. zwei zusätzliche Daten-Bytes. Wenn RX_ERROR
den Wert HI hat,
liegt ein Empfangsfehler vor, und die Daten sind evtl. nicht
korrekt übertragen worden.
Vor dem Aufruf
von receiveINT() muss mit den Funktionen ready()
oder wait4ready()
die
Datenleitung (DATA) abgefragt werden. Ist der Rückgabewert dieser
Funktionen HI,
dann können die Daten mit receiveINT() eingelesen werden.
sendLONG() Nach oben
function sendLONG(long var)
Die Funktion sendLONG() sendet Daten im Long-Format (var).
var | Long [-2147483648..2147483647] |
receiveLONG() Nach oben
function receiveLONG() returns int
Die Funktion receiveLONG() empfängt Daten im Long-Format
(Rückgabewert).
Wenn RX_ERROR
den Wert HI hat, liegt ein Empfangsfehler vor, und die Daten sind
evtl. nicht
korrekt übertragen worden. Vor dem Aufruf
von receiveLONG() muss mit
den Funktionen ready()
oder wait4ready() die
Datenleitung (DATA) abgefragt werden.
Ist der Rückgabewert dieser
Funktionen HI, dann können die Daten mit receiveLONG() eingelesen werden.
sendFLOAT() Nach oben
function sendFLOAT(float var)
Die Funktion sendFLOAT() sendet Daten im Float-Format (var)
in Form
von zwei aufeinanderfolgenden RF-Frames.
var | Float [+-1.7*10^-308..+-1.7*10^308] |
receiveFLOAT() Nach oben
function receiveFLOAT()
Die Funktion receiveFLOAT() empfängt zwei aufeinanderfolgende
RF-Frames,
die Daten im Float-Format (Rückgabewert) enthalten. Wenn RX_ERROR
den Wert HI hat,
liegt ein Empfangsfehler vor, und die Daten sind evtl. nicht
korrekt übertragen worden.
Vor dem Aufruf
von receiveFLOAT() muss mit den Funktionen ready()
oder wait4ready()
die
Datenleitung (DATA) abgefragt werden. Ist der Rückgabewert dieser
Funktionen HI,
dann können die Daten mit receiveFLOAT() eingelesen werden.
sendSTRING() Nach oben
function sendSTRING(string s)
Die Funktion sendSTRING() sendet einen String (s) mit einer
Länge von max. 30 Zeichen
in Form von 1 bis 7 aufeinanderfolgenden RF-Frames.
s | String [0..30 Zeichen] |
receiveSTRING() Nach oben
function receiveSTRING(string s)
Die Funktion receiveSTRING() empfängt 1 bis 7 aufeinanderfolgende
RF-Frames,
die einen String (s) mit einer Länge von max. 30 Zeichen
enthalten.
Die Funktion liefert als Rückgabewert die Stringlänge. Wenn RX_ERROR
den Wert HI hat,
liegt ein Empfangsfehler vor, und die Daten sind evtl. nicht
korrekt übertragen worden.
Vor dem Aufruf
von receiveSTRING() muss mit den Funktionen ready()
oder wait4ready()
die
Datenleitung (DATA) abgefragt werden. Ist der Rückgabewert dieser
Funktionen HI,
dann können die Daten mit receiveSTRING() eingelesen werden.
s | String [0..30 Zeichen] |
sendDATE() Nach oben
function sendDATE()
Die Funktion sendDATE() sendet einen Frame, der das Datum (Tag,
Monat, Jahr)
der internen Echtzeituhr übermittelt.
receiveDATE() Nach oben
function receiveDATE()
Die Funktion receiveDATE() empfängt einen Frame, der das Datum
(Tag, Monat, Jahr) enthält
und überträgt das Datum in die interne
Echtzeituhr.
Wenn RX_ERROR
den Wert HI hat, liegt ein Empfangsfehler vor,
und die Daten sind evtl. nicht
korrekt übertragen worden. Vor dem Aufruf
von receiveDATE() muss mit den Funktionen ready()
oder wait4ready()
die
Datenleitung (DATA) abgefragt werden. Ist der Rückgabewert dieser
Funktionen HI,
dann können die Daten mit receiveDATE() eingelesen werden.
sendTIME() Nach oben
function sendTIME()
Die Funktion sendTIME() sendet einen Frame, der die Uhrzeit
(Stunde, Minute, Sekunde, Sommerzeitflag) der internen Echtzeituhr übermittelt.
receiveTIME() Nach oben
function receiveTIME()
Die Funktion receiveTIME() empfängt einen Frame, der die Uhrzeit
(Stunde, Minute, Sekunde, Sommerzeitflag) enthält und überträgt die Uhrzeit
in die interne Echtzeituhr. Die Funktion liefert das Sommerzeitflag (Sommerzeit
= HI)
als Rückgabewert. Wenn RX_ERROR
den Wert HI hat, liegt ein Empfangsfehler vor,
und die Daten sind evtl. nicht
korrekt übertragen worden. Vor dem Aufruf
von receiveTIME()
muss mit den Funktionen ready()
oder wait4ready() die
Datenleitung (DATA) abgefragt werden.
Ist der Rückgabewert dieser
Funktionen HI, dann können die Daten mit receiveTIME() eingelesen werden.
showFRAME4() Nach oben
function showFRAME4()
Die Funktion showFRAME4() zeigt den 4 Byte-CF-Frame (ADDR, CMD, HBYTE, LBYTE) in Zeile 1 des LC-Displays.
showFRAME8() Nach oben
function showFRAME8()
Die Funktion showFRAME8() zeigt den 8 Byte-RF-Frame (ADDR, DB0..DB6) auf dem LC-Display.