
public class CanOpenProxy extends Object implements org.lsst.ccs.framework.HardwareController, org.lsst.ccs.framework.ClearAlertHandler, BridgeToHardware, org.lsst.ccs.framework.HasLifecycle, AlertRaiser, CanOpenEventListener
| Modifier and Type | Field and Description |
|---|---|
protected int |
bootedDeviceNB |
protected boolean |
hardwareBootProcessEnded |
protected Map<String,PieceOfHardware> |
hardwareMapByName |
protected Map<Integer,PieceOfHardware> |
hardwareMapByNodeID
This map of PieceOfHardware which key is CANopen nodeID of the hardware
represents the list of pieces of hardware (CANopen devices) this
CanOpenProxy manages.
|
protected String |
name |
alertSeparater| Constructor and Description |
|---|
CanOpenProxy(long hardwareBootTimeout)
Creates a CanOpenProxy with a tcpip port number to start the tcp server
on, a client name, and a hardware booting process timeout.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
allDevicesBooted()
This method returns true if : all the hardware items are booted and
identified and the hardware have the node ID expected within the
configuration and the hardware is initialized.
|
void |
bootProcess()
Check if all pieces of hardware in the configuration are booted with the corect serial number.
|
org.lsst.ccs.framework.ClearAlertHandler.ClearAlertCode |
canClearAlert(org.lsst.ccs.bus.data.Alert alert)
Overridden method from ClearAlertHandler interface to define conditions
when Alerts can be cleared.
|
void |
checkNodeID(int nodeID)
Check that a nodeID entered by an end user at the console is a valid one:
- nodeID should be in the hardwareMapByNodeID.
|
void |
checkStarted() |
void |
connectHardware()
This method is used when the loader CANbus is connected.
|
void |
disconnectHardware()
***********************************************************************************************
******************** END OF SETTERS AND GETTERS
**********************************************
***********************************************************************************************
/**
/**
This methods stops the CWrapper client, and the TCP server.
|
org.lsst.ccs.AlertService |
getAlertService()
return alertService
|
String |
getName() |
String |
getNodeName(int aNodeID)
For a piece of hardware that this tcpProxy manages, this methods returns
the name of the device when the CANopen node id is given as argument.
|
PDOStorage |
getPdoStorage() |
org.lsst.ccs.Subsystem |
getSubsystem() |
void |
init() |
boolean |
isReady()
This method should return true when connection to hardware is effective
and all devices connected to that bridge have been correctly identified.
|
String |
listBootedNodes()
List the can open bootedNodes which are in the bootedNodes table.
|
List<String> |
listHardwareNames()
For the GUI : Return an Array containing hardware names handled by this
component.
|
void |
onBootMessage(int nodeID) |
void |
onEmergencyMessage(int nodeID,
int errCode,
int errReg)
Process an emergency message received from a CANopen device on the status
bus : - ALARM or WARNING Alert is raised, - a message is logged, -
Observers are notified.
|
void |
postStart()
check that all pieces of hardware is booted.
|
String |
printHardwareList()
Return a String with the list of hardware expected in this subsystem.
|
String |
printHardwareState()
Return a printed list of hardware with the initialization state.
|
String |
printPDOStorage()
For tests.
|
void |
publishData()
Publish Data on status bus for trending data base and GUIs.
|
void |
readDevicesInfo()
This method is called in the checkHardware method during the
initialization process.
|
PDOStorage |
readPDOs()
This method sends a sync command to the can open stack and returns the
reply.
|
int |
readSDO(int nodeID,
int index,
int subindex)
Read a SDO with the given index and subindex RETURNS the value read in
hexa (String) if no error occured or throws an Exception if an error
occured.
|
String |
readSDOCommand(int nodeID,
int index,
int subindex)
Command to be used by the end user at the console in engineering mode.
|
int |
readSDOLong(int nodeID,
int index,
int subindex) |
void |
retrieveHardwareInfo()
Identification of the hardware : we want to retrieve the information
stored in the hardware of the booted bootedNodes and update the array of
bootedNodes with this information.
|
void |
shutdownNow()
This shutdowns the scheduler.
|
void |
start() |
String |
toString() |
String |
writeSDO(int nodeID,
int index,
int subindex,
int size,
int value)
Command to be used by the end user at the console.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcheckHardware, checkStoppedbuild, postBuild, postInit, postStop, stopclearAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseWarning, raiseWarning, raiseWarning, raiseWarning, raiseWarning@LookupName protected String name
protected final Map<Integer,PieceOfHardware> hardwareMapByNodeID
@LookupField(strategy=CHILDREN) protected final Map<String,PieceOfHardware> hardwareMapByName
protected boolean hardwareBootProcessEnded
protected int bootedDeviceNB
public CanOpenProxy(long hardwareBootTimeout)
hardwareBootTimeout - public String getName()
getName in interface AlertRaiserpublic org.lsst.ccs.Subsystem getSubsystem()
getSubsystem in interface AlertRaiserpublic PDOStorage getPdoStorage()
public void disconnectHardware()
disconnectHardware in interface BridgeToHardwarepublic void connectHardware()
BridgeToHardwareconnectHardware in interface BridgeToHardwarepublic void init()
init in interface org.lsst.ccs.framework.HasLifecycle@Command(type=ACTION, description="Check if all pieces of hardware are booted with the corect serial number.") public void bootProcess()
bootProcess in interface BridgeToHardwarepublic void start()
start in interface org.lsst.ccs.framework.HasLifecyclepublic void postStart()
postStart in interface org.lsst.ccs.framework.HasLifecyclepublic void readDevicesInfo()
public void checkStarted()
checkStarted in interface org.lsst.ccs.framework.HardwareControllerpublic void shutdownNow()
shutdownNow in interface org.lsst.ccs.framework.HasLifecyclepublic String getNodeName(int aNodeID)
aNodeID - @Command(type=QUERY, level=3, description="Print the list of CANopen nodes which are booted on the CAN bus. (values are in HEXA)") public String listBootedNodes()
public void checkNodeID(int nodeID)
nodeID - @Command(type=ACTION, level=3, description="Send a CanOpen writeSDO command to the Can Bus. \nValues of the argument are to be given in hexadecimal format for: index and subindex\n and in decimal format for size and value.\n size represents the number of bytes on which the value is encoded. See device documentation.") public String writeSDO(int nodeID, int index, int subindex, int size, int value)
nodeID - FORMAT=hexaindex - FORMAT=HEXAsubindex - FORMAT=HEXAsize - FORMAT=decimal between 0 and 4.value - FORMAT=decimalFcsHardwareExceptionpublic int readSDO(int nodeID,
int index,
int subindex)
nodeID - index - subindex - SDORequestExceptionShortResponseToSDORequestExceptionpublic int readSDOLong(int nodeID,
int index,
int subindex)
@Command(type=QUERY, level=3, description="Send a CANOpen readSDO command to the Can Bus.") public String readSDOCommand(int nodeID, int index, int subindex)
nodeID - the node idindex - the indexsubindex - the sub indexFcsHardwareExceptionpublic PDOStorage readPDOs()
readPDOs in interface BridgeToHardwareFcsHardwareException@Command(type=QUERY, level=0, description="Identification of the hardware : we want to retrieve the information stored in the hardware of the CANopen devices") public void retrieveHardwareInfo()
@Command(type=QUERY, level=0, description="Return true if all CANopen devices are booted and identified.Identified means that the serial numbers match the CANopen nodeID which reside inconfiguration.") public boolean allDevicesBooted()
allDevicesBooted in interface BridgeToHardwarepublic void onBootMessage(int nodeID)
onBootMessage in interface CanOpenEventListenerpublic void onEmergencyMessage(int nodeID,
int errCode,
int errReg)
onEmergencyMessage in interface CanOpenEventListenernodeID - errCode - errReg - @Command(type=QUERY, level=1, description="Return a printed list of hardware expected in this subsystem.") public String printHardwareList()
printHardwareList in interface BridgeToHardware@Command(type=QUERY, level=1, description="Return a printed list of hardware with the initialization state.") public String printHardwareState()
printHardwareState in interface BridgeToHardware@Command(type=QUERY, level=1, description="Return an Array containing hardware names handled by this component.") public List<String> listHardwareNames()
listHardwareNames in interface BridgeToHardwarepublic org.lsst.ccs.framework.ClearAlertHandler.ClearAlertCode canClearAlert(org.lsst.ccs.bus.data.Alert alert)
canClearAlert in interface org.lsst.ccs.framework.ClearAlertHandleralert - @Command(type=QUERY, level=1, description="Publish booting information for all CANopen devices.") public void publishData()
publishData in interface BridgeToHardware@Command(type=QUERY, level=1, description="Return a printed format of PDOStorage.") public String printPDOStorage()
public boolean isReady()
BridgeToHardwareisReady in interface BridgeToHardwarepublic org.lsst.ccs.AlertService getAlertService()
AlertRaisergetAlertService in interface AlertRaiserCopyright © 2017 LSST. All rights reserved.