TLB–TopLevelBaselineapplicationandcomponenttemplate/toolNormanKirchner
TopLevel?AVIthatcanbeconsideredtheprimaryofasystemormajorcomponentofasystemTypicallyhasfrontpanelshownbutnotarequirementControlsflowofapplicationandprocessingProcessinghappenswithinexecutedstatesRunsforlifetimeofapplicationorcomponent
GetInstalledInstallVIPackageManager(freecommunityedition)
InstallpackageRestartLVRefreshestoolsmenu
GetDevelopingToolsTLB–NewBaselineFollowInteractiveDialog
BaselineArchitectureApplicationINITonceandonlyoncecodeEventHandlerLoopuserinteractionresponsePrimaryExecutionLoopmainflowofprogramAppCloseclosereferencesshutdown
ApplicationINITSequenceofcasesprimestheapplicationstackedinsteadofflatforcleanlinessNot‘all’init.codegoeshereJustonceandonlyoncestuffEnqueuesspecificsetofstatestoPrimaryExecution
EventHandlerResponsivetobuttonpushesandvaluechangesPre-definedcaseshandlewindowcloseandshutdownSourceofqueuedmessagestoPrimaryExecution
PrimaryExecutionPre-definedcaseshandlecommonfunctionsInitError95%ofworkhappenshere‘Default’casehandlesstatetypos
ApplicationCloseHandlesdisplayconsiderationifbuiltintoEXENorealprocessingshouldhappenhereUse‘Exit’inPrimaryExecution
TheSHIFTERMasterstateclusterALLdataassociatedwithapplicationNEVERsendintosub-VIEasilyaddelementsthroughTypedefshortcut
‘UserParameters’Scalarinputsonthefrontpanelnumerics,strings,etc.Registerfor‘valuechange’eventdynamicallyPreventseventstructurebloatAllterminalsin1state:UpdateUserParam.EnablesallparamtobeaccessibletoentireprogramwithoutneedforlocalVar
‘DisplayData’Scalars,plotsetcAnythingthatneedstogetupdatedonthepanelStoreinshiftertoprovidedataaccesstoentireappInsteadofoutputtingdirectlytoindicatorCall‘UpdateDisplay’statetorefreshdisplay
ExtraHandyThingsGracefullyshutsdownbo