-
Posts
458 -
Joined
-
Last visited
-
Days Won
17
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by viSci
-
The standard route to getting your Instructor Cert. is to go to the weekend training in Austin. It is also mentioned on ni.com that there are alternative 'equivalent' certs that can be obtained from Microsoft, Novell, etc. Also mentioned that some independent courses maybe eligible but need to be sanctioned by NI first. I was wondering if anyone has taken any of the alternative routes and how it worked out for them.
-
Functional Dataflow Programming with LabVIEW
viSci replied to Tomi Maila's topic in LabVIEW Feature Suggestions
Interesting...The closest I have come to functional programming is with Lua. I am not even sure it qualifies but have taken advantage of Lua's ability to assert a 'function string' that can be composed and executed at runtime. BTW, I really enjoyed the Spolsky article and am looking forward to your next post!- 7 replies
-
- functional programming
- dataflow
-
(and 1 more)
Tagged with:
-
I have an application that opens 8 RS232 com ports with VISA aliases. I am finding that under various circumstances the VISA references are not being closed (even though I am issuing a VISA close) The problem is that when I try to reopen the com ports some seem to be still open thus giving the error that the resource is valid, but VISA cannot currently access it. I have tried closing the com ports before opening and even querying the VISA driver to see which com ports it thinks are open and then trying to close those ports. But nothing seems to be fool proof. Was wondering if anyone has come up with a solution for this, thanks.
-
Here is my take on converting Clusters to SQLite table records.... Cluster to SQLite Demo.zip
-
This guy really knows his stuff... www(dot)controlguru(dot)com I have found that understanding the open loop response of a system is a good first step. Try to use this knowledge to develop a FeedForward model of the system and then the PID portion will be able to deal with the smaller (and hopefully linear) error left over.
-
Anybody heard any word on this? I understand that it is forthcoming and that it will have some cool new features...
-
Yeah I should probably stay out of it but as the only electrical / software engineer on the team I was asked to make a suggestion. Really as you say it requires specialized knowledge. I like to be able to understand the root causes and fix the problem at the root rather than a bandage approach. Here in Florida (the lightning capitol of the world) surge damage is very serious concern. From what I have read, CAT5 surge protection should be done where cables come into the building and should be afforded a direct low resistance path to earth ground. The Telco's seemed to have solved this problem so I would be interested to understand their approach to grounding and surge protection.
-
Not really a LV question but regarding distributed systems installations... I have a large scale system that involve multibuilding LAN interconnects that is plagued by surge damage. From what I can gather, external (where cables come into the building) LAN surge protection and grounding is best. Does anyone have any equipment recommendations or guidelines on the subject? Thanks
-
Feedback Requested: Daklu's NI Week presentation on AOD
viSci replied to Daklu's topic in LabVIEW General
Hi Dave - I thought your presentation was very good. Unlike many others I have seen you convey a sense of thoughtful composure and confidence in your subject material. -
I think this will beat anything at NIWEEK...
-
Anyone seen the 2013 Device Driver DVD image yet?
-
I guess the broader topic here is how to store objects or complex data structures in a database. I think it should be possible to build a cluster to SQLite API but now that we have the lineator I wonder if it is possible and makes more sense to build this as a plugin.
-
What so bad about 'thread safe' singletons anyway?
viSci replied to viSci's topic in Application Design & Architecture
Thanks all for the good comments. I am still unsure of a better way to construct a transactional data model that can be used by Multiple View Processes. Here is my take thus far: 1. Since the application requires Multiple View Processes I cannot pass around a class wire so will need interfaces to a central store 2. One of the nice things about the Model Class Data DVR is that you can extend the data model without breaking any wires directly connected to IPE's (I do not like that aesthetic either) or wrapping the IPE's in class methods and using the Get Ref vi in each case to extract the DVR onto the BD and into a local IPE. 3. The semaphore protection would be nice but seems complex to understand all nuances 4. A FGV housed Data Model solution by itself would be unwieldy since it is so limited in extensibility. 5. Will have to study the impact of data copies in my approach, thanks mje -
What so bad about 'thread safe' singletons anyway?
viSci replied to viSci's topic in Application Design & Architecture
That article is a bit confusing...the SEQ version seems interesting and has built in mutexing which is nice but I do not understand the warnings about its use. This helps to clarify the options... https://decibel.ni.com/content/docs/DOC-20865 It looks like I probably should just encapsulate all my R-M-W operations into class methods that use the IPE wrapper and get rid of the semaphore mutex -
What so bad about 'thread safe' singletons anyway?
viSci replied to viSci's topic in Application Design & Architecture
Yes - I was just trying to be funny but really that is the issue - I am presuming that my method is thread safe but now am concerned that I, like many others that have inspired God's wrath, have been lulled into a false sense of thread safety. Here is a typical example of how I would do a R-M-W operation: Basically this is a cooperative mutex. Any Model read that intends on using its data to do a subsequent M-W is required to lock the model. I think there is a flaw in my code in that a isolated Model write should wait for the mutex semaphore if it has been locked by a R-M-W sequence. -
What so bad about 'thread safe' singletons anyway?
viSci replied to viSci's topic in Application Design & Architecture
In my MVC architecture I have many Views all running in separate threads so I needed a way to provide thread safe access to the Model data. Initially, I created the Model class with the idea that the DVR would be my locking mechanism but soon realized that the 'Modify' logic in some cases was too complex to put into the Model class itself so I needed to add the semaphore to allow the external locking. I think my BD suggests that the DVR reference is public but actually only Model Class vi's have access to it. I would be curious to know how others would construct a transactional model that is fast and can conveniently store and retrieve any LV data type. BTW, I think that the prominent feature of 'thread safety' is avoiding race conditions in shared data structures (at least according to wikipedia -
What so bad about 'thread safe' singletons anyway?
viSci replied to viSci's topic in Application Design & Architecture
At first I did not have the semaphore but then realized that I might not want to build all forms of R-M-W permutations into specific class methods. With the semaphore I can have use cases that allow external concatenation of Lock,Read,Modify,Write,Unlock methods without having to change the core Model class. -
Besides retribution from God, it seems that there are some legitimate use cases (at least I hope so since my latest MVC architecture is based on the concept). In my application, Model data is housed in the DVR wrapped class data of a singleton. Various methods within the class allow View instances to perform Read or Read-Modify-Write operations. RMW operations can be locked using the built-in semaphore. So far it all seems to work nicely with up to 6 View instances all performing rapid transactions on the Model. I guess the downside is that a hung View could block access to the Model (maybe I should have put a timeout in the semaphore lock Since this is a first attempt please do not be too harsh if I am doing something utterly foolish...
-
I thought my mutex'd singletons were a good idea but now it seems I have blood on my hands...
-
Maybe a hybrid approach could work... You could create a singleton class that provides global access to an encapsulated DVR that references your 'Model' data. You can put semaphore mutex functions in the class so that Read/Modify/Write sequences can be safely performed by any processes in your app.