Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Syntax conventions: Boldtype are literal string commands. Italics are strings to be specified by the caller. Commas within specified values must be escaped with a backslash ‘\’. Commands are case insensitive, but specified values are case sensitive. There are no spaces between comma delimited parameters. The [a|PDG:b] style syntax is “either a or b” syntax where the underlined value is the default value. The [PDG:…] style syntax is optional syntax. All commands, as well as responses from the server, are terminated with a CR/LF pair.

...

All commands have the general format:

Panel

[PDG:@ReqID;]Command[PDG:,parameter list]

The optional ReqID is an unsigned 32-bit decimal integer that will be returned by the returned data. If the ReqID parameter is omitted, a session-unique number will be generated by the server.

Data returned will follow the general syntax:

Panel

[PDG:@ReqID;]ResultType=result

Synchronous data replies always will have a request ID returned. Asynchronous data replies only will return a request ID if the reply is associated with an asynchronous request. Errors will be returned as:

Panel

[PDG:@ReqID;]Error=code;error message

...

GetMulticastKey

Panel

GetMulticastKey[PDG:,<MulticastID>]

This command requests a download of the multicast encryption key(s). If a particular Multicast ID is not specified, all multicast keys are reported. Returns “@ReqID;MulticastKey=MulticastID,KeyGen,Base64KeyData,Base64NextKeyData” or “@ReqID;Error=code;error message”. If all multicast keys are requested, each key will be reported with a MulticastKey= response. KeyGen specifies the current key generation number in use, Base64KeyData is the current encryption key in use, and Base64NextKeyData is the next encryption key to be used after rekeying. The format of Base64KeyData and Base64NextKeyData is little-endian binary encryption key encoded as a Base64 string. The key cipher and length are described in the NDL.

...

Panel

GetVar,VariableName
GetVar,VariableName.MemberName[PDG:.MemberName...]

Get the value of the variable VariableName and return it in the format specified by the SetDataFormat option. If VariableName contains embedded whitespace or periods, it must be enclosed in double quotes. At this point, VariableName must be defined in Design Pad as a global variable with network access enabled. The second form of the command may be used for structure type variables. In that case, the requested structure member is returned. If the SetDataFormat option is Base64 (the default) or String, the format of the returned data is:

Panel

@ReqID;VariableName=[Base64Value|PDG:StringValue]
@ReqID;VariableName.MemberName[PDG:.MemberName...]=[Base64Value|PDG:StringValue]

The format of Base64Value is a little-endian binary value encoded as a Base64 string. The format of StringValue is a human-readable decimal value (i.e. formatted using the C-language sprintf function). If the SetDataFormat option is XML, the format of the returned data is:

...

where XMLString is an XML representation of the data. See Design Pad Structures for details on the XML format returned for structure data and underlying simple type data.

...

Panel

SetVar,VariableName=Base64Value
SetVar,VariableName.MemberName[PDG:.MemberName...]=Base64Value

...

UpdateApply

Panel

UpdateApply[PDG:,DigestType=DigestValue][PDG:,Arg=UpdateArg]

Verify the message digest of the transferred data and apply the update. If no digest is provided or the provided digest is not supported, the total amount of data transferred in successful UpdateData commands is compared to the size given in the UpdateStart command. If a digest or length mismatch is detected, an error response is returned and the update is canceled:

...

Panel

@ReqID;UpdateCancel=Success

Lock

Panel

Lock,ID=LockID[PDG:,ID=LockID...][PDG:,Wait=AcquireTimeout][PDG:,Hold=HoldTimeout]

Acquire the lock(s) specified by the LockID parameters. Return an error if the lock can not be acquired after AcquireTimeout seconds (may be zero or omitted, in which case the command returns a result immediately). If the locked capability is not used for HoldTimeout seconds the lock is automatically released. All held locks are released when a FANDA session ends. If HoldTimeout is zero or omitted, the lock is held until the session ends.

...

Repeated Lock commands may be used to verify that the caller is still holding the lock. This will also reset the HoldTimeout to the value specified in the most recent Lock command. This is not a nested lock, only one PDG: Unlock call is needed to release the lock, regardless of the number of Lock commands that were executed.

...

Unlock

Panel

Unlock,LockID[PDG:,LockID.]

..

Unlock the lock(s) with the IDs specified in the LockID parameters. If no error occurs, the response is:

Panel

@ReqID;Unlock=Success;LockID[PDG:,LockID...]

with a comma-separated list of all locks that were released (locks that were abandoned due to timeout will not appear in the list). If an error occurs the response is

...

Panel

@ReqID;Unlock=Success;[PDG:LockID(,LockID.)]

with a comma-separated list of all locks that were released. If no locks were held the ID list is empty.

...

Specifies whether acknowledgements are returned. If the client wishes to operate asynchronously, this option may be turned on. This will cause the server to immediately respond to all commands with an “<tt>@ReqID;OK;Command</tt>” string where Command is the recognized command (which may differ in case from the transmitted command). No reply is given to this command.

EOF

Panel

EOF[PDG:;Reason]

The EOF command signifies that the client is about to disconnect. (Future version: If the client does not send the EOF command before disconnecting, the server will maintain workspace information about the session until the session times out. This feature allows the client to reconnect after an unintended disconnect using the same logon credentials as the previous connection.) No reply is given to this command.

...

The response is:

Panel

@ReqID;Caps=[PDG:HexByteList]

HexByteList is a comma-separated list of capability bytes, starting with Byte 0. The client should ignore unknown bytes in the response, and should treat any missing bytes as zero. The currently defined capability flags are (Mask is in the format used by GetCaps and SetCaps):

...

The following messages may be sent from the server to the client at any time.

EOF

Panel

EOF[PDG:;Reason]

The EOF asynchronous message that the server is ending the FANDA session. If present, Reason provides additional information on the reason the session is being ended.

...