SlideShare une entreprise Scribd logo
1  sur  39
OO: LLAMA: Leveraging Object-Oriented
Programming for Designing a Logging Framework
LLAMA
Jesse Batsche
Project Manager, DMC
Christian Owen
Systems Engineer, DMC
Established in 1996, DMC serves customers worldwide from offices in
Chicago, Boston, Denver, Houston, New York, Reno, Seattle, and St. Louis.
employees & growing
170+
DMC Overview
Industries Served
Energy & Utilities
Printing
Automotive
Food & Beverage
Semiconductor
Chemical
Oil & Gas Engineering
Specialty Machinery
Consumer Goods
Packaging Machinery
Programming
Telecommunications
Defense Contracting
Pharmaceutical
Test & Measurement
Our NI Certifications
12 Certifications 4 Certifications 4 Certifications
DMC has partnered with National Instruments since 1997
DMC’s team of certified LabVIEW engineers
is one of the largest in the country
1 Certification
Areas of Expertise
Manufacturing Automation
& Intelligence
Test & Measurement
Automation
Microsoft Consulting
Services
Custom Software &
Hardware Development
Today we are NOT talking about…
Logging?
Today we ARE talking about:
Event Logging. Execution Trace Logging.
Session Outline
• Why do we need a logging tool?
• What makes a good logging tool?
• Review community and industry options
• How could such a tool be programmed?
• Where do we go next?
Why Do We Need A Logging Tool?
• Essential to debugging and monitoring deployed applications (no
development environment)
• Case study : Remote debug of Transmission EOL Tester in factory
• Bridging the gap : User stories <-> Log files <-> Code execution
Why Do We Need A Logging Tool?
• Supplements and fills gaps in built in LabVIEW debug tools
• Debugging parallel operations
• Highlight execution and breakpoints will
change execution speed
• Probes aren’t convenient for iterative calls
• Event logging is always watching
What Makes A Good Logging Tool?
• Easy to use
• Simple API
• Low barrier to entry, easy to integrate into applications,
small footprint
• Lightweight
• Minimal impact on application performance
• Configurable
• Configurable at run time and after building
• Easy to Extend
• Easy to “plug in” new features
What Makes A Good Logging Tool?
• Organized Output
• Categorization or grouping of Entries
• Timestamped
• Significance or Subsystem
• Easy to read, parse, search
• Widely Accessible
• PC or RT
• Development or Runtime
• Cross target
• Provides LIVE and HISTORICAL feedback
What Makes A Good Logging Tool?
Your Thoughts?
• What are other characteristics that a good logging tool should have?
What’s Available?
• NLog (for .NET)
• Supports multiple targets
• Structured logging and categorization by severity
• NI Desktop Execution Trace toolkit
• Excellent for profiling memory and performance
• Runs outside of LabVIEW (better for diagnosing crashes)
• LabVIEW Community Tools
• Logger by Field R&D Services, LLC
• LabQT LGPL Open Source Library Logger
• …
How could such a tool be programmed?
• A practical discussion of LabVIEW programming techniques
LLAMA
• LLAMA Logs AlMost Anything
_(ツ)_/¯
• Design Intent
• Pursue the ideals discussed earlier
• Keep a simple task simple
• DMC is sharing LLAMA (full source code) for you to download
Developer API
Enqueue
LLAMA Message.lvclass
(Log Entry, Config, Shutdown, …)
LLAMA Daemon
(Queued Message Handler)
Publish
LLAMA Target.lvclass
(Text File, PC Console, RT Console, …)
Live / Historical Feedback
• Console Log target provides live feedback
• File targets can be used to capture historical information
Easy to Use
• Straightforward API
• Small code footprint, portable
• Easy to integrate into an application
• Drop Daemon
• Drop API calls
LLAMA: Overview
• The LLAMA daemon
• Launched at startup, runs in background
• Consumes API messages
• Hangs on to an array of Target objects and a queue reference
• The LLAMA Messaging VIs
• Enqueues Message objects, which are consumed by the daemon
• Configure, Log Entry, Shutdown
• Low overhead
Lightweight
• Heavy lifting occurs in daemon
• API calls are merely enqueueing a message object
• Daemon handles messages as time allows
• A quick benchmark : Log string to Text File
• 2 steps
• Generate string to log : enqueue
• <2% of time (3.3 us)
• Compose full log string, write to text file
• 98% of time (185 us)
Organized Output
• Categorization in terms of Severities
• Trace Debug Info Warn Error Fatal
• Categorization by functional area
• Headers allow for simple sorting of entries
• Timestamp and Log Level included here
• Simplest Case : Text File
• Flexible, easily searched/parsed
• Extension Case : Structured (e.g. cluster)
• Avoid string parsing, more compact representation
Configurable at Runtime/Post-Build
• LLAMA can be configured to write to a number of log targets
• Log targets can be added or removed without restarting application
• Configuration can be updated after building
Categorized Output, Configurable Tool
Widely Accessible
• Compatible with RT targets and PC targets
• Can run in development environment and executables
• Limitations
• No native support for log consolidation between targets
Extensible
• Example: Instead of string to a text file… We
want CAN Frame Message to a Database Target
• Creating a Message plug-in
• Create a new child of Message and override
“Process” method
• Add a new VI to the API which enqueues the
Message object
• Creating a Target plug-in
• Create a new child of Target and override “Log” and
“Configure” methods
Where Do We Go Next?
• More destinations via new Target child classes
• Database
• Structured TDMS execution trace
• Cross-target consolidation
• Syslog
• Expanded API via new Message child classes
Audience Input
• What would you find useful?
• What have you done in your own logging toolchains?
LLAMA
http://bit.ly/dmcllama
Download and Login to the NIWeek Mobile App
VIEW
WEEKLY SCHEDULE
FIND
YOUR SESSION
BUILD
YOUR SCHEDULE
More Information at ni.com/niweek
www.dmcinfo.com
sales@dmcinfo.com
312.255.8757
Questions? Contact Us…
Ni week 2018 LLAMA presentation

Contenu connexe

Tendances

Herpes labial e genital
Herpes labial e genitalHerpes labial e genital
Herpes labial e genitalPedro Oliveira
 
Aula 5 - Sifílis (1).pptx
Aula 5 - Sifílis (1).pptxAula 5 - Sifílis (1).pptx
Aula 5 - Sifílis (1).pptxDiegoSousa419733
 
O computador e seu funcionamento
O computador e seu funcionamentoO computador e seu funcionamento
O computador e seu funcionamentoJackerCastilho
 
Introdução a linguagem java
Introdução a linguagem javaIntrodução a linguagem java
Introdução a linguagem javaRosicleia Frasson
 
RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)Elen Arantza
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema OperacionalAnderson Favaro
 
Wavestone - Séminaire à Paris sur la psd 2 et l'éconmie de l'api
Wavestone - Séminaire à Paris sur la psd 2 et l'éconmie de l'apiWavestone - Séminaire à Paris sur la psd 2 et l'éconmie de l'api
Wavestone - Séminaire à Paris sur la psd 2 et l'éconmie de l'apiBertrand Carlier
 
Introdução ao Flyway
Introdução ao FlywayIntrodução ao Flyway
Introdução ao FlywayJadson Santos
 
Servidores Web
Servidores Web Servidores Web
Servidores Web bastosluis
 
2. makalah PMS
2. makalah PMS2. makalah PMS
2. makalah PMSsendi24
 
Doenças Ginecológicas.pdf
Doenças Ginecológicas.pdfDoenças Ginecológicas.pdf
Doenças Ginecológicas.pdfSamara165561
 
Comunicaçao de dados
Comunicaçao de dados Comunicaçao de dados
Comunicaçao de dados bernardo4
 

Tendances (15)

Herpes labial e genital
Herpes labial e genitalHerpes labial e genital
Herpes labial e genital
 
Aula 5 - Sifílis (1).pptx
Aula 5 - Sifílis (1).pptxAula 5 - Sifílis (1).pptx
Aula 5 - Sifílis (1).pptx
 
O computador e seu funcionamento
O computador e seu funcionamentoO computador e seu funcionamento
O computador e seu funcionamento
 
1o ano ds ts - herpes genital
1o ano   ds ts - herpes genital1o ano   ds ts - herpes genital
1o ano ds ts - herpes genital
 
Introdução a linguagem java
Introdução a linguagem javaIntrodução a linguagem java
Introdução a linguagem java
 
Ppt DBD
Ppt DBDPpt DBD
Ppt DBD
 
RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema Operacional
 
Wavestone - Séminaire à Paris sur la psd 2 et l'éconmie de l'api
Wavestone - Séminaire à Paris sur la psd 2 et l'éconmie de l'apiWavestone - Séminaire à Paris sur la psd 2 et l'éconmie de l'api
Wavestone - Séminaire à Paris sur la psd 2 et l'éconmie de l'api
 
Introdução ao Flyway
Introdução ao FlywayIntrodução ao Flyway
Introdução ao Flyway
 
Servidores Web
Servidores Web Servidores Web
Servidores Web
 
RabbitMQ.pptx
RabbitMQ.pptxRabbitMQ.pptx
RabbitMQ.pptx
 
2. makalah PMS
2. makalah PMS2. makalah PMS
2. makalah PMS
 
Doenças Ginecológicas.pdf
Doenças Ginecológicas.pdfDoenças Ginecológicas.pdf
Doenças Ginecológicas.pdf
 
Comunicaçao de dados
Comunicaçao de dados Comunicaçao de dados
Comunicaçao de dados
 

Similaire à Ni week 2018 LLAMA presentation

Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesInductive Automation
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesInductive Automation
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Demi Ben-Ari
 
Dreamforce 2017 - Advanced Logging Patterns with Platform Events
Dreamforce 2017 - Advanced Logging Patterns with Platform EventsDreamforce 2017 - Advanced Logging Patterns with Platform Events
Dreamforce 2017 - Advanced Logging Patterns with Platform Eventsandyinthecloud
 
Observability for Application Developers (1)-1.pptx
Observability for Application Developers (1)-1.pptxObservability for Application Developers (1)-1.pptx
Observability for Application Developers (1)-1.pptxOpsTree solutions
 
Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?GetInData
 
Building A Product Assortment Recommendation Engine
Building A Product Assortment Recommendation EngineBuilding A Product Assortment Recommendation Engine
Building A Product Assortment Recommendation EngineDatabricks
 
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...Midori Oge
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile DeveloperBSGAfrica
 
ReflectInsight - Let your application speak volume
ReflectInsight - Let your application speak volumeReflectInsight - Let your application speak volume
ReflectInsight - Let your application speak volumeCallon Campbell
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Amazon Web Services
 
Sharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratchSharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratchAdelina Simion
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Katherine Golovinova
 
OSMC 2023 | Journey to observability: tracking every function execution in pr...
OSMC 2023 | Journey to observability: tracking every function execution in pr...OSMC 2023 | Journey to observability: tracking every function execution in pr...
OSMC 2023 | Journey to observability: tracking every function execution in pr...NETWAYS
 
Analyzing OTM Logs and Troubleshooting
Analyzing OTM Logs and TroubleshootingAnalyzing OTM Logs and Troubleshooting
Analyzing OTM Logs and TroubleshootingMavenWire
 
Intro to Telegraf
Intro to TelegrafIntro to Telegraf
Intro to TelegrafInfluxData
 
Conceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónConceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónMongoDB
 
Wie beschleunigt die Denodo Plattform Ihre Zeit der Erkenntnisgewinnung?
Wie beschleunigt die Denodo Plattform Ihre Zeit der Erkenntnisgewinnung?Wie beschleunigt die Denodo Plattform Ihre Zeit der Erkenntnisgewinnung?
Wie beschleunigt die Denodo Plattform Ihre Zeit der Erkenntnisgewinnung?Denodo
 

Similaire à Ni week 2018 LLAMA presentation (20)

Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
 
Dreamforce 2017 - Advanced Logging Patterns with Platform Events
Dreamforce 2017 - Advanced Logging Patterns with Platform EventsDreamforce 2017 - Advanced Logging Patterns with Platform Events
Dreamforce 2017 - Advanced Logging Patterns with Platform Events
 
Shaik Niyas Ahamed M Resume
Shaik Niyas Ahamed M ResumeShaik Niyas Ahamed M Resume
Shaik Niyas Ahamed M Resume
 
Observability for Application Developers (1)-1.pptx
Observability for Application Developers (1)-1.pptxObservability for Application Developers (1)-1.pptx
Observability for Application Developers (1)-1.pptx
 
Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?
 
Building A Product Assortment Recommendation Engine
Building A Product Assortment Recommendation EngineBuilding A Product Assortment Recommendation Engine
Building A Product Assortment Recommendation Engine
 
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
 
ReflectInsight - Let your application speak volume
ReflectInsight - Let your application speak volumeReflectInsight - Let your application speak volume
ReflectInsight - Let your application speak volume
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
 
Sharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratchSharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratch
 
1 - Introduction.ppt
1 - Introduction.ppt1 - Introduction.ppt
1 - Introduction.ppt
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
 
OSMC 2023 | Journey to observability: tracking every function execution in pr...
OSMC 2023 | Journey to observability: tracking every function execution in pr...OSMC 2023 | Journey to observability: tracking every function execution in pr...
OSMC 2023 | Journey to observability: tracking every function execution in pr...
 
Analyzing OTM Logs and Troubleshooting
Analyzing OTM Logs and TroubleshootingAnalyzing OTM Logs and Troubleshooting
Analyzing OTM Logs and Troubleshooting
 
Intro to Telegraf
Intro to TelegrafIntro to Telegraf
Intro to Telegraf
 
Conceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónConceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producción
 
Wie beschleunigt die Denodo Plattform Ihre Zeit der Erkenntnisgewinnung?
Wie beschleunigt die Denodo Plattform Ihre Zeit der Erkenntnisgewinnung?Wie beschleunigt die Denodo Plattform Ihre Zeit der Erkenntnisgewinnung?
Wie beschleunigt die Denodo Plattform Ihre Zeit der Erkenntnisgewinnung?
 

Plus de DMC, Inc.

NI Week 2019 Overview
NI Week 2019 OverviewNI Week 2019 Overview
NI Week 2019 OverviewDMC, Inc.
 
VI package manager
VI package managerVI package manager
VI package managerDMC, Inc.
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package ManagerDMC, Inc.
 
Auto Code Generation and Rapid Brewery/Distillery Automation
Auto Code Generation and Rapid Brewery/Distillery AutomationAuto Code Generation and Rapid Brewery/Distillery Automation
Auto Code Generation and Rapid Brewery/Distillery AutomationDMC, Inc.
 
Multi-site WinCC 7 Development with Centralized Process Historian & Informati...
Multi-site WinCC 7 Development with Centralized Process Historian & Informati...Multi-site WinCC 7 Development with Centralized Process Historian & Informati...
Multi-site WinCC 7 Development with Centralized Process Historian & Informati...DMC, Inc.
 
Dynamic and Scalable Systems Using WinCC OA
Dynamic and Scalable Systems Using WinCC OADynamic and Scalable Systems Using WinCC OA
Dynamic and Scalable Systems Using WinCC OADMC, Inc.
 
Taking your Siemens PLC s7-1200 to industry 4.0
Taking your Siemens PLC s7-1200 to industry 4.0Taking your Siemens PLC s7-1200 to industry 4.0
Taking your Siemens PLC s7-1200 to industry 4.0DMC, Inc.
 
Flexibility and standardization using dynamic IO addressing and option handling
Flexibility and standardization using dynamic IO addressing and option handlingFlexibility and standardization using dynamic IO addressing and option handling
Flexibility and standardization using dynamic IO addressing and option handlingDMC, Inc.
 
Ni week 2018 DMC presentation IoT
Ni week 2018 DMC presentation IoTNi week 2018 DMC presentation IoT
Ni week 2018 DMC presentation IoTDMC, Inc.
 
Ni week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothatNi week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothatDMC, Inc.
 
Career Development Plans as a Competitive Advantage
Career Development Plans as a Competitive AdvantageCareer Development Plans as a Competitive Advantage
Career Development Plans as a Competitive AdvantageDMC, Inc.
 
10 Tips for Using SharePoint to prepare for the CSIA Audit
10 Tips for Using SharePoint to prepare for the CSIA Audit10 Tips for Using SharePoint to prepare for the CSIA Audit
10 Tips for Using SharePoint to prepare for the CSIA AuditDMC, Inc.
 
5 Tips for Using TIA Portal V14 to Decrease Safety Development Time
5 Tips for Using TIA Portal V14 to Decrease Safety Development Time 5 Tips for Using TIA Portal V14 to Decrease Safety Development Time
5 Tips for Using TIA Portal V14 to Decrease Safety Development Time DMC, Inc.
 
Pushing Data from S7-1200 to Cloud
Pushing Data from S7-1200 to CloudPushing Data from S7-1200 to Cloud
Pushing Data from S7-1200 to CloudDMC, Inc.
 
Lightning Fast SCADA Development with Open Library for WinCC OA
Lightning Fast SCADA Development with Open Library for WinCC OA Lightning Fast SCADA Development with Open Library for WinCC OA
Lightning Fast SCADA Development with Open Library for WinCC OA DMC, Inc.
 
What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...DMC, Inc.
 
Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...
Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...
Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...DMC, Inc.
 
What's New in LabVIEW 2017
What's New in LabVIEW 2017What's New in LabVIEW 2017
What's New in LabVIEW 2017DMC, Inc.
 
Tools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source CodeTools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source CodeDMC, Inc.
 
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoTReal-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoTDMC, Inc.
 

Plus de DMC, Inc. (20)

NI Week 2019 Overview
NI Week 2019 OverviewNI Week 2019 Overview
NI Week 2019 Overview
 
VI package manager
VI package managerVI package manager
VI package manager
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package Manager
 
Auto Code Generation and Rapid Brewery/Distillery Automation
Auto Code Generation and Rapid Brewery/Distillery AutomationAuto Code Generation and Rapid Brewery/Distillery Automation
Auto Code Generation and Rapid Brewery/Distillery Automation
 
Multi-site WinCC 7 Development with Centralized Process Historian & Informati...
Multi-site WinCC 7 Development with Centralized Process Historian & Informati...Multi-site WinCC 7 Development with Centralized Process Historian & Informati...
Multi-site WinCC 7 Development with Centralized Process Historian & Informati...
 
Dynamic and Scalable Systems Using WinCC OA
Dynamic and Scalable Systems Using WinCC OADynamic and Scalable Systems Using WinCC OA
Dynamic and Scalable Systems Using WinCC OA
 
Taking your Siemens PLC s7-1200 to industry 4.0
Taking your Siemens PLC s7-1200 to industry 4.0Taking your Siemens PLC s7-1200 to industry 4.0
Taking your Siemens PLC s7-1200 to industry 4.0
 
Flexibility and standardization using dynamic IO addressing and option handling
Flexibility and standardization using dynamic IO addressing and option handlingFlexibility and standardization using dynamic IO addressing and option handling
Flexibility and standardization using dynamic IO addressing and option handling
 
Ni week 2018 DMC presentation IoT
Ni week 2018 DMC presentation IoTNi week 2018 DMC presentation IoT
Ni week 2018 DMC presentation IoT
 
Ni week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothatNi week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothat
 
Career Development Plans as a Competitive Advantage
Career Development Plans as a Competitive AdvantageCareer Development Plans as a Competitive Advantage
Career Development Plans as a Competitive Advantage
 
10 Tips for Using SharePoint to prepare for the CSIA Audit
10 Tips for Using SharePoint to prepare for the CSIA Audit10 Tips for Using SharePoint to prepare for the CSIA Audit
10 Tips for Using SharePoint to prepare for the CSIA Audit
 
5 Tips for Using TIA Portal V14 to Decrease Safety Development Time
5 Tips for Using TIA Portal V14 to Decrease Safety Development Time 5 Tips for Using TIA Portal V14 to Decrease Safety Development Time
5 Tips for Using TIA Portal V14 to Decrease Safety Development Time
 
Pushing Data from S7-1200 to Cloud
Pushing Data from S7-1200 to CloudPushing Data from S7-1200 to Cloud
Pushing Data from S7-1200 to Cloud
 
Lightning Fast SCADA Development with Open Library for WinCC OA
Lightning Fast SCADA Development with Open Library for WinCC OA Lightning Fast SCADA Development with Open Library for WinCC OA
Lightning Fast SCADA Development with Open Library for WinCC OA
 
What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...
 
Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...
Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...
Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...
 
What's New in LabVIEW 2017
What's New in LabVIEW 2017What's New in LabVIEW 2017
What's New in LabVIEW 2017
 
Tools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source CodeTools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source Code
 
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoTReal-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
 

Dernier

The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 

Dernier (20)

The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 

Ni week 2018 LLAMA presentation

  • 1.
  • 2. OO: LLAMA: Leveraging Object-Oriented Programming for Designing a Logging Framework
  • 4. Jesse Batsche Project Manager, DMC Christian Owen Systems Engineer, DMC
  • 5. Established in 1996, DMC serves customers worldwide from offices in Chicago, Boston, Denver, Houston, New York, Reno, Seattle, and St. Louis. employees & growing 170+ DMC Overview
  • 6. Industries Served Energy & Utilities Printing Automotive Food & Beverage Semiconductor Chemical Oil & Gas Engineering Specialty Machinery Consumer Goods Packaging Machinery Programming Telecommunications Defense Contracting Pharmaceutical Test & Measurement
  • 7. Our NI Certifications 12 Certifications 4 Certifications 4 Certifications DMC has partnered with National Instruments since 1997 DMC’s team of certified LabVIEW engineers is one of the largest in the country 1 Certification
  • 8. Areas of Expertise Manufacturing Automation & Intelligence Test & Measurement Automation Microsoft Consulting Services Custom Software & Hardware Development
  • 9. Today we are NOT talking about… Logging?
  • 10. Today we ARE talking about: Event Logging. Execution Trace Logging.
  • 11. Session Outline • Why do we need a logging tool? • What makes a good logging tool? • Review community and industry options • How could such a tool be programmed? • Where do we go next?
  • 12. Why Do We Need A Logging Tool? • Essential to debugging and monitoring deployed applications (no development environment) • Case study : Remote debug of Transmission EOL Tester in factory • Bridging the gap : User stories <-> Log files <-> Code execution
  • 13. Why Do We Need A Logging Tool? • Supplements and fills gaps in built in LabVIEW debug tools • Debugging parallel operations • Highlight execution and breakpoints will change execution speed • Probes aren’t convenient for iterative calls • Event logging is always watching
  • 14. What Makes A Good Logging Tool? • Easy to use • Simple API • Low barrier to entry, easy to integrate into applications, small footprint • Lightweight • Minimal impact on application performance • Configurable • Configurable at run time and after building • Easy to Extend • Easy to “plug in” new features
  • 15. What Makes A Good Logging Tool? • Organized Output • Categorization or grouping of Entries • Timestamped • Significance or Subsystem • Easy to read, parse, search • Widely Accessible • PC or RT • Development or Runtime • Cross target
  • 16. • Provides LIVE and HISTORICAL feedback What Makes A Good Logging Tool?
  • 17. Your Thoughts? • What are other characteristics that a good logging tool should have?
  • 18. What’s Available? • NLog (for .NET) • Supports multiple targets • Structured logging and categorization by severity • NI Desktop Execution Trace toolkit • Excellent for profiling memory and performance • Runs outside of LabVIEW (better for diagnosing crashes) • LabVIEW Community Tools • Logger by Field R&D Services, LLC • LabQT LGPL Open Source Library Logger • …
  • 19. How could such a tool be programmed? • A practical discussion of LabVIEW programming techniques
  • 20. LLAMA • LLAMA Logs AlMost Anything _(ツ)_/¯ • Design Intent • Pursue the ideals discussed earlier • Keep a simple task simple • DMC is sharing LLAMA (full source code) for you to download
  • 21. Developer API Enqueue LLAMA Message.lvclass (Log Entry, Config, Shutdown, …) LLAMA Daemon (Queued Message Handler) Publish LLAMA Target.lvclass (Text File, PC Console, RT Console, …)
  • 22. Live / Historical Feedback • Console Log target provides live feedback • File targets can be used to capture historical information
  • 23.
  • 24. Easy to Use • Straightforward API • Small code footprint, portable • Easy to integrate into an application • Drop Daemon • Drop API calls
  • 25.
  • 26. LLAMA: Overview • The LLAMA daemon • Launched at startup, runs in background • Consumes API messages • Hangs on to an array of Target objects and a queue reference • The LLAMA Messaging VIs • Enqueues Message objects, which are consumed by the daemon • Configure, Log Entry, Shutdown • Low overhead
  • 27. Lightweight • Heavy lifting occurs in daemon • API calls are merely enqueueing a message object • Daemon handles messages as time allows • A quick benchmark : Log string to Text File • 2 steps • Generate string to log : enqueue • <2% of time (3.3 us) • Compose full log string, write to text file • 98% of time (185 us)
  • 28. Organized Output • Categorization in terms of Severities • Trace Debug Info Warn Error Fatal • Categorization by functional area • Headers allow for simple sorting of entries • Timestamp and Log Level included here • Simplest Case : Text File • Flexible, easily searched/parsed • Extension Case : Structured (e.g. cluster) • Avoid string parsing, more compact representation
  • 29. Configurable at Runtime/Post-Build • LLAMA can be configured to write to a number of log targets • Log targets can be added or removed without restarting application • Configuration can be updated after building
  • 31. Widely Accessible • Compatible with RT targets and PC targets • Can run in development environment and executables • Limitations • No native support for log consolidation between targets
  • 32. Extensible • Example: Instead of string to a text file… We want CAN Frame Message to a Database Target • Creating a Message plug-in • Create a new child of Message and override “Process” method • Add a new VI to the API which enqueues the Message object • Creating a Target plug-in • Create a new child of Target and override “Log” and “Configure” methods
  • 33. Where Do We Go Next? • More destinations via new Target child classes • Database • Structured TDMS execution trace • Cross-target consolidation • Syslog • Expanded API via new Message child classes
  • 34. Audience Input • What would you find useful? • What have you done in your own logging toolchains?
  • 36. Download and Login to the NIWeek Mobile App VIEW WEEKLY SCHEDULE FIND YOUR SESSION BUILD YOUR SCHEDULE More Information at ni.com/niweek
  • 37.

Notes de l'éditeur

  1. (2 – 3 minutes) Jesse and Christian introduce themselves I’m Jesse, I’ve been enjoying working with the NI platform for about 10 years as an engineer and project manager at DMC – designing custom test equipment, programming large scale applications, marketing NI solutions and leading teams of developers as a certified labview architect. I’m Christian Owen. I work for DMC … Test and Measurement team … CLD … 2 years of LabVIEW and NI hardware experience.
  2. While some companies may focus on one particular industry segment, on DMC we focus on technology platforms, and most notably here the NI platform. We help companies in almost any industry, like those shown here, to benefit from the capabilities of those platforms to meet their particular needs.
  3. MANUFACTURING AUTOMATION & INTELLIGENCE Our Manufacturing Automation offerings make your production systems more efficient, flexible, and reliable using the latest technologies. As premier automation integrators our manufacturing intelligence solutions provide you the information you need to make more effective business decisions.     TEST & MEASUREMENT AUTOMATION Our Test & Measurement Automation Services help automate laboratory testing using the latest technologies. We deliver world class solutions to leaders in research, development, production, quality, and certification testing. We develop efficient, accurate, robust test systems, and the tools to leverage test data for effective results analysis.     CUSTOM SOFTWARE & HARDWARE DEVELOPMENT We can help with your product or application development needs. Our services include product conception, custom electronic hardware development, application development for web, desktop, embedded, and mobile, and the development of developer tools (SDK, Drivers, API, etc.).     MICROSOFT CONSULTING SERVICES DMC has been a certified Microsoft Gold Partner since 2005. Gold is an elite status that represents the highest level of expertise with Microsoft technologies. We excel at helping clients understand software capabilities, put structure around business processes, and extend & integrate software solutions using Microsoft-centric technologies (SharePoint, Office 365, Azure, CRM, .NET, etc.).
  4. I’ll start our discussion today with what we’re NOT talking about
  5. (2-3 minutes) In general, logging is a good way good way to debug deployed applications. Consider case where application is deployed, going onsite to debug isn’t desired CHRISTIAN Misaligned Timestamp Case Study DMC Developed an application used in production Used in production so Downtime = bad Production site was far away no remote access, so no debugging using EXE with debug enabled After a few weeks, user reported an issue timestamps misaligned; not something we had seen before We asked the user to send us logs classified as either “good” logs or “bad” logs By comparing good and bad logs side by side, we were able to determine what was going on in the application Logs bridged gap between the user’s story and what was happening in the application, and ultimately lead to a solution
  6. (2-3 minutes) logging is also helpful when standard debug tools (e.g. highlight execution, probes, breakpoints) won’t cut it. Consider case where lots of things running in parallel full system behavior is dependent on an ecosystem of processes each interacting with each other. You don’t want to stop or slow any of the loops What does event logging have in common with the eye of Sauron? Event logging is always watching. It’s always there, has your back to catch something that is unexpected, uncommon, or infrequent. Logs will tell the story you need to diagnose effectively. Has anyone been identified as a “Computer Whisperer” by the users?
  7. (5-10 minutes) EASY TO USE LIGHTWEIGHT Minimal impact on application: you want to know that the application behaves the same way with logging as without logging Heisenberg Uncertainty CONFIGURABLE Depending on whether things are running smoothly or not, you may be interested in a very high level narrative of what the application is doing, or a very detailed and verbose log. You may want log information being sent to different locations or formats for analysis. Need to be able to adjust this on the fly, in development and runtime environments. EASY TO EXTEND Extensible: different applications have different needs. A logging framework that allows a programmer to build in new features or targets (such as a database, emails) is able to adapt to those needs. Basically, have deliberate points of extensibility to accommodate future needs - Other things to talk about: notification service
  8. SENSIBLE OUTPUT output that allows one to quickly find what they’re looking for Categorization or grouping of Entries: - Different severities / tags - High level vs low level items - Different functional areas (different logging targets) WIDELY ACCESSIBLE Runs on RT and PC Remote connection to target (see debug console) Consolidate messages from multiple related targets
  9. PROVIDES LIVE AND HISTORICAL FEEDBACK Sometimes you care now. Sometimes you care about then.
  10. CHRISTIAN (2-5 minutes) Maybe talk about these three: NLog (common in .NET) Desktop trace toolkit (provided by NI) Logger (NI Tools Network) Lyndon: Ease of log retrieval is a major selling point for him. Cool features (that LLAMA doesn’t have) that I’ve found so far: Templating / Structured Logging, which allows a user to create and use different templates for log entries
  11. (10-15 minutes) I know what you’re all thinking and the answer is Yes. Yes that’s a recursive acronym. We’re working to RESOLVE that… but we just keep ending up back where we started. LLAMA fits the bill, so DMC uses it often Sharing LLAMA It will help demonstrate some practical techniques for making a Logging toolchain If don’t like the tool, you will hopefully walk away with a few useful tools to go find or build your own If you do like LLAMA and it fits your needs, you can download it and use it If you do like LLAMA but it doesn’t quite fit your needs, we’ll talk about points of extensibility, so you could download and mold it to your needs
  12. This is how things are set up If you’re familiar with Actor Framework, you will notice this is quite similar to AF. An actor that is sent a few messages and has a few nested actors. In our current implementation, it’s NOT AF, primarily to keep a toolchain super self contained.
  13. Jesse to work on this
  14. Then, talk about how we implemented ours, and let people know how they might go about implementing their own. We should probably spend a decent bit of time talking about OO stuff, as that’s the title. Maybe encourage people by telling them that it’s quite simple to build up the framework. Building up an OO logging framework is not difficult. What are it’s major components? Daemon (consumer) API (producer) Log Entry Configure Extensible: What are the benefits of making this thing OO? All the typical benefits of OO programming: Encapsulation (organization), abstraction (as long as it works, one don’t need to care how it works), clean extensibility (new targets can be implemented without needing too much knowledge of the entire framework), code resuse How did we design it using classes? Lightweight: Maybe discuss how much time it takes to run, and how we made it efficient Maybe: talk about some of the performance improvements Jesse made?
  15. Not RT compatible (though we can totally fix this)
  16. Not RT compatible (though we can totally fix this)
  17. Add picture for CAN Frame to Database
  18. Native multi-target coordination / co-registration Although, that can be done with a database, right?
  19. Attention Speaker: Remind your session attendees that the mobile app is the primary source for conference information.
  20. Attention Speaker: Remind attendees they can find session materials on the NIWeek 2018 mobile app, ni.com/niweek and ni.com/niweekcommunity.