Jump to content

Mark Balla

  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by Mark Balla

  1. Since the Gingerman is no longer in downtown Austin the a consensus has been formed and many of the LV enthusiast will be meeting at BANGER'S SAUSAGE HOUSE AND BEER GARDEN Sunday evening.

    This is a few blocks from the convention center opposite direction of 6th street. Most people start arriving around 6:30-7 after dinner. Please come by if you are around Sunday evening.

    Banger's Sausage House & Beer Garden

    79, 81, & 81.5 Rainey St.

    Austin, TX 78701




    • Like 2
  2. I have decide that if more than one class uses a typedef than is belongs to neither so it goes in a common location.

    I do have to find out all the typedefs that are used before copying a class. But prefer it to the coupling of classes that is created when one of them owns the typedef.

    Dmitry Sagatelyan's 2018 NIWeek presentation SOLID Actor Programming had an interesting solution to this issue. He creates a application specific translation class. These classes are not intended for reuse and translate outputs from one class to inputs of another. 

  3. LV Champion Derek Trepanier has developed a Git solution and did 2 presentation at the CLA summit


    I am still working on getting all the CLA videos edited and uploaded. The new Tecnova video sharing site is a week away from going live.

    So to keep the momentum going I have posted Derek's presentation on the link below so others can see his perspective.



    • Like 2
  4. Thank for the update on the crashing videos I will re format them and look into the issue.

    Last Friday the old server that we are using crashed and so currently it is down.

    No videos were lost

    I.T. is working on a new solution but may take a week or two.

    NI is also working on putting the videos on their Center of Excellence Vimeo  site by June 30th

    I will post updates when they become available.

  5. I will look to see what the ban rules are when I logon to the server tomorrow. It will only ban if a logon fails X amount of times and the ban is only temporary and no more than 24hrs.

    Video 205 is Fab's presentation on technical wealth. She is editing the video and I hope to have it up this week. I will post when it is ready.

  6. The Tecnova FRC server is back online.


    Thanks for your patients


    I've added 3 videos from the 2015 CLA summit that cover features in 2014 sp1 and 2015


    2015 CLA_00A_Jeff Kadosky_New Wire

    2015 CLA_13_Rob Dye_Profile Buffer Allocation Tool in 2014SP1

    2015 CLA_16_Jeff Kadosky_Round Table New Wire



    • Like 2
  7. Apologies the Server is down due to a bad UPS battery and a power failure.



    I will work with I.T. to get it back online this week.


    Thank you for letting me know I will post when the server is back online.



  8. There are several issues with MultiQ that I hoped to get feedback on. The main question is what people think about the concept itself (I am using LAVA as an idea exchange here, at the risk of getting most eyes on the bad parts of code :-)), could it be useful (perhaps not if you are already using JAMA/your message routing solution for example). -But there are other things; like how full queues should be handled. 


    Regular queues can go wild if no one is consuming the data and the length has not been limited, or you can block new production by setting a maximum number of elements. However, with a pub-sub design such behaviour becomes an even bigger problem; do you really want to halt publication because one subscriber is not consuming? Probably not, but sometimes you might...So should the solution support both, or simplify by choosing one of the two? How does the message routing solution deal with message flooding (I'll have another look at it later)?


    One of main difference that I see between yours and mine is who is responsible for sending the messages (who's while loop sends the message).

    In yours you appear to spawn a "distributor" and it receives and distributes the messages to the registered modules.

    In my architecture the sender does all the work (Through the API)

    • API finds the specific message registry using the name of the message
    • In the registry  is an array of all couriers that want to receive the message.
    • The message is placed in each courier and the "Send" method is called

    So mine requires the sender to create the copies and send the message to each recipient where yours delegates that responsibility to the distributor loop. In MultiQ Because every module depends on the distributor if it crashes or dies then all communication is lost. This is something that I struggled with in previous implementations. It will work and I know of at least 2 other CLAs that use this method but for me is creates an unnecessary dependency in the types of application I build.

  9. Back in 2011 I posted a framework 



    It was inspired by a CLA presentation by Rob Humfeld (Who is the guy that taught me LabVIEW) called JAMA


    The WOW factor for me was when he open 2 separate vis one generating data and one displaying data.

    He created a third to detect spikes and ran it without stopping the other 2. The module ran and started receiving the waveform data and detected spikes. 

    After that he stopped the vi made changes and started it back up again without stopping the 2 running vis.


    This was the type of architecture I was looking for so I took the ideas he had wrapped in an OOP framework.

    Hopefully the graphics and example code explain the way it works.


    The power of this  framework is modules are totally decoupled from each other and do not depend on any other module.

    They created, manage and destroy their own courier (transport mechanism) 

    They only receive messages that they register for.

    Any module can send any message at any time this makes creating simulator quick and easy.


    I find this framework especially useful when building test systems.

    • Using the framework I will create an asynchronous modules for each major device in the system. These modules will connect to the hardware and monitor health and maintain connection.
    • Next I will create a module that will be called synchronously by the test sequencer. Its purpose is to
    1. connect to the async module through the framework 
    2. request and receive measurements via messages
    3. Pass results back to the sequencer
    4. Close down

    This works because the framework allows any module to connect, communicate and die without adversely affecting other modules. 





  • Create New...

Important Information

By using this site, you agree to our Terms of Use.