-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add service allowing to retrieve (active) error & alarm details #14
Comments
Some quick thoughts on a possible design.
Click to expand# empty request (service returns information about all active alarms & errors).
#
# We could perhaps support 'filtering' by allowing users to request details
# for a subset of active alarms only.
---
# Each entry in this list provides detailed information about all currently
# active alarms. If this list is empty, there are no active alarms.
#
# Note: order of entries in this list does not encode for any specific severity
# or priority of active alarms.
motoros2_interfaces/msg/AlarmInfo[] alarms
# Alarm Number
int32 number
# Sub Code
int32 sub_code
# Alarm Name/Message
string name
# Contents
string contents
# Meaning
string description
# Cause, Remedy and Notes for Cause-Remedy pairs
motoros2_interfaces/msg/CauseRemedyPair[] cause_remedy
# Cause
string cause
# Remedy
string remedy
# Notes
string notes
# Each entry in this list provides detailed information about all currently
# active errors. If this list is empty, there are no active errors.
#
# Note: order of entries in this list does not encode for any specific severity
# or priority of active errors.
motoros2_interfaces/msg/AlarmInfo[] errors
# identical to 'alarms' above
[..] This service returns two lists with instances of I've deliberately made With Same for re: re: |
@ted-miller: would you have any recommendations as to which M+ APIs to use to retrieve the data we'd need for this service? |
Unfortunately, there aren't any public API's available for retrieving the alarm There is no API at all for getting the There is a possible alternate approach. The alarm Something else to consider is the fact that none of the MotoROS2 alarms have |
it's slightly less skeleton-y now. Needs an updated M+ Edit: btw, the cause/remedy parts are commented at the moment. |
hm. I'll take a look a later to see whether I can find something for those latter two.
Other than reading the
I don't believe there's support for that (ie: SFTP) in M+ (or anything below that). The
well, that's somebody-else's problem ;) |
Yeah. I don't consider parsing a csv to be an official "api".
No. I've implemented regular FTP in M+ before. But not SFTP.
Very bad things happen when you touch that file system. I will not access that SD card. |
After some deliberation and thinking about it more, my new proposal would be as follows (I've removed some of the comments to reduce verbosity): Click to expand# empty request
---
uint32 result_code
string message
# Each entry in this list provides detailed information about all currently
# active alarms. If this list is empty, there are no active alarms.
#
# Note: order of entries in this list does not encode for any specific severity
# or priority of active alarms.
motoros2_interfaces/AlarmInfo[] alarms
# Alarm Number
uint32 number
# Alarm Name/Message
string name
# Sub Code
int32 sub_code
# reserved for future use: contents (from CSV)
string contents
# reserved for future use: meaning (from CSV)
string meaning
# reserved for future use: potential causes and their potential remedies (from CSV)
motoros2_interfaces/AlarmCauseRemedy[] help
# Cause
string cause
# Remedy
string remedy
motoros2_interfaces/AlarmInfo[] errors
# identical to 'alarms' field above
... I'd like to make progress and implement just the minimal That would allow users access to error/alarm information while we can take some time to figure out how to implement the additional functionality (ie: retrieve more detailed error/alarm descriptions and information about possible causes and remedies). The Note: I've removed the @ted-miller: if you agree with this proposal, I'll update Yaskawa-Global/motoros2_interfaces#9 and start on finalising the discussed functionality. |
Something else to consider: I find the name of the I always have to remember that "name == message". |
I find the
I would suggest renaming the
I've never had a clear understanding of the distinction between these fields. I'd suggest combining into one. We can just concat the contents of the csv file.
There is no csv file for error information. I think these should just be a number and message. (I'm not sure whether errors have subcodes.) |
yeah, so the thing is we have this pair of fields ( I'd be OK with But then I'd also like to rename the field in other definitions.
👍
hm. Ok. I'll take a look whether that works in general. There's quite some variation in those
I liked being able to reuse the same I'll prototype an
the internal API definitely suggests they do. |
@ted-miller: I've updated the message definitions in Yaskawa-Global/motoros2_interfaces#9. Only thing I haven't done I realise now is:
We could still decide to do that. I'll take a look at the |
Ignore that comment. I was thinking of something else. They should be separate. |
Implement a service (perhaps
motoros2_interfaces/GetActiveAlarmInfo
or similarly named) which clients could invoke to retrieve more information about active alarms/errors.We could expose other data next to alarm subcode data. If available, we could perhaps have it return string descriptions of alarms & errors and other information (possible remedies?).
We can't add this to our
RobotStatus
publications, as that message doesn't have the necessary fields (and they can't be added either, as it should stay generic / vendor-neutral).Edit: note that this service is not intended to be a replacement of
RobotStatus
. Retrieving the information returned by the service incurs overhead, and should really only be used to get more insight into alarms/errors reported viaRobotStatus
publications.The text was updated successfully, but these errors were encountered: