Project

General

Profile

Feature #13798

Allow front-end to connect to multiple local aliases

Added by Richard Neswold almost 3 years ago. Updated 8 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
ACSys/FE Framework
Target version:
Start date:
09/08/2016
Due date:
% Done:

0%

Estimated time:
Duration:

Description

Some ACNET nodes have several entries in the node table, known as aliases. Our current framework allows the front-end programmer to specify which alias to use for the front-end. If no node name is provided, the front-end appears on all aliases. There may be a situation, however, where the front-end needs to appear on more than one alias (but not every alias.)

To support this:

  • Add a configuration variable to the daq application called nodes which contains a list of strings. If the list is empty, then it falls back to using the variable acnet:default_node.
  • All sections of code that register an ACNET handle (RETDAT, GETS32, SETDAT, SETS32, FTPMAN, ACSYS) would now register the handles on every node in the list.

Things to consider:

  • If the daq application uses any handles to make its own requests, it might have to create its own handle.
  • Drivers could be mapped to multiple ACNET devices (each on a different alias.) This might be a non-issue because we can already make multiple ACNET devices point to a single front-end driver.
  • The intention of adding aliases to ACNET was to be able to add logical nodes without adding actual hardware. Each aliased node has its own set of connected processes. If new hardware gets added and a node moved to it, the control system shouldn't notice any change. This proposed feature would break this property.

History

#1 Updated by Dennis Nicklaus almost 3 years ago

Just to clarify: adding the node to the acnet handle is wholly within the Erlang acnet application. Any external app just calls, e.g. acnet:start(retdat).

Also, in the config file, the specification of the default_node is under acnet, so I would expect the node list to be under acnet and acnet would just replicate the handle across all nodes when acnet:start() is called or something like that.

#2 Updated by Richard Neswold almost 3 years ago

Dennis Nicklaus wrote:

... in the config file, the specification of the default_node is under acnet, so I would expect the node list to be under acnet and acnet would just replicate the handle across all nodes when acnet:start() is called or something like that.

This sounds good. We could add a config variable to the acnet application, like acnet:use_nodes, which would have a list of node names. Obviously, all names must be valid aliases for the local node. We'll probably have to add new instances of acnet:request_reply, etc. that take an additional parameter so the sender can specify which logical node is to send the packet (the current functions would use default_node.)

#3 Updated by Richard Neswold 11 months ago

  • Category set to ACSys/FE Framework

Set category field.

#4 Updated by Richard Neswold 8 months ago

  • Target version set to ACSys/FE v1.7

Is this still something we want?



Also available in: Atom PDF