Message Component - Reset?

More
7 years 11 months ago #120082 by Nitram
Hello.

I have set up a message using the HAL "message" component.
Specifically it is for the spindle cover on a lathe. At the moment the message reacts so that when the cover is opened it brings up the message.
I would like the message to self-reset. That is, when the cover is closed the message goes away again by itself.
At the moment the message needs to be clicked to clear it after closing the spindle cover.
Is there a pin or parameter to enable the message component to behave in this way, i.e be "live" without latching or needing to be manually clicked to clear it?
Are there any other suggestions to achieve the same thing?

Many thanks,
Marty.

Please Log in to join the conversation.

More
7 years 11 months ago #120170 by andypugh
Replied by andypugh on topic Message Component - Reset?
The code is here
github.com/LinuxCNC/linuxcnc/blob/master...ponents/message.comp

It actually uses the LinuxCNC error message channel (
Code:
rtapi_print_msg(RTAPI_MSG_ERR, "%s\n", messages[myidx]);
) and that has no way to auto-reset. In fact that messages themselves have no memory of where they came from or what caused them.

You might want to consider hacking the hal_manualtoolchange script. That has behaviour closer to what you want.
github.com/LinuxCNC/linuxcnc/blob/master..._manualtoolchange.py

Please Log in to join the conversation.

More
7 years 11 months ago #120172 by dgarrett
Replied by dgarrett on topic Message Component - Reset?
If you are using the axis gui, there are pins to clear notifications:
Code:
$ halcmd show pin axisui\.notifications Component Pins: Owner Type Dir Value Name 73 bit IN FALSE axisui.notifications-clear 73 bit IN FALSE axisui.notifications-clear-error 73 bit IN FALSE axisui.notifications-clear-info

Example test:
Code:
sim_pin axisui.notifications-clear

Ref: linuxcnc.org/docs/2.7/html/gui/axis.html#_axisui_pins

Please Log in to join the conversation.

More
7 years 11 months ago #120174 by andypugh
Replied by andypugh on topic Message Component - Reset?
Good point, Dewey.

And with a oneshot HAL component it would be possible to toggle that pin any time that the chuck guard was lowered. That would clear every notification any time the guard was moved from open to closed, but that might actually be OK.

Please Log in to join the conversation.

More
7 years 11 months ago #120220 by Nitram
Replied by Nitram on topic Message Component - Reset?
Regarding gmocchapy, do you see the pins below as the same per the Axis example above? Excerpt below taken from the gmocchapy manual and may provide the same functionality with a oneshot component?

5.7. Error Pins
gmoccapy.error

gmoccapy.delete-message

gmoccapy.error is an bit out pin, to indicate an error, so a light can lit or even the machine may be stopped. It will be reseted with the pin gmoccapy.delete-message. gmoccapy.delete-message will delete the first error and reset the gmoccapy.error pin to False after the last error has been cleared.

Note
Messages or user infos will not affect the gmoccapy.error pin, but the gmoccapy.delete-message pin will delete the last message if no error is shown!

Please Log in to join the conversation.

More
7 years 3 months ago #140144 by DeckelHead
I'd like to resurrect this thread because I'm trying to do something similar. I too am using Axis as my UI. However, I can't seem to create a 'net' between the pin and a signal in my HAL file. Inside Axis, I can do a setp on the reset, assigning a value of TRUE, and that works great. But getting this to work when my control transitions to 'machine on' just isn't happening. I'm assuming that I have missed an appropriate loadrt and/or addf, but I haven't been able to find the right mix.

Yes, this is probably a foolish question. But I am also willing to bet that some other soul reading this is probably thinking, "thank God that guy asked this question!" too. :)

Please Log in to join the conversation.

More
7 years 3 months ago #140150 by phillc54
Replied by phillc54 on topic Message Component - Reset?
You would need to net the axisui.notifications-clear pin in the postgui halfile

Please Log in to join the conversation.

More
7 years 3 months ago #140186 by DeckelHead
Ah! That makes sense... I had looked at ordering in my INI file, but I didn't even consider that the GUI had a postgui HAL file. I'll try that.... Thanks for the heads up!

Please Log in to join the conversation.

More
6 years 10 months ago #152272 by chimeno
Replied by chimeno on topic Message Component - Reset?
Hi, I found this old thread, and I'm looking for a HAL pin output that notifies me when a message appears in the AXIS guide, any idea if it exists? does not exist.

I have to create a new output pin, I must look at the file
Code:
./src/emc/usr_intf/axis/scripts
Code:
if hal_present == 1:     comp = hal.component ("axisui")     comp.newpin ("jog.x", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.y", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.z", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.a", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.b", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.c", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.u", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.v", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.w", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.increment", hal.HAL_FLOAT, hal.HAL_OUT)     comp.newpin ("notifications-out", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("notifications-clear", hal.HAL_BIT, hal.HAL_IN)     comp.newpin ("notifications-clear-info", hal.HAL_BIT, hal.HAL_IN)     comp.newpin ("notifications-clear-error", hal.HAL_BIT, hal.HAL_IN)     comp.newpin ("resume-inhibit", hal.HAL_BIT, hal.HAL_IN)

added this line
Code:
comp.newpin ("notifications-out", hal.HAL_BIT, hal.HAL_OUT)

now I must connect it, I guess I should look at the
Code:
class Notification (Tkinter.Frame):

but I don't have much experience in phyton, if someone can guide me or help me ?, thanks

greeting
Chimeno

Please Log in to join the conversation.

More
6 years 9 months ago #154007 by chimeno
Replied by chimeno on topic Message Component - Reset?
Hello again,
I am trying that when an error message occurs to be able to activate an output pin, warning, I think it would be good for linuxcnc, now I have it worked as I show in the image img2477, but when I close the application an error appears, I will not program python so I'm trying, if someone can tell me what I did wrong or how I should do it, the changes are in this fil
Code:
./src/emc/usr_intf/axis/scripts/axis.py

the lines that added
Code:
comp ['notifications'] = False
Code:
comp ["notifications"] = True
Code:
comp.newpin ("notifications", hal.HAL_BIT, hal.HAL_OUT)

in which section:
Code:
 def remove (self, widgets):         self.widgets.remove (widgets)         if len (self.cache) <10:             widgets [0] .pack_forget ()             self.cache.append (widgets)         else:             widgets [0] .destroy ()         if len (self.widgets) == 0:             self.place_forget ()             comp ['notifications'] = False   def error_task (self):         error = e.poll ()         while error:             kind, text = error             if kind in (linuxcnc.NML_ERROR, linuxcnc.OPERATOR_ERROR):                 icon = "error"             else:                 icon = "info"             notifications.add (icon, text)             comp ["notifications"] = True             error = e.poll ()         self.error_after = self.win.after (200, self.error_task) if hal_present == 1:     comp = hal.component ("axisui")     comp.newpin ("jog.x", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.y", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.z", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.a", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.b", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.c", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.u", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.v", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.w", hal.HAL_BIT, hal.HAL_OUT)     comp.newpin ("jog.increment", hal.HAL_FLOAT, hal.HAL_OUT)     comp.newpin ("notifications-clear", hal.HAL_BIT, hal.HAL_IN)     comp.newpin ("notifications-clear-info", hal.HAL_BIT, hal.HAL_IN)     comp.newpin ("notifications-clear-error", hal.HAL_BIT, hal.HAL_IN)     comp.newpin ("resume-inhibit", hal.HAL_BIT, hal.HAL_IN)     comp.newpin ("notifications", hal.HAL_BIT, hal.HAL_OUT)

greeting
Chimeno

Please Log in to join the conversation.

Time to create page: 0.252 seconds
Powered by Kunena Forum