I have been lurking these forums for some time now, popping into see if I can find any troubleshooting tips and tricks whenever I get into a sticky situation. You have all been very helpful and I appreciate the community that is here. However, I have been holding back this post until I felt that I have honestly wrapped my head around how this product works and what I was able to accomplish with it. If anyone has any advice, or shared the same experiences that I have had please respond and let me know what it is that you have done, it would be great to know that I am not alone in this and hopefully solve some of the concerns that I have come across. A lot of this may seem silly, with many work arounds for what should have simple solutions but after speaking with Reps, Engineers, and even attending the Opto22 course at their headquarters and showing the trainers in person what I am dealing with, I am left with bewilderment and not a whole lot of answers.
Last year the AR1 came across my desk with the instruction to see if it were a viable option to replace Qlarity Foundry that we were running on all of our systems. I was tasked with building a Groov project that was clear, responsive, and durable that closely replicated the Qlarity interface that the customers have been using for some time now.
Since this is a web-based interface there was no way to auto launch the project when the customer turned their computer on. To solve this I used Chrome as my browser, opened Groov view, added a shortcut to the desktop, opened up the shortcut properties then added " -kiosk" to the end of the target, then added this shortcut to the startup file in the registry for windows. Now when the customer turns on their computer the browser will launch into the project, in fullscreen, without the taskbar, with no right click properties and virtually blocks the user from exiting the project until they plug in a physical keyboard. Since we are using a touch screen this was a safe and secure method to keeping the end user out of the places we dont want them in as well as auto launching the project. However, this created another thing to consider, Groov view does not have an embedded keyboard, when Chrome is in kiosk mode it does not allow the Windows touch keyboard to run, and if I do not want to the customer to access anything other than the project I cannot give them a keyboard to use. My work around for this was to use a Chrome virtual keyboard extension. This works well but is not ideal as I do not want the dev or google to one day pull support for the extension, or worse yet entirely remove it from the store, but it will work in the mean-time.
Scaling: I started to build my first page and immediately noticed that the grid in the workspace was cut off on the bottom which made it difficult to find true center of my page. Regardless, I manually counted out where my center was and placed a Page Navigator and a few lines of text to act as a Welcome screen. I squared everything up and launched into Groov View where everything on my monitor was centered nicely but on the panel PC that the customer would be using all of my gadgets were way off to the right side of the screen. After all the research that I did on Groov, and all the conversations that I had with other users I was told explicitly that Groov scales itself to the devices aspect ratio. This has limitless possibilities and was a major selling point for us. Well, it was obvious that this feature does not work for all ratios. I am using a Teguar 2945-15 touchscreen PC with a resolution of 1024 x 768 (4:3). In order to center my project on this panel PC I had to open a blank page, show the grid, place a Vertical Line gadget and a Horizontal Line gadget on the page, then move it one increment at a time until I could no longer see it on the panel PC. Once my outer boundaries were set I did the same process with my center using a measuring tape to find the center of the panel PC. Now that I had my exterior boundaries and center point laid out I built my own workspace grid using Line gadgets. The result is all of my gadgets and images hanging over the Groov Build workspace on the right, which makes building my pages particularly finicky and time consuming to ensure that what is being displayed for the customer is neat and tidy. At this time I had an idea, that perhaps Groov acts similarly to Opto Display Configurator in that the display scales to the working environment and not necessarily the devices being used to display your project. So to test this I opened up Groov Build on the panel PC and built a new page centering everything the normal way. Launching Groov View from the panel PC and looking at the page built from that panel PC it is still pushing all of my gadgets to the right side of center. So for now it seems like I will have to work with my home made workspace in Build. I was fortunate to attend the Opto22 training course shortly after dealing with this scaling issue and brought a backup of the project with me so that I could show the engineers what I was dealing with. Everyone who saw it was as puzzled as I was and did not have an answer as to why this was happening.
Gadget Customization: I continued to build my pages using this unorthodox manner and was disappointed by the lack of gadget customization in comparison to Qlarity or Opto PAC Display. Specifically, I am unable to change the text based on the state of my variable. For example if I have a variable that == 1 I want the text to say "TO DRUM" and if the variable is == 0 I want the text to say "TO TANK". Another disappointment was not being able to make basic shapes. If I wanted to have a specific segments of my page visually separated from the rest of the information by using a differently colored background than the page background all I have available to do so is to separate it with Lines or to use the Group Header gadget, which does not allow me to change the gadget background color as it is set to whatever my background color is. The only option I am left with is to either give the customer a legend book that explains which color represents the state of each button that isn’t simply ON/OFF and have several Group Headers that are all the same color or I use Illustrator to design my own graphics and change my Button Display Mode to Image and add a simple colored square/rectangle to my image library. Which is exactly what I did and lead to a slew of different problems.
Image Library Problems: I called the Opto22 hotline to find out what the pixel density of the Build grid was, and the rep that I spoke to could not find out what it was. So I started from 1px upward, creating a 1x1px SVG and bringing it in to the project and increasing the size by 1 pixel at a time until I had a rough idea of how big a single box of the grid was. I settled on 8x8px and started there. Once I had designed an image that closely resembled the Button gadget (with customized text based on variable state) I brought it back into the project and started tagging. I also made a simple rectangle and square of a different color to act as my “group” background. This worked for a considerable amount of time until I needed to add another “group” background, instead of copying and pasting the previous background I added it again from the image library into the workspace and enlarged it to match another one on the page. However, I could not get the second image to match the same size of the first image, the second one kept snapping just smaller than the first even though it was the same image from the library, a bizarre but not important observation. Fast forward to introducing the project to the customer; on two occasions now in the middle of testing, and in the middle of operation, certain images are not being displayed and instead a ‘corrupt image’ icon is shown. When this happens (on page 1) some images are shown as corrupt and others are not, if I navigate to page 2 the same thing is occurring where some of the images are corrupt, then I go back to page 1 and now some of the ones that were corrupted are now being shown but others are not. After moving through pages several times I cannot find a pattern to this occurring, it is completely random. I opened the project on my laptop and looked at the Image Library and all of the images are there, then going into Groov View and the same thing is occurring on my laptop as it is on the panel PC. I called the Opto22 hotline again and the best answer that they could give was that it was probably a browser error and Chrome was not handling the request for the image properly. To reboot the screen and the problem should go away. However, this is not an acceptable solution. The customer should not have to exit the browser in the middle of operation just to be able to see what button they are pressing. My image library is not large, for the entire project it is only 22Kb of SVG images. When looking at the System Information in Groov Admin, there were no signs of failure, nothing in the error logs, nothing to raise suspicion. After trying different browsers I noticed that the same problem would occur in Chrome, Firefox, and Edge. One of the difficulties with this was that it would happen randomly making it difficult to troubleshoot exactly what was causing this to happen. Here are the image links
Finally, and worst of all is this inexplicable run away: There are a few items that run away on the customer. If they want to increase the speed of a pump, or change the position of a damper they hold the Groov gadget assigned to that output and let go when they have reached the desired position, however, on several occasions, once they have removed their finger from the icon the output stays engaged and continues to drive whatever it is assigned to until the operator presses in an empty space on the screen. At first I assumed it was an issue with the touch panel in the screen, however using a coordinate tool to log the location and input values of the users ‘clicking’ I can confidently say that the panel is acting as it should, with no sticky keys. Next I looked at the strategy, with my watch windows opened and manipulating the value of my variable from within the watch window itself and not the Groov, I was unable to make the value “bind”. Every time I changed the IVAL state, the XVAL would follow suit nearly immediately. Once again, after numerous tests with the variable in question, and others for safe measure, I can rule out the Control Strategy as the cause for this problem. Next was to look at the AR1, we recreated the problem and opened our watch windows. Sure enough after pressing the Button gadget and removing our finger from the screen the variable remained ON until we clicked in empty space within the page. We decided to open up the Groov project on a desktop PC to try and recreate it with a mouse, to eliminate the touch input. What we saw was something I could only call input binding, when the icon is pressed and dragged around even slightly you can see the cursor change from a pointing finger to a circle with a line through it. Once the cursor image has changed and you let go of the mouse the output value returns to its OFF state as it should, however, when the mouse is simply dragged across that icon without clicking the mouse the output value then changes to ON as if it were engaged. Furthermore, as you can see in the video, after the input is ‘bound’, if I press the gadget next to it (Burner Close) I am still engaging with the Burner Open gadget, after that single press it seems that the “binding” breaks and the mouse is able to hover over any button without engaging it. We then decided to try it on yet another device, my laptop, and used the other browsers that I had to see if the problem was isolated to Chrome or to the AR1. When the project was launched in Firefox the project did not load whatsoever. I was greeted with the usual ‘Not a Secure Site’, clicked proceed anyway, logged into my project, then nothing loaded except the black item bar at the top of the page without my page navigation menu, without my events icon, and without the menu icon. Moved on to Edge, where the project partially loaded and only some gadgets and images were displayed, while others were not (similar to our corrupt image problem). Regardless, we were able to recreate the issue in Edge. This leaves me to believe that our problem lies on the AR1 as we have eliminated the Strategy, the touch panel, the panel PC, the touch input, the mouse input, and the browsers. I understand that this may seem like a non-issue given that no operator in their right mind would act so aggressively as I did in the video, nor would they be attempting to drag icons around the screen. Except two concerns arise from this. Firstly, you do not need to be so deliberate in trying to “bind” the input. My coworker, the operator and I have caused this to happen simply by holding the button with our thumb and just by the weight of our arm being extended causes our hand to move slightly and causes this ‘binding’. Secondly, our screens use a PenMount driver, where your finger acts as the mouse, this leads to the operator pressing the gadget then removing his finger and the cursor stays hovering over whatever was last pressed, and as you can see from the video this hovering action engages the gadget without needing it to be pressed. This is a serious concern for us, especially given the nature of what it is they are controlling with this button as it could create life threatening circumstances if not closely monitored. Here is a Dropbox link to the video (please use sound to hear when the mouse is being clicked). The semi circle on the bottom left of each Button gadget is tagged the same as the button so that we can clearly see when the button is being pressed. The value in the light blue box just above these buttons is the input coming back from the burner itself and you can clearly see when the Burner Open or Burner Close button is pressed that the burner is moving and “running away”. https://www.dropbox.com/s/zg0mrr86mtpi5ka/AR1%20Input%20Binding.mp4?dl=0
Again, if anyone has encountered the same situations or has any advice on how to fix some of these thing we would greatly appreciate a response.
Thanks for taking the time to read this novel of a post, and I hope you have a good day,