SlideShare a Scribd company logo
Rifartek Middleware  Programming Training Course How to use ClientRobot
Outline Use ClientRobot to integrate ZigBee in 10 minutes ClientRobot Integration
CliRobot Integration Script
Integrate ZigBee into DB (1/5)  The ZigBee module will return: node-id, tag-id, LQI, RSSI
Integrate ZigBee into DB (2/5)  Insert Raw data into DB for further processing Use Database Module and The “script” integration method
Integrate ZigBee into DB (3/5)  Click “script” button Invoke wRobot to insert data for you
Integrate ZigBee into DB (4/5) String a[] = id.split(","); String param[] = new String[2]; param[0] = "execute"; param[1] = "INSERT INTO zigbee(allid,insertTime,node_id,tag_id,LQI,RSSI) " + "values('"+id+"',NOW(),"+a[0]+","+a[1]+","+a[2]+","+a[3]+")"; try{ frame.call("Database",param); }catch(Exception e){ }
Integrate ZigBee into DB (5/5) Result
Integrate ZigBee into File
More about ClientRobot Integration
CliRobot and ServRobot Dynamic Relationship ServRobot module1 module2 CliRobot tab1 tab1 Negotiate  Number of Modules Module attributes Security Mechanisms  …
CliRobot and ServRobot (Cont.) Message Dispatch Relationship ServRobot CliRobot sendMsg (String) OnMsg(String) call(module, param) OnCmd( ) sendData (String) Server send RFID Tag information Client request server module to do command
CliRobot and Extension Script (java statement) Plugin (java program)
CliRobot and Extension (Cont.) Script vs. Plugins  CliRobot Receive Message For each module tab Is script? Is plugin? For each plugin Invoke plugin’s OnMsg() method dynamically execute statement done for this module yes yes No No
Script of CliRobot Click “script” button and  Write Java Statements What you want to do when you receive a message. Ex: Write file
Plugins of CliRobot Click “plugins..” button and  Write Java classes A set of java classes that fulfill your task Load main java class into plugin management panel
CliRobot Integration Using Script
Integrate ZigBee into DB (1/5)  The ZigBee module will return: node-id, tag-id, LQI, RSSI
Integrate ZigBee into DB (2/5)  Insert Raw data into DB for further processing Use Database Module and The “script” integration method
Integrate ZigBee into DB (3/5)  Click “script” button Invoke wRobot to insert data for you
Integrate ZigBee into DB (4/5) String a[] = id.split(","); String param[] = new String[2]; param[0] = "execute"; param[1] = "INSERT INTO zigbee(allid,insertTime,node_id,tag_id,LQI,RSSI) " + "values('"+id+"',NOW(),"+a[0]+","+a[1]+","+a[2]+","+a[3]+")"; try{ frame.call("Database",param); }catch(Exception e){ }
Integrate ZigBee into DB (5/5) Result
Integrate ZigBee into File
CliRobot Integration Using Plugin
The “ RifartekRobotPlugin ” base class (1/3) The base class that communicates with CliRobot extends the capability of CliRobot Class Hierarchy: RifartekRobotPlugin MyPlugin OOP Extends java.awt.Frame OOP Extends Abstract class
The “ RifartekRobotPlugin ” base class (2/3) Constructor Extensible methods Parent: The CliRobot reference ModuleName: The name of corresponding module that this plugin resident  RifartekRobotPlugin( WRobotFrame parent, String moduleName); Explanation  Method prototype The initialization jobs that have to do when the corresponding module is started or loaded. OnLoad( ) The cleanup jobs that have to do when the corresponding module is closed or unloaded. OnUnLoad( ) Explanation  Method prototype
The “ RifartekRobotPlugin ” base class (3/3) Extensible methods (Cont.) The cleanup jobs that have to do when the plugin is stop by plugin management panel  OnDestroy( ) The callback method that the PDI architecture would invoke when CliRobot receives a message from corresponding module. OnMsg(String msg,  String antenna,  String moduleName) The callback method that the PDI architecture would invoke when CliRobot receives a message from corresponding module and it founds that the plugin is busy processing previous jobs.  OnBattleNeck(int buffer) buffer means the number of accumulated un-dispatched messages Simpler version of OnMsg( ) OnMsg(String msg) Explanation  Method prototype
Basic steps to development plugin Extend RifartekRobotPlugin class Overwrite Necessarily methods of RifartekRobotPlugin abstract class OnMsg() is the most important and should be overwritten Compile Testing with CliRobot Repeat 1 ~ 4 to enhance functionality
Basic steps to development plugin – 1. Extend RifartekRobotPlugin class
Basic steps to development plugin – 2. Overwrite necessary methods
Basic steps to development plugin – 3. Compile  Put your class in C:\Rifartek\cliRobot  Use javac to compile with wRobotApp.jar Ex: # javac –classpath wRobotApp.jar;. BasicPlugin.java
Basic steps to development plugin – 4. Test with CliRobot Add “BasicPlugin”
Basic steps to development plugin – 5. Enhance functionality (1/3) Prepare a StringBuffer and  TextArea to  display read tags Initialize and  setup UI properties
Basic steps to development plugin – 5. Enhance functionality (2/3) append tags into StringBuffer each time the CliRobot invokes the OnMsg method.  And update TextArea to show the status
Basic steps to development plugin – 5. Enhance functionality (3/3)
Use Eclipse to development plugins Eclipse The open-source Java IDE
Steps of using Eclipse  Create One Eclipse Workspace Create One java project Copy CliRobot related files Setup compilation parameters Extends RifartekRobotPlugin and Test Enhance functionality
Steps of using Eclipse – 1. Create One Eclipse Workspace Create one directory and ex: NCUTrainWorkSpace Switch Eclipse workspace File    SwitchWorkspace
Steps of using Eclipse – 2. Create Java Project File    New    Project    Java Project
Steps of using Eclipse – 3. Copy CliRobot related files Related files Robot component: wRobotApp.jar, MessageBox.exe image files
Steps of using Eclipse – 4. Setup Compilation Parameters (1/5) Parameters include the robot jar file Startup methods Before setting,  everything is mess
Steps of using Eclipse – 4. Setup Compilation Parameters (2/5) The jar file right click the project name, choose “properties” choose the “Libraries” tab click the “Add JARs…” and select “wRobotApp.jar”
Steps of using Eclipse – 4. Setup Compilation Parameters (3/5) after setting, errors are gone!
Steps of using Eclipse – 4. Setup Compilation Parameters (4/5) Setup startup parameters right click the project name click “Run As”, click “Run” right click “Java Application”, new one The “Main” tab Enter “wRobotApp” as Main class The “Arguments” tab Enter “config.data 1234” in Program arguments
Steps of using Eclipse – 4. Setup Compilation Parameters (5/5)
Steps of using Eclipse – 5. Test
Ad

More Related Content

What's hot (20)

Spring boot
Spring bootSpring boot
Spring boot
NexThoughts Technologies
 
Doing the Impossible
Doing the ImpossibleDoing the Impossible
Doing the Impossible
Alexander Loechel
 
Introduction to Griffon
Introduction to GriffonIntroduction to Griffon
Introduction to Griffon
James Williams
 
Legacy Code Kata v3.0
Legacy Code Kata v3.0Legacy Code Kata v3.0
Legacy Code Kata v3.0
William Munn
 
Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?
Bertrand Delacretaz
 
Legacy Dependency Kata v2.0
Legacy Dependency Kata v2.0Legacy Dependency Kata v2.0
Legacy Dependency Kata v2.0
William Munn
 
Python Programming Essentials - M28 - Debugging with pdb
Python Programming Essentials - M28 - Debugging with pdbPython Programming Essentials - M28 - Debugging with pdb
Python Programming Essentials - M28 - Debugging with pdb
P3 InfoTech Solutions Pvt. Ltd.
 
Izumi 1.0: Your Next Scala Stack
Izumi 1.0: Your Next Scala StackIzumi 1.0: Your Next Scala Stack
Izumi 1.0: Your Next Scala Stack
7mind
 
ScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency InjectionScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency Injection
7mind
 
Scala, Functional Programming and Team Productivity
Scala, Functional Programming and Team ProductivityScala, Functional Programming and Team Productivity
Scala, Functional Programming and Team Productivity
7mind
 
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
Sam Brannen
 
JUnit 5 - The Next Generation
JUnit 5 - The Next GenerationJUnit 5 - The Next Generation
JUnit 5 - The Next Generation
Kostadin Golev
 
Hyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkitHyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkit
7mind
 
JavaFX8 TestFX - CDI
JavaFX8   TestFX - CDIJavaFX8   TestFX - CDI
JavaFX8 TestFX - CDI
Sven Ruppert
 
JUnit 5
JUnit 5JUnit 5
JUnit 5
Kostadin Golev
 
Jython 2.7 and techniques for integrating with Java - Frank Wierzbicki
Jython 2.7 and techniques for integrating with Java - Frank WierzbickiJython 2.7 and techniques for integrating with Java - Frank Wierzbicki
Jython 2.7 and techniques for integrating with Java - Frank Wierzbicki
fwierzbicki
 
Introduction to jython
Introduction to jythonIntroduction to jython
Introduction to jython
John(Qiang) Zhang
 
What do you mean it needs to be Java based? How jython saved the day.
What do you mean it needs to be Java based? How jython saved the day.What do you mean it needs to be Java based? How jython saved the day.
What do you mean it needs to be Java based? How jython saved the day.
Mark Rees
 
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and MockitoAn Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
shaunthomas999
 
Sour Pickles
Sour PicklesSour Pickles
Sour Pickles
SensePost
 
Introduction to Griffon
Introduction to GriffonIntroduction to Griffon
Introduction to Griffon
James Williams
 
Legacy Code Kata v3.0
Legacy Code Kata v3.0Legacy Code Kata v3.0
Legacy Code Kata v3.0
William Munn
 
Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?
Bertrand Delacretaz
 
Legacy Dependency Kata v2.0
Legacy Dependency Kata v2.0Legacy Dependency Kata v2.0
Legacy Dependency Kata v2.0
William Munn
 
Python Programming Essentials - M28 - Debugging with pdb
Python Programming Essentials - M28 - Debugging with pdbPython Programming Essentials - M28 - Debugging with pdb
Python Programming Essentials - M28 - Debugging with pdb
P3 InfoTech Solutions Pvt. Ltd.
 
Izumi 1.0: Your Next Scala Stack
Izumi 1.0: Your Next Scala StackIzumi 1.0: Your Next Scala Stack
Izumi 1.0: Your Next Scala Stack
7mind
 
ScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency InjectionScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency Injection
7mind
 
Scala, Functional Programming and Team Productivity
Scala, Functional Programming and Team ProductivityScala, Functional Programming and Team Productivity
Scala, Functional Programming and Team Productivity
7mind
 
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
JUnit 5 - Evolution and Innovation - SpringOne Platform 2019
Sam Brannen
 
JUnit 5 - The Next Generation
JUnit 5 - The Next GenerationJUnit 5 - The Next Generation
JUnit 5 - The Next Generation
Kostadin Golev
 
Hyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkitHyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkit
7mind
 
JavaFX8 TestFX - CDI
JavaFX8   TestFX - CDIJavaFX8   TestFX - CDI
JavaFX8 TestFX - CDI
Sven Ruppert
 
Jython 2.7 and techniques for integrating with Java - Frank Wierzbicki
Jython 2.7 and techniques for integrating with Java - Frank WierzbickiJython 2.7 and techniques for integrating with Java - Frank Wierzbicki
Jython 2.7 and techniques for integrating with Java - Frank Wierzbicki
fwierzbicki
 
What do you mean it needs to be Java based? How jython saved the day.
What do you mean it needs to be Java based? How jython saved the day.What do you mean it needs to be Java based? How jython saved the day.
What do you mean it needs to be Java based? How jython saved the day.
Mark Rees
 
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and MockitoAn Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
shaunthomas999
 
Sour Pickles
Sour PicklesSour Pickles
Sour Pickles
SensePost
 

Viewers also liked (6)

Rifartek Robot Training Course - How to use WebRobot
Rifartek Robot Training Course - How to use WebRobotRifartek Robot Training Course - How to use WebRobot
Rifartek Robot Training Course - How to use WebRobot
Tsai Tsung-Yi
 
RFID Software Technology - Course Outline
RFID Software Technology - Course OutlineRFID Software Technology - Course Outline
RFID Software Technology - Course Outline
Tsai Tsung-Yi
 
Introdução ao Neuromarketing
Introdução ao NeuromarketingIntrodução ao Neuromarketing
Introdução ao Neuromarketing
Ana Franco
 
CompTIA RFID+ Course Outline
CompTIA RFID+ Course OutlineCompTIA RFID+ Course Outline
CompTIA RFID+ Course Outline
Tsai Tsung-Yi
 
K to 12 - Grade 8 Science Learner Module
K to 12 - Grade 8 Science Learner ModuleK to 12 - Grade 8 Science Learner Module
K to 12 - Grade 8 Science Learner Module
Nico Granada
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
LinkedIn
 
Rifartek Robot Training Course - How to use WebRobot
Rifartek Robot Training Course - How to use WebRobotRifartek Robot Training Course - How to use WebRobot
Rifartek Robot Training Course - How to use WebRobot
Tsai Tsung-Yi
 
RFID Software Technology - Course Outline
RFID Software Technology - Course OutlineRFID Software Technology - Course Outline
RFID Software Technology - Course Outline
Tsai Tsung-Yi
 
Introdução ao Neuromarketing
Introdução ao NeuromarketingIntrodução ao Neuromarketing
Introdução ao Neuromarketing
Ana Franco
 
CompTIA RFID+ Course Outline
CompTIA RFID+ Course OutlineCompTIA RFID+ Course Outline
CompTIA RFID+ Course Outline
Tsai Tsung-Yi
 
K to 12 - Grade 8 Science Learner Module
K to 12 - Grade 8 Science Learner ModuleK to 12 - Grade 8 Science Learner Module
K to 12 - Grade 8 Science Learner Module
Nico Granada
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
LinkedIn
 
Ad

Similar to Rifartek Robot Training Course - How to use ClientRobot (20)

Where's the source, Luke? : How to find and debug the code behind Plone
Where's the source, Luke? : How to find and debug the code behind PloneWhere's the source, Luke? : How to find and debug the code behind Plone
Where's the source, Luke? : How to find and debug the code behind Plone
Vincenzo Barone
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
Brian Lyttle
 
Performance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-MechanizePerformance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-Mechanize
coreygoldberg
 
Uploading files using selenium web driver
Uploading files using selenium web driverUploading files using selenium web driver
Uploading files using selenium web driver
Pankaj Biswas
 
Robot framework
Robot frameworkRobot framework
Robot framework
Rochak Bhalla
 
Beyond the Loadable Module
Beyond the Loadable ModuleBeyond the Loadable Module
Beyond the Loadable Module
Vladimir Ulogov
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Steven Pignataro
 
The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202
Mahmoud Samir Fayed
 
Creating a modern web application using Symfony API Platform, ReactJS and Red...
Creating a modern web application using Symfony API Platform, ReactJS and Red...Creating a modern web application using Symfony API Platform, ReactJS and Red...
Creating a modern web application using Symfony API Platform, ReactJS and Red...
Jesus Manuel Olivas
 
Griffon Presentation
Griffon PresentationGriffon Presentation
Griffon Presentation
Kelly Robinson
 
Justmeans power point
Justmeans power pointJustmeans power point
Justmeans power point
justmeanscsr
 
Useful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvmUseful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvm
Anton Shapin
 
Creating Custom Dojo Widgets Using WTP
Creating Custom Dojo Widgets Using WTPCreating Custom Dojo Widgets Using WTP
Creating Custom Dojo Widgets Using WTP
nsandonato
 
Pythonpresent
PythonpresentPythonpresent
Pythonpresent
Chui-Wen Chiu
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
Diego Freniche Brito
 
Adding a modern twist to legacy web applications
Adding a modern twist to legacy web applicationsAdding a modern twist to legacy web applications
Adding a modern twist to legacy web applications
Jeff Durta
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software Development
Zeeshan MIrza
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
Bring the fun back to java
Bring the fun back to javaBring the fun back to java
Bring the fun back to java
ciklum_ods
 
JavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthJavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In Depth
Danno Ferrin
 
Where's the source, Luke? : How to find and debug the code behind Plone
Where's the source, Luke? : How to find and debug the code behind PloneWhere's the source, Luke? : How to find and debug the code behind Plone
Where's the source, Luke? : How to find and debug the code behind Plone
Vincenzo Barone
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
Brian Lyttle
 
Performance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-MechanizePerformance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-Mechanize
coreygoldberg
 
Uploading files using selenium web driver
Uploading files using selenium web driverUploading files using selenium web driver
Uploading files using selenium web driver
Pankaj Biswas
 
Beyond the Loadable Module
Beyond the Loadable ModuleBeyond the Loadable Module
Beyond the Loadable Module
Vladimir Ulogov
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Steven Pignataro
 
The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202
Mahmoud Samir Fayed
 
Creating a modern web application using Symfony API Platform, ReactJS and Red...
Creating a modern web application using Symfony API Platform, ReactJS and Red...Creating a modern web application using Symfony API Platform, ReactJS and Red...
Creating a modern web application using Symfony API Platform, ReactJS and Red...
Jesus Manuel Olivas
 
Justmeans power point
Justmeans power pointJustmeans power point
Justmeans power point
justmeanscsr
 
Useful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvmUseful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvm
Anton Shapin
 
Creating Custom Dojo Widgets Using WTP
Creating Custom Dojo Widgets Using WTPCreating Custom Dojo Widgets Using WTP
Creating Custom Dojo Widgets Using WTP
nsandonato
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
Diego Freniche Brito
 
Adding a modern twist to legacy web applications
Adding a modern twist to legacy web applicationsAdding a modern twist to legacy web applications
Adding a modern twist to legacy web applications
Jeff Durta
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software Development
Zeeshan MIrza
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
Bring the fun back to java
Bring the fun back to javaBring the fun back to java
Bring the fun back to java
ciklum_ods
 
JavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthJavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In Depth
Danno Ferrin
 
Ad

Recently uploaded (20)

How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
fennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solutionfennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solution
shallal2
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
James Anderson
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
BookNet Canada
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent LasterAI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
All Things Open
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
fennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solutionfennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solution
shallal2
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
James Anderson
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
BookNet Canada
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent LasterAI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
All Things Open
 

Rifartek Robot Training Course - How to use ClientRobot

  • 1. Rifartek Middleware Programming Training Course How to use ClientRobot
  • 2. Outline Use ClientRobot to integrate ZigBee in 10 minutes ClientRobot Integration
  • 4. Integrate ZigBee into DB (1/5) The ZigBee module will return: node-id, tag-id, LQI, RSSI
  • 5. Integrate ZigBee into DB (2/5) Insert Raw data into DB for further processing Use Database Module and The “script” integration method
  • 6. Integrate ZigBee into DB (3/5) Click “script” button Invoke wRobot to insert data for you
  • 7. Integrate ZigBee into DB (4/5) String a[] = id.split(","); String param[] = new String[2]; param[0] = "execute"; param[1] = "INSERT INTO zigbee(allid,insertTime,node_id,tag_id,LQI,RSSI) " + "values('"+id+"',NOW(),"+a[0]+","+a[1]+","+a[2]+","+a[3]+")"; try{ frame.call("Database",param); }catch(Exception e){ }
  • 8. Integrate ZigBee into DB (5/5) Result
  • 10. More about ClientRobot Integration
  • 11. CliRobot and ServRobot Dynamic Relationship ServRobot module1 module2 CliRobot tab1 tab1 Negotiate Number of Modules Module attributes Security Mechanisms …
  • 12. CliRobot and ServRobot (Cont.) Message Dispatch Relationship ServRobot CliRobot sendMsg (String) OnMsg(String) call(module, param) OnCmd( ) sendData (String) Server send RFID Tag information Client request server module to do command
  • 13. CliRobot and Extension Script (java statement) Plugin (java program)
  • 14. CliRobot and Extension (Cont.) Script vs. Plugins CliRobot Receive Message For each module tab Is script? Is plugin? For each plugin Invoke plugin’s OnMsg() method dynamically execute statement done for this module yes yes No No
  • 15. Script of CliRobot Click “script” button and Write Java Statements What you want to do when you receive a message. Ex: Write file
  • 16. Plugins of CliRobot Click “plugins..” button and Write Java classes A set of java classes that fulfill your task Load main java class into plugin management panel
  • 18. Integrate ZigBee into DB (1/5) The ZigBee module will return: node-id, tag-id, LQI, RSSI
  • 19. Integrate ZigBee into DB (2/5) Insert Raw data into DB for further processing Use Database Module and The “script” integration method
  • 20. Integrate ZigBee into DB (3/5) Click “script” button Invoke wRobot to insert data for you
  • 21. Integrate ZigBee into DB (4/5) String a[] = id.split(","); String param[] = new String[2]; param[0] = "execute"; param[1] = "INSERT INTO zigbee(allid,insertTime,node_id,tag_id,LQI,RSSI) " + "values('"+id+"',NOW(),"+a[0]+","+a[1]+","+a[2]+","+a[3]+")"; try{ frame.call("Database",param); }catch(Exception e){ }
  • 22. Integrate ZigBee into DB (5/5) Result
  • 25. The “ RifartekRobotPlugin ” base class (1/3) The base class that communicates with CliRobot extends the capability of CliRobot Class Hierarchy: RifartekRobotPlugin MyPlugin OOP Extends java.awt.Frame OOP Extends Abstract class
  • 26. The “ RifartekRobotPlugin ” base class (2/3) Constructor Extensible methods Parent: The CliRobot reference ModuleName: The name of corresponding module that this plugin resident RifartekRobotPlugin( WRobotFrame parent, String moduleName); Explanation Method prototype The initialization jobs that have to do when the corresponding module is started or loaded. OnLoad( ) The cleanup jobs that have to do when the corresponding module is closed or unloaded. OnUnLoad( ) Explanation Method prototype
  • 27. The “ RifartekRobotPlugin ” base class (3/3) Extensible methods (Cont.) The cleanup jobs that have to do when the plugin is stop by plugin management panel OnDestroy( ) The callback method that the PDI architecture would invoke when CliRobot receives a message from corresponding module. OnMsg(String msg, String antenna, String moduleName) The callback method that the PDI architecture would invoke when CliRobot receives a message from corresponding module and it founds that the plugin is busy processing previous jobs. OnBattleNeck(int buffer) buffer means the number of accumulated un-dispatched messages Simpler version of OnMsg( ) OnMsg(String msg) Explanation Method prototype
  • 28. Basic steps to development plugin Extend RifartekRobotPlugin class Overwrite Necessarily methods of RifartekRobotPlugin abstract class OnMsg() is the most important and should be overwritten Compile Testing with CliRobot Repeat 1 ~ 4 to enhance functionality
  • 29. Basic steps to development plugin – 1. Extend RifartekRobotPlugin class
  • 30. Basic steps to development plugin – 2. Overwrite necessary methods
  • 31. Basic steps to development plugin – 3. Compile Put your class in C:\Rifartek\cliRobot Use javac to compile with wRobotApp.jar Ex: # javac –classpath wRobotApp.jar;. BasicPlugin.java
  • 32. Basic steps to development plugin – 4. Test with CliRobot Add “BasicPlugin”
  • 33. Basic steps to development plugin – 5. Enhance functionality (1/3) Prepare a StringBuffer and TextArea to display read tags Initialize and setup UI properties
  • 34. Basic steps to development plugin – 5. Enhance functionality (2/3) append tags into StringBuffer each time the CliRobot invokes the OnMsg method. And update TextArea to show the status
  • 35. Basic steps to development plugin – 5. Enhance functionality (3/3)
  • 36. Use Eclipse to development plugins Eclipse The open-source Java IDE
  • 37. Steps of using Eclipse Create One Eclipse Workspace Create One java project Copy CliRobot related files Setup compilation parameters Extends RifartekRobotPlugin and Test Enhance functionality
  • 38. Steps of using Eclipse – 1. Create One Eclipse Workspace Create one directory and ex: NCUTrainWorkSpace Switch Eclipse workspace File  SwitchWorkspace
  • 39. Steps of using Eclipse – 2. Create Java Project File  New  Project  Java Project
  • 40. Steps of using Eclipse – 3. Copy CliRobot related files Related files Robot component: wRobotApp.jar, MessageBox.exe image files
  • 41. Steps of using Eclipse – 4. Setup Compilation Parameters (1/5) Parameters include the robot jar file Startup methods Before setting, everything is mess
  • 42. Steps of using Eclipse – 4. Setup Compilation Parameters (2/5) The jar file right click the project name, choose “properties” choose the “Libraries” tab click the “Add JARs…” and select “wRobotApp.jar”
  • 43. Steps of using Eclipse – 4. Setup Compilation Parameters (3/5) after setting, errors are gone!
  • 44. Steps of using Eclipse – 4. Setup Compilation Parameters (4/5) Setup startup parameters right click the project name click “Run As”, click “Run” right click “Java Application”, new one The “Main” tab Enter “wRobotApp” as Main class The “Arguments” tab Enter “config.data 1234” in Program arguments
  • 45. Steps of using Eclipse – 4. Setup Compilation Parameters (5/5)
  • 46. Steps of using Eclipse – 5. Test
  翻译: