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.