Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
460 lines (363 sloc) 29.3 KB

HAL Remote Protocol

The HAL Remote protocol can be used to remotely interact with a HAL instance.

Messages

### HALRCOMP BIND

This message binds a HAL remote component to a HAL instance. If the local description of the HAL component matches the remote description the bind will be confirmend. In case the remote instance does not exist prior to the bind request it will be automatically created.

In case the remote instance of the component does not match the description sent with the bind message, the bind request will be rejected.

The no_create flag can be used to prevent the Haltalk server from creating a new remote component instance in case none exists.

Data Fields

Possible Responses

### HALRCOMP BIND CONFIRM

This message confirms that the bind request was successful. The client can now subscribe to status updates about the remote component from Haltalk.

Response to

### HALRCOMP BIND REJECT

A bind request has been rejected by Haltalk. The note field contains information about the error message.

Data Fields

Response to

### HALRCOMP SET

The halrcomp set message is used to update pin values of remote component instances. Either the name or the handle field can be used to address individual pins. Using the handle field allows faster addressing inside Hatalk and is therefore the recommended way when a local description of the remote component exists.

In case the set request cannot be issued by the Haltalk instance a set reject message will be returned.

If the optional reply_required field is set to true a acknowledgement message will be returned in case the request is successful.

Data Fields

Possible Responses

### HALRCOMP SET REJECT

A pin set request has been rejected by Haltalk. The note field contains information about the error message.

Data Fields

Response to

### HALRCOMP ACK

Acknowledgement for pin set request from Haltalk.

Response to

### HALRCOMP FULL UPDATE

Full status update from Haltalk. This message is sent when a client requests a full state synchronization. It contains the most recent state of the remote component and the pin handles required to update remote pins.

Data Fields

### HALRCOMP INCREMENTAL UPDATE

Incremental status update from Haltalk. This message is sent every time a pin change has been detected in the remote instance of the remote component. Pin handles are used to address individual pins.

Data Fields

### HALRCOMP ERROR

A error occured on the halrcomp channel. The note field contains information about the error message.

Data Fields

### HALRCOMMAND ERROR

A error occured on the halrcmd channel. The note field contains information about the error message.

Data Fields

### HALRCOMMAND SET

The halrcommand set message is used to update pin values of unbound input pins and signals in a HAL configuration. Either the name or the handle field can be used to address individual pins and signals. Using the handle field allows faster addressing inside Haltalk and is therefore the recommended way if a local description of the HAL configuration exists.

The difference of this command to the halrcomp set command is, that this command operates on input pins as if they would be changed from outside whereas halrcomp set works on output pins as if they would be changed from inside the remote component.

In case the set request cannot be issued by the Haltalk instance a set reject message will be returned.

If the optional reply_required is set to true a acknowledgement message will be returned in case the request is successful.

Data Fields

Possible Responses

### HALRCOMMAND SET REJECT

A pin/signal set request has been rejected by Haltalk. The note field contains information about the error message.

Data Fields

Response to

### HALRCOMMAND ACK

Acknowledgement for pin/signal set request from Haltalk.

Data Fields

Response to

### HALRCOMMAND GET

This message queries the value of a pin or signal of the HAL configuration.

If the request was successful a acknowledgement message will be returned.

If an error occured when processing the request in Haltalk a get reject message will be returned.

Data Fields

Possible Responses

### HALRCOMMAND GET REJECT

A pin/signal get request has been rejected by Haltalk. The note field contains information about the error message.

Data Fields

Response to

### HALRCOMMAND DESCRIBE

This command requests a complete description of the HAL configuration.

Possible Responses

### HALRCOMMAND DESCRIPTION

Complete description of the HAL configuration.

Data Fields

Response to

### HALRCOMMAND CREATE

NOT IMPLEMENTED

### HALRCOMMAND DELETE

NOT IMPLEMENTED

Remote Component Base

HAL Remote Component Client

State Machine

State Machine