Notice: This page contains information for the legacy Phidget21 Library. Phidget21 is out of support. Bugfixes may be considered on a case by case basis. Phidget21 does not support VINT Phidgets, or new USB Phidgets released after 2020. We maintain a selection of legacy devices for sale that are supported in Phidget21. We recommend that new projects be developed against the Phidget22 Library.
|
Software Overview: Difference between revisions
Line 20: | Line 20: | ||
== Language Support == | == Language Support == | ||
Phidgets have libraries to support [[ | Phidgets can be programmed either by an '''event-driven''' model, or by traditional '''linear code'''. All languages below support linear code. Some languages support our complete API, which includes support for event-driven design. | ||
If you are flexible on what language you can use, we suggest choosing a language which supports event-driven code. | |||
Phidgets have libraries to support [[#Event Driven Code|Event Driven Code]] in the following languages: | |||
* [[Language - C/C++]] | * [[Language - C/C++]] | ||
* ... | * ... | ||
Phidgets have libraries to support [[Linear Code]] in the following languages: | Phidgets have libraries to support only [[#Linear Code|Linear Code]] in the following languages: | ||
* [[Language - MATLAB]] | * [[Language - MATLAB]] | ||
* ... | * ... | ||
== Different Code Styles == | |||
User and device actions can be handled by either: | |||
*Letting the program tell you when they happen and then doing something (event driven code) | |||
*Waiting for them on your own and then and then doing something (linear code) | |||
These styles can mix. For example, you can take a defined set of steps at first such as turning on an LED or antenna (linear code) and then doing nothing until an output change event is fired (event code). | |||
With languages that support both styles, you can mix and match. For languages that support only linear code (see the [[#Language Support|Language Support Categories]] above) you can only use the linear style. | |||
Examples in pseudo-code are given below for each style type so you can see how your language choice can affect your code design. | |||
=== Event Driven Code === | |||
Event driven code | |||
// --- Event Functions --- | |||
Create any Language-Specific Functions | |||
Create General Attach, Detach, and Error Handling Functions | |||
On attach: Initialize hardware (antennas, etc) | |||
On detach: Reset any state variables | |||
Create Hardware-Specific Functions | |||
Print messages to notify they are called | |||
Perform minor accompanying changes (turn on LED, etc) | |||
// --- Main Code --- | |||
Create Device Software Object | |||
Attach Event Functions created above to Device | |||
Open Device | |||
Loop waiting for events and user input: | |||
Get and Print various device statuses on request by input | |||
Handle on-going attach and detach events | |||
Exit upon specific user input | |||
Close Device | |||
Delete Device | |||
=== Linear Code === | |||
Linear code |
Revision as of 14:50, 2 November 2011
Operating System Support
Phidgets can run directly on these operating systems:
- OS - Windows
- OS - Mac OSX
- OS - Linux
- OS - Windows CE ??
- OS - Android (3.1 and above)
Phidgets can be driven remotely by these operating systems:
Language Support
Phidgets can be programmed either by an event-driven model, or by traditional linear code. All languages below support linear code. Some languages support our complete API, which includes support for event-driven design.
If you are flexible on what language you can use, we suggest choosing a language which supports event-driven code.
Phidgets have libraries to support Event Driven Code in the following languages:
- Language - C/C++
- ...
Phidgets have libraries to support only Linear Code in the following languages:
Different Code Styles
User and device actions can be handled by either:
- Letting the program tell you when they happen and then doing something (event driven code)
- Waiting for them on your own and then and then doing something (linear code)
These styles can mix. For example, you can take a defined set of steps at first such as turning on an LED or antenna (linear code) and then doing nothing until an output change event is fired (event code).
With languages that support both styles, you can mix and match. For languages that support only linear code (see the Language Support Categories above) you can only use the linear style.
Examples in pseudo-code are given below for each style type so you can see how your language choice can affect your code design.
Event Driven Code
Event driven code
// --- Event Functions ---
Create any Language-Specific Functions
Create General Attach, Detach, and Error Handling Functions
On attach: Initialize hardware (antennas, etc) On detach: Reset any state variables
Create Hardware-Specific Functions
Print messages to notify they are called Perform minor accompanying changes (turn on LED, etc)
// --- Main Code ---
Create Device Software Object Attach Event Functions created above to Device Open Device
Loop waiting for events and user input: Get and Print various device statuses on request by input
Handle on-going attach and detach events Exit upon specific user input
Close Device Delete Device
Linear Code
Linear code