Introduction, Java pakbus® software development kit – Campbell Scientific Java PakBus Software Development Kit User Manual
Page 9

Java PakBus® Software Development Kit
1. Introduction
The purpose of this document is to provide prospective developers
with a general overview of the Java PakBus® SDK and its
application. The primary classes are discussed and example
implementations are provided. This document is not intended as
a programmers guide or reference.
The Java PakBus® SDK is a simple API that can be used to write Java based
applications and applets that can communicate with Campbell Scientific
dataloggers using PakBus® protocol. This API has the following features:
Full PakBus® Networking
An application built using this API should be able to function in any
PakBus® network and communicate with any datalogger in that network.
Leaf Node
An application built using this API will act as a PakBus® leaf node. This
means that it will not send or receive routing information with the
exception of messages used to confirm neighbour links.
Single Threaded
The API does not spawn worker threads for communication. Rather the
application is responsible for keeping communication alive by periodically
calling the
check_state() method of the Network object.
Use of this API is subject to the
Campbell Scientific Software SDK License
Although there are a large number of classes in the API, there are really only a
few which are required to understand how the API works:
class Network
This class lies at the heart of the API and manages all communications. It
manages a collection of “stations” and serializes transactions.
class Datalogger
This class represents the state of a datalogger in the PakBus® network. It
stores the routing information needed to reach that datalogger as well as
meta-data for that station. The application can operate on the “real”
datalogger by initiating transactions through instances of this class.
Transactions
Transactions are concrete objects derived from class
TransactionBase.
Each type of transaction performs a specific type of operation such as
NOTE
1