NIWeek 2016 kicks off Monday August 1st with the Exhibition Hall doors opening at 5:30PM. Bloomy’s BTS (Battery Test and Simulation) team has been hard at work preparing for what looks to be the most exciting NIWeek for us yet! If you plan to be at the show, here are 5 exciting things to look out for, and of course please be sure to come by our booth (Booth #205) to say hello. For those who won’t be at the show, I’ll be posting a conference summary soon after we return, with relevant links to the highlights and to materials that will have been presented.
You are here
In my previous post, I introduced the concept of object-oriented inheritance. I also suggested that, as a regular G developer, you already know enough to start writing your own object-oriented code.
Maintaining this same (I hope empowering) perspective, let’s dive into the next foundational principle of object-oriented programming: encapsulation. Look for a post covering the final principle (polymorphism) shortly.
Bloomy’s Battery Test and Simulation (BTS) team continues its participation at industry conferences in 2016, following a successful presence at the ESA (Energy Storage Association) 26th Annual Conference this past April in Charlotte, NC. At the event, Peter Blume spoke on "ESS Performance Testing for US DOE Energy Storage Smart Grid Demonstration Program". To view the presentation, see ESS Performance Testing - ESA 2016.
You Already Know Enough to Get Started
If you do not currently leverage object-oriented programming techniques in your LabVIEW code (believe it or not) you likely know more than enough to get started. Object-oriented programming is not magic—it is a programming style built for modularity, and maintainability. As a regular G developer, you probably encounter clusters, libraries, type definitions, property nodes, and polymorphic VIs on a daily basis.
A universal test system software architecture
Are you developing test sequences using NI TestStand? If so, beware that a lot more goes into a full test architecture than test sequences. In our experiences, test developers often focus solely on the test sequences and code modules, leaving items like file management, hardware abstraction, operator interfaces, and result processing all but forgotten until you run into a problem. Unfortunately, these items often take longer to develop, and require more in-depth TestStand knowledge than the test sequences themselves.
The Material Review Board (MRB) usually consists of a meeting of personnel from Quality, Materials, Purchasing and Manufacturing engineering. The purpose of an MRB is to review rejected material for disposition. Disposition decisions are often made based on schedule requirements, material cost, availability of alternatives, or analysis of the defect. The MRB material of interest is Printed Circuit Board Assemblies (PCBAs).
What is an interface?
An interface is the set of methods, messages, or VIs (think connector panes) that we use to pass data in and out of a software module. Simply put, what are the inputs and outputs, and how do they get in and out? A software module could be a class, a library, or simply a repository of VIs (in descending order of author preference).
Why are interfaces useful?
In the previous installment, we built a very simple program which consisted of a single actor and a single message. In this part we will create an application that is a bit more complex. This example consists of two actors: a DAQ actor which can read an analog voltage and a User Interface actor which provides a graphical user interface to display the data. Let’s get started!
Scrum is powerful because it takes a large amount of work--for which estimating the total effort needed for completion is very difficult--and breaks it up into several 2-4 week long well-defined sprints. At the end of each sprint, the team delivers tested, documented, working code that the customer can immediately interact with and use to inject feedback into the next sprint cycle. Before the code is handed off, the team holds two meetings: the sprint review meeting and the sprint retrospective meeting.