TRX.C2 V2.0 - Hilfe


Beschreibung

Einfügen als Gemeinsames Modul

Konstanten

Variablen

Funktionen:

init()
ready()
flush()
wait4ready()
TRX_SEND()
TRX_RECEIVE()
getSTATUS()
CHset()
CH0set()
CH1set()
CH2set()
CH3set()
CH4set()
PWRset()
PWR0set()
PWR1set()
PWR2set()
PWR3set()
PWR4set()
PWR5set()
PWR6set()
PWR7set()
TRXreset()
FRAME8set()
ADDRset()
PREAMBLEset()
FSKset()
TEST_txon()
TEST_rxon()
TEST_audio1k()
TEST_audio2k()
TEST_FREQset()
sendCONTROL()
receiveCONTROL()
sendSTATUS()
receiveSTATUS()
sendBYTE()
receiveBYTE()
sendINT()
receiveINT()
sendLONG()
receiveLONG()
sendFLOAT()
receiveFLOAT()
sendSTRING()
receiveSTRING()
sendDATE()
receiveDATE()
sendTIME()
receiveTIME()
showFRAME4()
showFRAME8()

 


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.

 


Autor Version 2.00: Dirk Ottensmeyer   Mail: dirk.ottensmeyer@owl-online.de   Erstellt: 20.11.2004