|
CCS Modul Q_CANSTD |
$Id: q_canstd.C,v 1.9 2005/09/01 07:11:40 sniff Exp $
---------------------------------------------------------------------
Kurzbeschreibung: CAN - Auftrag an die PSS/SKM senden
---------------------------------------------------------------------
Projekt: CCS
Sourcefile: q_canstd.C
Autor: RtW/TEF72-Keppler (04.08.99)
Zielsystem: HP9000/V743 (HP-RT 2.0x), /Sxxx (HP-UX 9.0x)
Sprache: C++
---------------------------------------------------------------------
Prototyp:
MPI Schnittstelle
void q_canstd(shm_stringpointer *zeilen_info
,shm_stringpointer *zeilen_wert
,long index1
,long anzahl)
---------------------------------------------------------------------
Aufruf: im Vectorinterpreter
(*funktionen[modulnummer])
(Ssp_expand_zeile
,Ssp_expand_wert
,p_verwaltung->begin_modulblock
,p_verwaltung->anzahl_modulparameter);
---------------------------------------------------------------------
Funktionsbeschreibung:
Dieses Modul dient zur Auftragsvergabe an die SKM. Es bereitet die
Eingangsdaten zu einem SKM-verstaendlichen String auf und veranlasst
die gewuenschten Aktionen.
Die Antwort wird im shared Memory abgelegt und kann dort z.B. vom Modul
p_zerlege_string geholt und verarbeitet werden.
ACHTUNG: Derzeit nur SKM
Beschreibung der Moduluebergabeparameter:1 PRUEFSCHRITTGAUDI Pruefschritt2 POSITION
PAV- Position3 BEFEHL
Befehl an die SKM
CANBLOCK: Die folgenden Parameter werden wie in der
Standard-Pruefvorschrift beschrieben interpretiert.4 ID_SENDENSende Identifier an das SG: Identifier in HEX an das
SG. Soll keine Botschaft gesendet werden, so wird
kein Wert eingetragen.5 ID_SENDEN_LENHier wird die Bitzahl des Sende-Identifier eingetragen.
11 = 11 Bit Identifier
29 = 29 Bit Identifier6 ID_LESENLese Identifier: Gibt den Identifier an fuer das Objekt,
auf dem die Antwort des SG erwartet wird.
Soll keine Antwort vom SG gelesen werden, so ist hier
nichts einzutragen.7 ID_LESEN_LENHier wird die Bitzahl des Lese-Identifiers eingetragen.
11 = 11 Bit Identifier
29 = 29 Bit Identifier8 MODUS_STDGibt an, wie die Botschaft behandelt werden soll.
C: Die Strings in DATEN werden so lange aneinander gehaengt
bis hier ein Wert != C eingetragen wird.
D: Der angegebene Identifier wird geloescht.
E: Echoboard-Funktion:
Das als Lesebotschaft eingestellte Objekt loest nach Empfang
einen Interrupt auf der SKM aus, welcher das Senden des als
Sendebotschaft eingestellten Objektes veranlasst. Das Senden
geschieht unmittelbar nach Empfang.
Es muß hier als Sendebotschaft und Lesebotschaft eingestellt
werden, sonst geschieht Unsinn.
L: Lese- und Steuerfunktion: Ist in den Parametern ID_SENDEN
und ID_SENDEN_LEN eine Botschaft spezifiziert, so wird
dieses Frame an das SG gesendet.
Es wird eine Botschaft (spez. unter ID_LESEN) zurueck-
erwartet.
Soll nur eine Botschaft vom SG gelesen werden, (z.B. eine
vom SG zyklisch gesendete Botschaft) so bleiben ID_SENDEN
und ID_SENDEN_LEN leer.
S: Es wird eine Botschaft zum SG mittels Dataframe gesendet.
Es wird keine Antwort erwartet.
R: Es wird eine Botschaft mittels Remote-Frame gelesen.
Der Tester(SKM) sendet eine als Remote-Frame gekenn-
zeichnete Botschaft an das SG. Die Antwort wird in diesem
Objekt erwartet.
ID_LESEN, ID_LESEN_LEN und DATEN werden hier nicht
beruecksichtigt.
Die resultierende Botschaft wird zurueckgegeben
(noch nicht implementiert).
INIT: Einstellen (Initialisieren) eines Lese-Identifiers.
Es wird ein Identifier der als ID_LESEN angegeben
wird dem CAN-Baustein mitgeteilt. Der Host wartet jedoch
nicht bis die SKM eine Antwort liefert, sondern faehrt
im Programm fort.
Die Antwort kann mit dem Modul L in einem spaeteren Schritt
abgeholt werden.9 SG_DATEN Hier werden die Daten, die zum SG gesendet werden sollen
(ID_SENDEN), eingetragen.10 PERIODE_SENDGibt an, ob ein Sendeobjekt einmal oder zyklisch gesendet werden soll. 0 = einmal senden n = Zeitintervall in ms -1 = Zyklisches Senden beenden Diese Angaben beziehen sich auf ID_SENDEN11 TIMEOUT_SKM
Wird eine Anforderung innerhalb dieser Zeit nicht beant- wortet, so wird ein Fehler generiert.12 FEHLERFLAG
Wird gesetzt bei aufgetretenem Fehler13 ERGEBNIS
Pointer auf den Antwortstring der PSS/SKM