benji667 / open-dqmh-request-message-diagram Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://benji667.github.io/Open-DQMH-Request-Message-Diagram/
License: Other
Home Page: https://benji667.github.io/Open-DQMH-Request-Message-Diagram/
License: Other
The Open DQMH Request Message Diagram does not work if you launch it on a DQMH Cloneable Module request.
LabVIEW Version: 2017 SP1 32 bits
Package Version: 1.0.0
There are implementation issues with version 1.0.0.6:
In the "find message text.vi" you still have a conditional terminal in the for loop so it will exit for the first string it finds (the output array will always have one element only). So its pretty much the same as it was before because: if you have more than one string constants in your EHL then it only finds one of them. To fix this the conditional terminal needs to be removed as well as the case structure surrounding the second for loop cause it will only executes if the last reference is a string constant reference and there is no guarantee to it at all.
In "open dqmh request message diagram qd.vi" the string array is wired the for loop. The array will always have zero or one elements because of the problem described in (1). If you fix that then the array might have multiple elements, but because a shift register is used on the for loop if the first string is not the string we are looking for then the "set visible case vi" outputs an error which rolls to all the following iterations and the MHL case swith will never happen.
Not an implementation problem but a new feature: The purpose of the QD is to open the right MHL of the Main.VI, but I believe it would be benefitial to also swith the EHL.
I have implemented all the fixes and the new feature. Changes are commented. Find the files under the link below.
Files changed:
https://drive.google.com/drive/folders/1vlecC5Nulc7V-I9ERcz-7A8Y8p0BUY03?usp=sharing
Hi Benjamin,
First, thanks for implementing this great idea, I think this will be a big time saver for my team who uses DQMH a lot !
I found a bug in the code of the plugin VI named "Get DQMH Main VI.vi", the Main VI is not selected correctly:
While it works most of the time (because the Main VI SHOULD always be the last item in the library), there are cases where it does not. For example in this case, the "Create Test Log File" VI is selected instead of the Main VI:
I have noticed that the shortcut (ctrl+k) works for some of the requests and doesnt work for others.
After checking the source I have found that Find message text.vi searches until it finds the first string constant and then exits from the for loop. The problem with this is that if you for whatever reason I put another string constant to the EHL (and I usually do) then it becomes the first string the Find text message finds and because there is obviously no matchig case in the MHL to this second string the plugin does nothing.
(it is very counter intuitve but true: if you have one string constant on your BD and then you add another one then this new one will be the first and the original is the second. If you put a third one than that becomes the first etc)
How to reproduce:
How to solve the problem:
https://imgur.com/a/1E1KJae
quite self explanatory.
Another thing I've changed is that I open the BD of the module main even if I cant find request case. I believe opening the main still has a lot of value cause you dont need to go to the project explorer and dig for the main VI. This partially solves the other issue with cloneable modules cant be opened with the plugin. With this change at least the module main opens which is still useful.
By the way great job creating this plugin, I have found it very useful.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.