Get desktop application:
View/edit binary Protocol Buffers messages
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// Used to change the Pin-code of the Gateway. The default Pin-code is 0000. The Pin-code is also reset to 0000 when a factory reset is performed. Authentication: This message is authenticated by srcuuid (must be a registered AppUUID or WebUUID). The old Pin-code is also verified /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// Inform other side that the session is closed. CloseSessionConfirm is only sent back when an error occurred. Authentication: None /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
Used in:
(message has no fields)
Wrapper for CN_fupEraseMemoryBlock() and CN_fupProgramMemoryBlockBegin() Since the flash is erased upon a begin request, it may take several minutes before the request is confirmed.
(message has no fields)
(message has no fields)
Wrapper for CN_fupProgramMemoryBlockEnd() and CN_fupVerifyMemoryBlock()
(message has no fields)
Wrapper for CN_fupWriteData() and CN_fupRequestToSend()
at most 256 bytes
One or more confirms to one CnFupReadRequest, but always ends with the last bool set to true. In case of an error, the last CnFupReadConfirm has both a GatewayOperation.result and CnFupReadConfirm.last (possibly without chunk) set.
at most 256 bytes at a time
Wrapper for CN_fupReadNormalRegister() and CN_fupReadIndexedRegister()
Wrapper for CN_fupReadBegin(), CN_fupReadData(), CN_fupClearToSend(), and CN_fupReadEnd()
(message has no fields)
Wrapper for CN_fupReset()
Used in:
mode is NODE_OFFLINE when productId = 0, otherwise mode is NODE_NORMAL
Wrapper for CN_nmtFindNode() / CN_nmtRegisterCallback() When a session is started, every existing node is notified to the app as soon as possible. This request (re)triggers discovery of the nodes. There is no confirm to this request, but the Gateway will respond quickly with (at least) the discovery of the Gateway itself using a CnNodeNotification.
(message has no fields)
Confirm of receipt of CnRmiAsyncRequest After this confirmation, the actual RMI response is sent using CnRmiAsyncResponse.
ComfoNet error code
Non-blocking wrapper for CN_rmiSend() The response to this request is CnRmiAsyncConfirm. Overlapped RMI requests can be achieved by issuing multiple CnRmiAsyncRequest before CnRmiAsyncResponses are received.
Out-of-order wrapper for CN_rmiRecv() When there multiple outstanding async RMI requests, these requests will finish in the same order as the requests were issued. However, the time between request/response may be large. Moreover, other protobuf messages can be processed meanwhile.
ComfoNet error code
Blocking wrapper for CN_rmiSend() The Gateway stalls till the RMI operation completes.
In-order wrapper for CN_rmiRecv()
ComfoNet error code
(message has no fields)
the data may (always) be padded to 8 bytes
Wrapper for CN_rpdoCreate(). All RPDOs will be deleted when a session is closed.
when no type is specified, a previously registered RPDO with given PDID is deleted
interval of RPDO notification
Wrapper for CN_clkGetTime()
Wrapper for CN_clkSetTime()
(message has no fields)
Wrapper for ComfoNet WhoAmI
///////////////////////////////////////////////////////////////////////////////////////////////// Gateway-specific debugging operations /////////////////////////////////////////////////////////////////////////////////////////////////
Used in:
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// Used to deregister a mobile app from the Gateway. The Gateway removes the specified uuid from the list of registered AppUUIDs. The devicename for this uuid is also removed. Authentication: This message is authenticated by srcuuid (must be a registered AppUUID or WebUUID). SupportUUID is not allowed. /////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////// Discovery messages /////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////// FactoryReset message This message is used to reset the Gateway to Factory defaults /////////////////////////////////////////////////////////////////////////////////////////////////
should contain the GatewayUUID
Used in:
Automatically decide field type, generate static field if possible.
Always generate a callback field.
Always generate a dynamically allocated field.
Generate a static field or raise an exception if not possible.
Ignore the field completely.
///////////////////////////////////////////////////////////////////////////////////////////////// This is the base-message for all notifications. The Gateway sends this message to the Backend and the connected App (if any). The Gateway specifies the list of currently registered PushUUIDs in this message. The Backend uses this list to send out the push-notifications if needed (depending on the contents of the push-message). TODO: Tell Gateway which notifications to forward to the Backend and which to forward to the App only /////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////// Message-type Raw value is encoded as 16-bit network-order on the wire (not default enum encoding, which is varint) /////////////////////////////////////////////////////////////////////////////////////////////////
App-supplied reference for a request. If set in the request, it must be echoed in the confirm. If used, must be non-zero.
Used in:
The request was successful
Something was wrong with the request
The request was ok, but the handling of the request failed
The backend cannot route the request
The gateway already has an active session with another client
Request is not allowed
Not enough resources, e.g., memory, to complete request
ComfoNet node or property does not exist
The RMI failed, the message contains the error response
Used in:
REMOVE IN PRODUCTION! FOR AUTOMATIC TEST
ComfoNetII-specific messages
WiFi setup
the currently set RemoteUUID
///////////////////////////////////////////////////////////////////////////////////////////////// This returns the currently set RemoteUUID at the Gateway or nothing if not set. Authentication: This message is authenticated by srcuuid (must be a registered AppUUID). SupportUUID/WebUUID are not allowed. /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
the currently set SupportUUID
///////////////////////////////////////////////////////////////////////////////////////////////// This returns the currently set SupportUUID at the Gateway or nothing if not set. Authentication: This message is authenticated by srcuuid (must be a registered AppUUID or WebUUID). /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
the currently set WebUUID
///////////////////////////////////////////////////////////////////////////////////////////////// This returns the currently set WebUUID at the Gateway or nothing if not set. Authentication: This message is authenticated by srcuuid (must be a registered AppUUID). /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
Used in:
Default, 32/64bit based on type in .proto
///////////////////////////////////////////////////////////////////////////////////////////////// KeepAlive message This message is used to keep the session alive and to check for half-open TCP connections. /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
Used in:
///////////////////////////////////////////////////////////////////////////////////////////////// Used to get a list of currently registered AppUUIDs at the Gateway. Authentication: This message is authenticated by srcuuid (must be a registered AppUUID or WebUUID). SupportUUID is not allowed. /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
This is the inner options message, which basically defines options for a field. When it is used in message or file scope, it applies to all fields.
Allocated size for 'bytes' and 'string' fields.
Allocated number of entries in arrays ('repeated' fields)
Size of integer fields. Can save some memory if you don't need full 32 bits for the value.
Force type of field (callback or static allocation)
Use long names for enums, i.e. EnumName_EnumValue.
Add 'packed' attribute to generated structs. Note: this cannot be used on CPUs that break on unaligned accesses to variables.
Skip this message
Generate oneof fields as normal optional fields instead of union.
integer type tag for a message
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// Used to register an AppUUID at the Gateway. It is only handled on the local connection! The Gateway keeps a list of registered AppUUIDs and devicenames in eeprom/flash. When too many apps are registered, NO_RESOURCES is returned. Authentication: This is the only request that is not authenticated by srcuuid (since it is not yet known at the Gateway). This request is authenticated by Pin-code in the message. The uuid in this message is the same as the srcuuid in the message-header. Note: this message is only allowed on the local connection!! //////////////////////////////////////////////////////////////////////////////////////////////
0..9999
Used in:
(message has no fields)
Used in:
Used in:
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// Associates a GatewayUUID or AppUUID with a Backend-connection. This way the Backend knows on which TCP-connection the specified UUID can be reached. Authentication: The uuid in this message is the same as the srcuuid in the message-header. This message is not authenticated. /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// SetDeviceSettings message This message is used to set the MAC address and serial number of the device /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// The PushUUID is set at the Gateway when the user enables push-support in the App. Multiple PushUUIDs can be set at the Gateway (one per AppUUID). The Gateway stores the PushUUIDs in eeprom/flash and uses them when a notification is received from the ComfoNet-side. The notification is forwarded to the Backend and the connected App (if any) using the GatewayNotification (see TODO) messages. The PushUUID can be removed from the Gateway by keeping the uuid in the request empty (for the AppUUID indicated by the srcuuid). Authentication: This message is authenticated by srcuuid (must be a registered AppUUID). /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// The RemoteUUID is set at the Gateway when the user enables remote access from the App. The Gateway stores the RemoteUUID in eeprom/flash and uses it to set its address at the Backend. When the Gateway has not received a RemoteUUID yet, it cannot set the address at the Backend and therefore there is no need to setup the connection to the Backend. The App uses this RemoteUUID to gain access to the Gateway via the Backend. The Backend routes messages from the App to the Gateway that registered this id with SetAddress. Setting the RemoteUUID to a new value requires other Apps that still use the old value (or no value) to get an updated RemoteAccessId. Remote access can be disabled by keeping the uuid in the request empty. In this case the Gateway will remove the current RemoteUUID (if any) and close the connection to the Backend. Authentication: This message is authenticated by srcuuid (must be a registered AppUUID). Note: this message is only allowed on the local connection!! /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// The SupportUUID is set at the Gateway when the user enables remote support from the App. The Gateway stores the SupportUUID in eeprom/flash and uses it to authenticate incoming requests (same way as AppUUID, WebUUID). The SupportUUID is only valid for a limited time (to be determined). The Gateway is responsible from removing the SupportUUID when the time is expired. The SupportUUID can be removed from the Gateway by keeping the uuid in the request empty. Authentication: This message is authenticated by srcuuid (must be a registered AppUUID). /////////////////////////////////////////////////////////////////////////////////////////////////
number of seconds the SupportUUID is valid
(message has no fields)
///////////////////////////////////////////////////////////////////////////////////////////////// The WebUUID is set at the Gateway when the user enables remote login for the Web-portal (from a registered App). The Gateway stores the WebUUID in eeprom/flash and uses it to authenticate incoming requests (same way as AppUUID). The WebUUID can be removed from the Gateway by keeping the uuid in the request empty. Authentication: This message is authenticated by srcuuid (must be a registered AppUUID). /////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////// Starts a new session at the Gateway. If the Gateway currently already has an active session it responds with result OTHER_SESSION, and fill in the devicename. The client asks the user if it want to close the old session and start a new one. In this case the takeover-flag is set to True Authentication: This message is authenticated by srcuuid /////////////////////////////////////////////////////////////////////////////////////////////////
(message has no fields)
at most 256 bytes
Used in:
current software version of the Gateway
Gateway's serial number
current version implemented by the Gateway
(message has no fields)
(message has no fields)
Used in: ,
Used in: ,
Wi-FI Signal Strength;
visible networks from last scan (only in AP mode)
number of seconds since last scan (only in AP mode)
WiFi config
Used in: ,
do not use
do not use
result of last join-request
Used in:
(message has no fields)