Instructions for Use
Overview
Our version of the framework, here-to-fore known as "The Construct" was built with the goal of giving developers a great amount of flexibility in the way that they implemented applications. With this in mind, we purposely left many of the functions quite general so that the result sets obtained by calling them could be tailored to the needs of the individual applications
The Construct is a framework that was built to run in the "wild". That is, was designed to run in an ad-hoc network. Granted, there are some aspects of ad-hoc networking that can be quite problematic (especially device IP addresses), but this is all taken care of by the Construct. It should be noted, that in the event that The Construct is running in the wild, the location aware piece does not work quite as well, though the application developer could certainly devise some scheme. Locations work much better when there are wireless access points around. They are not use for connections, rather as reference points.
The Construct is founded on the idea of encapsulated classes and events. A typical application would instantiate a class of the framework that performs a specific job, and then register with its event handler. This keeps the code simple, and allows the developer not to worry too much about how The Construct does its work.
Within The Construct there are three namespaces:
- Device
- Connection
- Location
NameSpace: Device
All items in this namespace are can be serialized
- Device
- General Device, could be either Node(PDA) or Access Point
- DeviceCollection
- A collection of Devices
- AccessPoint
- Inherits from Device
- AccessPointCollection
- Collection of Access Points
- Node
- Inherits from Device, PDA's are represented as nodes.
- NodeCollection
- Collection of Nodes
NameSpace: Connection
These classes deal with making and listening for connections
- Connection
- Negotiates a port to send/recieve on, and passes the programmer back a connection object that can be used to send messages/data.
- Connection Listener
- For receiving messages from another node.
- Connection Pool
- A collection class to hold connection objects for the programmer
NameSpace: Location
- Radar
- An object that returns a DeviceCollection filled with Nodes and AccessPoints at a regular interval
- NodeRadar
- Same as above but with only Nodes
- AccessPointRadar
- Same as above, but with access points
- LocationListener
- Allows for the definition of "locations", and will raise an event, when a location that one is looking for is found.
- NodeListener
- Allows for the definition of "Nodes", and will raise an event, when a location that one is looking for is found.
High Level Overview
To develop using The Construct:
- Fire up a Radar
- Use the information the Radar gives to create Connections
- Use the listner to listen for connections
- Send data back and forth, do some interesting stuff
- Use the listener classes, for event driven, "reminders"
It has been made quite simple, again, for the full set of details, check out this zip file where a demo solution has been coded. You'll also be able to look at "The Construct" its self. If you have any questions, don't hesitate to drop us an email.