{ "title": "basic.basic", "description": "Generic schema for any devices", "lang": "en", "documentation": "http://recherche.imt-atlantique.fr/xaal/documentation/", "ref": "http://recherche.imt-atlantique.fr/xaal/documentation/basic.basic", "license": "Copyright Christophe Lohr IMT Atlantique 2019 - Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.", "attributes": { "dev_type":"dev_type_t", "address":"address_t", "vendor_id":"vendor_id_t", "product_id":"product_id_t", "version":"version_t", "hw_id":"hw_id_t", "group_id":"group_id_t", "url":"url_t", "schema":"url_t", "info":"info_t", "unsupported_attributess":"unsupported_attributess_t", "unsupported_methods":"unsupported_methods_t", "unsupported_notifications":"unsupported_notifications_t" }, "methods": { "is_alive": { "description": "Check if the device is alive", "in": { "dev_types":"dev_types_t" } }, "get_description": { "description": "Return the description of the device", "out": { "vendor_id":"vendor_id_t", "product_id":"product_id_t", "version":"version_t", "hw_id":"hw_id_t", "group_id":"group_id_t", "url":"url_t", "schema":"url_t", "info":"info_t", "unsupported_attributess":"unsupported_attributess_t", "unsupported_methods":"unsupported_methods_t", "unsupported_notifications":"unsupported_notifications_t" } }, "get_attributes": { "description": "Return attributes of the device", "in": { "attributes":"attributes_t" } } }, "notifications": { "alive": { "description": "The device announces that it is alive", "out": { "timeout":"timeout_t" } }, "attributes_change": { "description": "Report attributes that have changed", "out": { } }, "error": { "description": "An error has been detected", "out": { "description":"description_t", "code":"code_t" } } }, "datamodel": { "dev_type_t": { "description": "The name of the schema to which the device obeys", "type": "data = tstr .regexp \"[a-zA-Z][a-zA-Z0-9_-]*\\\\.[a-zA-Z][a-zA-Z0-9_-]*\"" }, "address_t": { "description": "The address of the device, an UUID", "type": "data = #6.37(bstr .size 16)" }, "vendor_id_t": { "description": "Id of the vendor assigned by the xAAL bureau", "type": "data = tstr" }, "product_id_t": { "description": "Id of the product assigned by the vendor", "type": "data = tstr" }, "version_t": { "description": "Version or revision of the product assigned by the vendor", "type": "data = tstr" }, "hw_id_t": { "description": "Some hardware Id of the device (e.g., low-level addresses, serial number)", "type": "data = any" }, "group_id_t": { "description": "Id of the group of devices to which it belongs, if any", "type": "data = #6.37(bstr .size 16)" }, "url_t": { "description": "Url of a website to get more information and schema", "type": "data = uri" }, "info_t": { "description": "Additional info, if any, about the device", "type": "data = tstr" }, "unsupported_attributes_t": { "description": "List attributes of the schema that are not supported by this device", "type": "data = [ * (tstr .regexp \"[a-zA-Z][a-zA-Z0-9_-]*\") ]" }, "unsupported_methods_t": { "description": "List methods of the schema that are not supported by this device", "type": "data = [ * (tstr .regexp \"[a-zA-Z][a-zA-Z0-9_-]*\") ]" }, "unsupported_notifications_t": { "description": "List notifications of the schema that are not supported by this device", "type": "data = [ * (tstr .regexp \"[a-zA-Z][a-zA-Z0-9_-]*\") ]" }, "dev_types_t": { "description": "Array of wanted dev_type(s)", "type": "data = [ ? (tstr .regexp \"[a-zA-Z][a-zA-Z0-9_-]*\\\\.[a-zA-Z][a-zA-Z0-9_-]*\") ]" }, "attributes_t": { "description": "List of wanted attributes", "type": "data = [ * (tstr .regexp \"[a-zA-Z][a-zA-Z0-9_-]*\") ]" }, "timeout_t": { "description": "Delay max before next alive message", "unit": "s", "type": "data = uint" }, "description_t": { "description": "Textual description of the error", "type": "data = tstr" }, "code_t": { "description": "Numeric code of the error", "type": "data = int" } } }