KlassenKlassenKlassenKlassen | | | | Operatoren

JSON

Was?

Das JSON Extension Package für HALCON ist ein Extension Package zum Erstellen, Modifizieren und Parsen von JSON-Strings innerhalb der HDevelop-Skriptsprache.

Warum?

Das JSON Extension Package für HALCON bringt erweiterte Datenstrukturen in die HDevelop-Sprache.
Damit ändern sich z.B. umständliche Prozedursignaturen wie

    OpenCamera (: : CamName, CamDevice, CamColorspace, CamBrightness, CamSaturation, CamBinning: AcqHandle)
    ProcessImage (: : FilterMean, ThresholdMin, ThresholdMax, ScoreMin, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness, MinArea, MaxArea, CameraHandle: Result)
  
zu prägnanten
    OpenCamera (: : JsonSettings: AcqHandle)
    ProcessImage (: : JsonSettings, CameraHandle: Result)
  

Dieses Extension Package ermöglicht auch die Benutzung von persistenten und menschenlesbaren Konfigurationsdateien die mit modernen Webstandards kompatibel sind (Industrie 4.0).

Details

Das JSON Extension Package für HALCON ist ein Extension Package zum Erstellen, Modifizieren und Parsen von JSON-Strings innerhalb der HDevelop-Skriptsprache.

Das JSON Extension Package enthält zusätzlich Operatoren zum Lesen und Schreiben von JSON-Dateien.

Die JSON-String-Darstellung ist eine mächtige und kompakte Darstellung von strukturierten Daten innerhalb eines Strings. Da der HDevelop-Skriptsprache ansonsten fortgeschrittene strukturierte Datentypen fehlen enthalten HDevelo-Skripte oft viel zu viele Variablen und zu viele einzelne Parameter die bei Prozedur-Aufrufen übergeben werden müssen. Zum Beispiel könnten Einstellungen für ein Skript mit der folgenden JSON-Darstellung gesetzt werden. Das kann entweder mit einer separaten settings.json-Datei geschehen oder direkt innerhalb des HDevelop-Skripts gesetzt werden:

{
    "camera": {
        "brightness": 2,
        "colorspace": "rgb",
        "device": "Camera1",
        "name": "DirectShow"
    },
    "filter": {
        "mean": 7.5
    }
}

Später kann ein bestimmter Wert z.B. mit einem JSON-Pointer gelesen werden:

    json_pointer_tuple (JsonSettings, '/camera/name', CameraName)

Somit muss nur noch ein einzelner JSON-String an Prozeduren übergeben werden, statt der einzelnen Parameter CameraBrightness, CameraColorspace, CameraDevice und CameraName.

Bitte schauen Sie sich auch die HDevelop-Beispiele an die diesem Extension Package beiliegen.

Gegenwärtig gibt es dieses Erweiterungspaket für HALCON 11.0, HALCON 12.0 und HALCON 13.0 und nur für das Windows-Betriebssystem.

Bitte kontaktieren Sie json-extpack@heindl-solutions.com um Unterstützung zu erhalten, für Bestellungen oder Bug-Meldungen.

Weitere Informationen über das JSON Extension Package gibt es online unter http://www.heindl-solutions.com/extpack/json.

Copyright Heindl Solutions, http://www.heindl-solutions.com


Liste der Operatoren

json_array_sizeJsonArraySizeJsonArraySizejson_array_sizeJsonArraySizejson_array_size
Gibt die Größe/Länge eines JSON-Arrays zurück.
json_atJsonAtJsonAtjson_atJsonAtjson_at
Extrahiert ein JSON-Objekt an einer gegebenen Position aus einem JSON-Objekt oder JSON-Array.
json_at_tupleJsonAtTupleJsonAtTuplejson_at_tupleJsonAtTuplejson_at_tuple
Parst einen Wert oder ein Array von Werten an einer gegebenen Position aus einem JSON-Objekt oder JSON-Array.
json_get_tupleJsonGetTupleJsonGetTuplejson_get_tupleJsonGetTuplejson_get_tuple
Parst einen Wert oder ein Array von Werten aus einem JSON-String.
json_is_arrayJsonIsArrayJsonIsArrayjson_is_arrayJsonIsArrayjson_is_array
Prüft ob ein JSON-String ein Array ist.
json_is_booleanJsonIsBooleanJsonIsBooleanjson_is_booleanJsonIsBooleanjson_is_boolean
Prüft ob ein JSON-String ein boolscher Wert ist.
json_is_nullJsonIsNullJsonIsNulljson_is_nullJsonIsNulljson_is_null
Prüft ob ein JSON-String null ist.
json_is_numberJsonIsNumberJsonIsNumberjson_is_numberJsonIsNumberjson_is_number
Prüft ob ein JSON-String eine Zahl ist.
json_is_objectJsonIsObjectJsonIsObjectjson_is_objectJsonIsObjectjson_is_object
Prüft ob ein JSON-String ein Objekt ist.
json_is_primitiveJsonIsPrimitiveJsonIsPrimitivejson_is_primitiveJsonIsPrimitivejson_is_primitive
Prüft ob ein JSON-String ein primitiver Datentyp ist.
json_is_stringJsonIsStringJsonIsStringjson_is_stringJsonIsStringjson_is_string
Prüft ob ein JSON-String ein String ist.
json_is_structuredJsonIsStructuredJsonIsStructuredjson_is_structuredJsonIsStructuredjson_is_structured
Prüft ob ein JSON-String strukturiert ist.
json_is_validJsonIsValidJsonIsValidjson_is_validJsonIsValidjson_is_valid
Prüft ob ein String ein gültiger JSON-String ist.
json_object_keysJsonObjectKeysJsonObjectKeysjson_object_keysJsonObjectKeysjson_object_keys
Gibt die Schlüssel eines JSON-Objektes zurück.
json_pointerJsonPointerJsonPointerjson_pointerJsonPointerjson_pointer
Extrahiert einen Wert aus einem JSON-String mittels JSON Pointer.
json_pointer_tupleJsonPointerTupleJsonPointerTuplejson_pointer_tupleJsonPointerTuplejson_pointer_tuple
Parst einen Wert oder ein Array von Werten aus einem JSON-String mittels JSON Pointer.
json_prettifyJsonPrettifyJsonPrettifyjson_prettifyJsonPrettifyjson_prettify
Gibt eine verschönerte Darstellung eines JSON-Strings in einem mehrelementigen String-Tupel zurück.
json_read_fileJsonReadFileJsonReadFilejson_read_fileJsonReadFilejson_read_file
Liest eine JSON-Datei in einen JSON-String.
json_register_extpackJsonRegisterExtpackJsonRegisterExtpackjson_register_extpackJsonRegisterExtpackjson_register_extpack
Registriert dieses Extension Package für volle kommerzielle Nutzung innerhalb einer Firma.
json_removeJsonRemoveJsonRemovejson_removeJsonRemovejson_remove
Löscht einen Eintrag in einem JSON-Objekt oder JSON-Array.
json_set_jsonJsonSetJsonJsonSetJsonjson_set_jsonJsonSetJsonjson_set_json
Setzt einen JSON-String in einem JSON-Objekt oder JSON-Array.
json_set_tupleJsonSetTupleJsonSetTuplejson_set_tupleJsonSetTuplejson_set_tuple
Setzt ein Tuple in einem JSON-Objekt oder JSON-Array.
json_write_fileJsonWriteFileJsonWriteFilejson_write_fileJsonWriteFilejson_write_file
Schreibt einen JSON-String in eine Textdatei.

KlassenKlassenKlassenKlassen | | | | Operatoren