It would be nice to have an integrated function that let an operator take a screenshot when he sees a problem. This is far better than having them try to put the problem into words. I have seen this feature on several other HMIs.

I know they could use SnagIt or MWSnap, but that would take several additional steps and would require additional software on each client. Instead, I would just want a little camera icon on the screen, and it would take a snapshot whenever they clicked it. The destination folder, maximum folder size, etc would be configurable properties. I would want to be able to set it up for auto sccreen shots at configurable time intervals as well.

1 Like

This is a good idea. In the meantime, you can acheive 90% of this functionality yourself. Here’s how:

Put a button on a window with your camera icon. Put a script like this on the button:

window = fpmi.gui.getParentWindow(event) project = window.parent fpmi.print.printToImage(project)

Hope this helps,

Thanks for pointing me in this direction Carl. I added a little more code and have it working pretty close to what I need:

[code]window = fpmi.gui.getParentWindow(event)
project = window.parent

filename = (“C:\New Folder/test” + event.source.FormattedDate + “.png”)

I added a dynamic property that took the system time and converted it to a legal formatted date to be used in a filename, and then I concat the timestamp with a fixed filename. This way, they never get the dialog “The filename already exists…” since the name will change every second. I also change the background to yellow very briefly to make it look like a flash bulb is going off so the operator knows something happened (I know, it’s late…).

I love seeing things like a camera flash effect! I once changed the background of a temperature to fade from blue to white to red when it went from 0 to 50 to 100 degrees. Not as cool, but it was a pain to figure out the formulas to convert my ranges (what can I say? Math and I are not good friends…)

Robert - it sounds like you didn’t know about the gradient() expression.

Step7 - I love it! Very creative and effective way to give them feedback that the button did something.

Oh! I forgot about about gradient()! But that wouldn’t have been the right solution because I wanted the mid range background color to be white, not purple. It’s very close though.

Ah ok. You can nest gradient() calls with if(), etc and make some pretty complex color ranges. Anyhow, its always nice to see some eye-candy being created!

I would have also added icicles growing from the top of the screen when it got colder, and steam rising from the bottom when it got warmer. What can I say, a guy has to have a little fun doing this stuff.