Strukturreferenz „vehikel_hw_device“.

Strukturreferenz „vehikel_hw_device“.

#include < vehicle.h >

Datenfelder

Struktur hw_device_t gemeinsam
int(* init )(struct Vehicle_hw_device *device, Vehicle_event_callback_fn event_fn, Vehicle_error_callback_fn err_fn)
int(* release )(struct Vehicle_hw_device *device)
Vehicle_prop_config_t const *(* list_properties )(struct Vehicle_hw_device *device, int *num_properties)
int(* get )(struct Vehicle_hw_device *device, Vehicle_prop_value_t *data)
Leere(* release_memory_from_get )(struct Vehicle_hw_device *device, Vehicle_prop_value_t *data)
int(* set )(struct Vehicle_hw_device *device, const Vehicle_prop_value_t *data)
int(* subscribe )(struct Vehicle_hw_device *device, int32_t prop, float sample_rate, int32_t zones)
int(* abbestellen )(struct Vehicle_hw_device *device, int32_t prop)
int(* dump )(struct Vehicle_hw_device *device, int fd)

detaillierte Beschreibung

Definition in Zeile 1639 der Datei Vehicle.h .

Felddokumentation

struct hw_device_t common

Definition in Zeile 1640 der Datei Vehicle.h .

int(* dump)(struct Vehicle_hw_device *device, int fd)

Drucken Sie den Debugstatus für die Fahrzeughalle aus. Dies wird vom Fahrzeugnetzwerkdienst aufgerufen und in den Dump des Dienstes aufgenommen.

Der übergebene Dateideskriptor kann zum Schreiben von Debugging-Text mit dprintf() oder write() verwendet werden. Der Text sollte nur in ASCII-Kodierung vorliegen.

Leistungsanforderungen:

Dies muss ein nicht blockierender Anruf sein. Der HAL sollte von diesem Aufruf in 1 ms zurückkehren, muss von diesem Aufruf in 10 ms zurückkehren. Dieser Aufruf muss Deadlocks vermeiden, da er an jedem Betriebspunkt aufgerufen werden kann. Alle verwendeten Synchronisierungsprimitive (z. B. Mutex-Sperren oder Semaphoren) sollten mit einem Timeout erfasst werden.

Definition in Zeile 1744 der Datei Vehicle.h .

int(* get)(struct Vehicle_hw_device *device, Vehicle_prop_value_t *data)

Erhalten Sie sofort einen Fahrzeugwert. Daten sollten ordnungsgemäß zugeordnet werden. Der Aufrufer der API ist BESITZER des Datenfelds. Der Aufrufer legt data->prop, data->value_type und optional den Zonenwert für die Zoneneigenschaft fest. Die HAL-Implementierung muss jedoch bei der Rückgabe alle Einträge ordnungsgemäß ausfüllen. Für den Zeigertyp sollte die HAL-Implementierung den erforderlichen Speicher zuweisen und der Aufrufer ist für den Aufruf von „release_memory_from_get“ verantwortlich, wodurch HAL den zugewiesenen Speicher freigeben kann. Für den Eigenschaftstyp VEHICLE_PROP_CHANGE_MODE_STATIC sollte get immer denselben Wert zurückgeben. Für den Eigenschaftstyp VEHICLE_PROP_CHANGE_MODE_ON_CHANGE sollte der neueste Wert zurückgegeben werden. Wenn noch keine Daten verfügbar sind, was in der Anfangsphase passieren kann, sollte dieser Aufruf sofort mit dem Fehlercode -EAGAIN zurückkehren.

Definition in Zeile 1681 der Datei Vehicle.h .

int(* init)(struct Vehicle_hw_device *device, Vehicle_event_callback_fn event_fn, Vehicle_error_callback_fn err_fn)

Nach dem Aufruf von open on device sollte der Benutzer Rückrufe für Ereignis- und Fehlerfunktionen registrieren.

Definition in Zeile 1646 der Datei Vehicle.h .

Vehicle_prop_config_t const*(* list_properties)(struct Vehicle_hw_device *device, int *num_properties)

Listen Sie alle verfügbaren Eigenschaften auf. Die Liste wird in „list“ zurückgegeben.

Parameter
num_properties Anzahl der im neu abgestimmten Array enthaltenen Eigenschaften.
Kehrt zurück
Array von Eigenschaftskonfigurationen, die von diesem Auto unterstützt werden. Beachten Sie, dass die zurückgegebenen Daten konstant sind und vom Aufrufer nicht geändert werden können. Die HAL-Implementierung sollte diesen Speicher behalten, bis HAL freigegeben wird, um ein erneutes Kopieren zu vermeiden.

Definition in Zeile 1663 der Datei Vehicle.h .

int(* release)(struct Vehicle_hw_device *device)

Vor dem Aufruf von close sollte der Benutzer die registrierten Callback-Funktionen zerstören. Falls der unsubscribe()- Aufruf nicht für alle Eigenschaften vor release() aufgerufen wird, kündigt release() die Eigenschaften selbst.

Definition in Zeile 1654 der Datei Vehicle.h .

void(* release_memory_from_get)(struct Vehicle_hw_device *device, Vehicle_prop_value_t *data)

Geben Sie den Speicher frei, der den Daten im vorherigen Get-Aufruf zugewiesen wurde. Get Call for Byte oder String beinhaltet die Zuweisung des erforderlichen Speichers aus der Fahrzeughalle. Aus Sicherheitsgründen sollte der vom Fahrzeug-Hal zugewiesene Speicher vom Fahrzeug-Hal freigegeben werden, und der Fahrzeugnetzwerkdienst ruft dies auf, wenn Daten vom Fahrzeug-Hal nicht mehr benötigt werden. Die Fahrzeug-Hal-Implementierung sollte nur Mitglieder von „vehikel_prop_value_t“ wie „data->str_value.data“ oder „data->bytes_value.data“ freigeben, nicht jedoch die Daten selbst, da die Daten selbst vom Fahrzeugnetzwerkdienst zugewiesen werden. Sobald der Speicher freigegeben ist, sollte der entsprechende Zeiger in der Fahrzeughalle auf NULL gesetzt werden.

Definition in Zeile 1693 der Datei Vehicle.h .

int(* set)(struct Vehicle_hw_device *device, const Vehicle_prop_value_t *data)

Legen Sie einen Fahrzeugeigenschaftswert fest. Daten sollten ordnungsgemäß zugewiesen werden und nicht NULL sein. Der Aufrufer der API ist BESITZER des Datenfelds. Der Zeitstempel der Daten wird für den Set-Vorgang ignoriert. Für das Festlegen einiger Eigenschaften ist es erforderlich, dass der Anfangszustand verfügbar ist. Abhängig vom Fahrzeugbestand sind solche Anfangsdaten möglicherweise kurze Zeit nach der Initialisierung nicht verfügbar. In einem solchen Fall kann der Set-Aufruf wie der Get-Aufruf -EAGAIN zurückgeben. Bei einer Immobilie mit separater Stromsteuerung kann die Einrichtung fehlschlagen, wenn die Immobilie nicht eingeschaltet ist. In einem solchen Fall sollte hal den Fehler -ESHUTDOWN zurückgeben.

Definition in Zeile 1706 der Datei Vehicle.h .

int(* subscribe)(struct Vehicle_hw_device *device, int32_t prop, float sample_rate, int32_t Zones)

Abonnieren Sie Veranstaltungen. Abhängig von der Ausgabe von list_properties, wenn die Eigenschaft: a) on-change: sample_rate auf 0 gesetzt werden sollte. b) unterstützt die Häufigkeit: sample_rate sollte von min_sample_rate auf max_sample_rate gesetzt werden. Bei Eigenschaften vom Typ „On-Change“ führt der Fahrzeugnetzwerkdienst einen weiteren Abruf durch, um den Anfangszustand zu überprüfen. Aus diesem Grund muss die Fahrzeug-Hal-Implementierung keinen Anfangsstatus für Eigenschaften vom Typ „On-Change“ senden.

Parameter
Gerät
Stütze
Beispielrate
Zonen Alle abonnierten Zonen für in Zonen aufgeteiltes Eigentum. kann für nicht in Zonen aufgeteilte Grundstücke ignoriert werden. 0 bedeutet, dass alle Zonen statt keiner Zone unterstützt werden.

Definition in Zeile 1723 der Datei Vehicle.h .

int(* unsubscribe)(struct Vehicle_hw_device *device, int32_t prop)

Abonnement einer Immobilie kündigen.

Definition in Zeile 1727 der Datei Vehicle.h .


Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
  • hardware/libhardware/include/hardware/ vehikel.h