Software Overview: Difference between revisions

From Phidgets Support
No edit summary
No edit summary
(34 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:Overview]]
[[Category:Overview]]
__NOTOC__
__NOTOC__
Phidgets’ philosophy is that you do not have to be an electrical engineer in order to do projects that use devices like sensors, motors, motor controllers, and interface boards. All you need to know is how to program.  
{|
|style="vertical-align:middle; width: 70%;"|This page outlines the general concepts needed to write code for a Phidget.


We have developed a complete set of Application Programming Interfaces (API) that are supported for many different [[#Operating System Support|operating systems]], and which can be used through many different [[#Language Support | programming languages]].


{| style="border:1px solid darkgray;" cellpadding="5px;"
We have created a complete set of Application Programming Interfaces (APIs) for the most popular [[#Language Support | programming languages]], and our software libraries are compatible with all major [[#Operating System Support|operating systems]].
|-
| We suggest starting with the '''Getting Started''' guide for your device, which can be found on its product page on [http://www.phidgets.com our main website].  This will help you run a basic example to check your hardware and drivers. 
|-
|Have you been there but want more introduction? We have overview pages - with lots of explanatory images - for some of our high-level topics:
|-
|
* [[What is a Phidget?]]
|-
|
* [[Phidget WebService]]
* [[Phidget Manager]]
* [[Phidget Dictionary]]
|}
 
After that, you'll need to dive right in and write code.
 
From the Getting Started Guide, you'll have already chosen your [[#Operating System Support|operating system below]], and from the operating system page you'll be directed to [[#Language Support|choose a language]].
 
So if you're here, you probably want:
* An overview of our language and operating system support (in which case, just scroll down)
* A quick link to our programming overview with lots of code snippets, called the '''[[General Phidget Programming|General Phidget Programming Guide]]'''
* The API with syntax and function calls for your device - which you can find on the [[#Language Support | page for your language]]
* Or, information about your product, which can be found on its product page on [http://www.phidgets.com our main website].
 
We try to make our documentation as complete as possible - which means there is a lot of it!  Browse around, try the search bar, and if you can't find what you need, please [[Contact Us]].
 
== Operating System Support ==
 
These operating system pages provide drivers for using Phidgets.  They help you set up your system after following the '''Getting Started''' guide for your device.  The operating systems links below are also on every ''Getting Started'' guide, so if you have not yet read the one for your device, head straight to the product page for your device on [http://www.phidgets.com our main website] where you can find it and follow it.
 
Phidgets can be run either ''directly'' through USB or ''remotely'' over a network via the [[Phidget WebService]].  Most operating systems below can run Phidgets directly, but a few can only control them over a network.  Phidgets can also probably be run on other operating systems that have support for compiling C code, and either a standard network connection for running a Phidget over a network, or a USB host controller for direct control.  We don't offer support directly for these additional operating systems, but you may find the installation and setup instructions for [[OS - Linux|Linux]] useful because compiling and custom toolchains are discussed.
 
Phidgets can run either directly or over a network on these operating systems:
 
{| style="border:1px solid darkgray;" cellpadding="7px;"
|-style="background: #f0f0f0" align=center
! Operating System || Drivers and Libraries || Direct Control || Remote Network Control || Supported Version
|-
 
|'''Desktop OSes'''
|-
 
|[[Image:Icon-Windows.png|alt=OS - Windows|24x24px|link=OS - Windows]][[OS - Windows|Windows]]
|style="background: #f0f0ff" align=center| [[OS - Windows#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
| 2000 or Newer
|-
 
|[[Image:Icon-Mac-OS.png|alt=OS - OS X|24x24px|link=OS - OS X]][[OS - OS X|OS X]]
|style="background: #f0f0ff" align=center| [[OS - OS X#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
| OS X 10.4 or newer
|-
 
|[[Image:Icon-Linux.png|alt=OS - Linux|24x24px|link=OS - Linux]][[OS - Linux|Linux]]
|style="background: #f0f0ff" align=center| [[OS - Linux#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
| Kernel 2.6 or newer
|-
 
|'''Mobile/Wireless OSes'''
|-
 
|[[Image:Icon-Linux.png|alt=OS - Phidget SBC|24x24px|link=OS - Phidget SBC]][[OS - Phidget SBC|Phidget SBC]]
|style="background: #f0f0ff" align=center| [[OS - Phidget SBC#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
| All versions
|-
 
|[[Image:Icon-Android_Honeycomb.png|alt=OS - Android|24x24px|link=OS - Android]][[OS - Android|Android]]
|style="background: #f0f0ff" align=center| [[OS - Android#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
| 3.1 and newer, with USB port
|-
 
|[[Image:Icon-Android.png|alt=OS - Android|link=OS - Android|24x24px|link=OS - Android]][[OS - Android|Android]]
|style="background: #f0f0ff" align=center| [[OS - Android#Quick Downloads|Quick Downloads]]
|style="background: #E28585" align=center| X
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
| 1.5 to 3.0
|-


|[[Image:Icon-iOS.png|alt=OS - iOS|link=OS - iOS|24x24px|link=OS - iOS]][[OS - iOS|iOS]]
|style="background: #f0f0ff" align=center| [[OS - iOS#Quick Downloads|Quick Downloads]]
|style="background: #E28585" align=center| X
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
| 3.0 or newer
|-


|[[Image:Icon-Windows CE.png|alt=OS - Windows CE|24x24px|link=OS - Windows CE]][[OS - Windows CE|Windows CE]]  
If you are new to Phidgets, we suggest starting with [[What is a Phidget?]], followed by [[Phidget Programming Basics]], and the [[:Category:UserGuide|user guide]] for your device. If you are looking for more information, try one of our overview pages:
|style="background: #f0f0ff" align=center| [[OS - Windows CE#Quick Downloads|Quick Downloads]]
| {{TOC limit|2}}
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
| 5.0 or newer
|}
|}


== Language Support ==
===Overview Pages===
 
We provide a variety of supported languages for using Phidgets.  Each language has its own ''libraries'', which may be found on the language pages below, along with code examples and an in-depth API.


Many languages also depend on the ''core drivers'' being installed as well.  These drivers can be found on the [[#Operating System Support|operating system pages]] above.
{|style ="width:85%; margin:auto"
 
Phidgets supports the following languages.  If you have some flexibility in what language to use, we recommend using a '''Core Language''':
 
{| style="border:1px solid darkgray;" cellpadding="7px;"
|-style="background: #f0f0f0" align=center
! Language || Libraries || API || Code Samples<sup>&dagger;</sup> || [[General Phidget Programming#Event Driven Code|Events]] || [[General Phidget Programming#Logic Code|Logic Code]] || Use via Direct USB* || [[Phidget WebService]] || Native Library** || Phidget User Base
|-
|-
|'''General'''
|
----
[[Image:what_is_a_phidget_icon.jpg|link=What is a Phidget?|100px|left]]


|'''Core Languages'''
|-


|[[Image:Icon-CSharp.png|alt=C Sharp|24x24px|link=Language - C Sharp]] [[Language - C Sharp|C#]]
[[What is a Phidget?]] - Here we discuss the very basics of what Phidgets are, and how they can be powerful tools in making your applicaiton.
|style="background: #f0f0ff" align=center| [[Language - C Sharp#Quick Downloads|Quick Downloads]]
<br clear="all">
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-10.png|link=|alt=Extensive]]
|-
|-
|'''Programming'''
|
----
[[Image:phidget_programming_basics.jpg|link=Phidget Programming Basics|100px|left]]


|[[Image:Icon-C++.png|alt=C/C++|24x24px|link=Language - C/C++]] [[Language - C/C++|C/C++]]
|style="background: #f0f0ff" align=center| [[Language - C/C++#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-10.png|link=|alt=Extensive]]
|-


|[[Image:Icon-Java.png|alt=Java|24x24px|link=Language - Java]] [[Language - Java|Java]]
[[Phidget Programming Basics]] - Here you can find the basic concepts to help you get started with making your own programs that use Phidgets.
|style="background: #f0f0ff" align=center| [[Language - Java#Quick Downloads|Quick Downloads]]
<br clear="all">
|style="background: #ade6ab" align=center| All Devices
----
|style="background: #ade6ab" align=center| All Devices
[[Image:addressing_phidgets_icon.jpg|link=Addressing Phidgets|100px|left]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-10.png|link=|alt=Extensive]]
|-


|[[Image:Icon-Python.png|alt=Python|24x24px|link=Language - Python]] [[Language - Python|Python]]
|style="background: #f0f0ff" align=center| [[Language - Python#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-10.png|link=|alt=Extensive]]
|-


|[[Image:Icon-Cocoa.png|alt=Cocoa|24x24px|link=Language - Cocoa]] [[Language - Cocoa|Cocoa]]
[[Addressing Phidgets]] - Learn the various ways you can ensure your program connects to the right Phidgets.
|style="background: #f0f0ff" align=center| [[Language - Cocoa#Quick Downloads|Quick Downloads]]
<br clear="all">
|style="background: #ade6ab" align=center| All Devices
----
|style="background: #ade6ab" align=center| All Devices
[[Image:using_multiple_phidgets.jpg|link=Using Multiple Phidgets|100px|left]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-10.png|link=|alt=Extensive]]
|-


|[[Image:Icon-Visual Basic.png|alt=Visual Basic 6.0|24x24px|link=Language - Visual Basic 6.0]] [[Language - Visual Basic 6.0|Visual Basic 6.0]]
|style="background: #f0f0ff" align=center| [[Language - Visual Basic 6.0#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-10.png|link=|alt=Extensive]]
|-


|[[Image:Icon-Visual Basic Net.png|alt=Visual Basic .NET|24x24px|link=Language - Visual Basic .NET]] [[Language - Visual Basic .NET|Visual Basic .NET]]
[[Using Multiple Phidgets]] - Here we'll show you how simple it is to use multiple Phidgets in your program, as well as some less obvious tips and tricks.
|style="background: #f0f0ff" align=center| [[Language - Visual Basic .NET#Quick Downloads|Quick Downloads]]
<br clear="all">
|style="background: #ade6ab" align=center| All Devices
----
|style="background: #ade6ab" align=center| All Devices
[[Image:polling_events.jpg|link=Polling vs. Events|100px|left]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-10.png|link=|alt=Extensive]]
|-


|'''Mobile Languages'''
|-


|[[Image:Icon-iOS.png|alt=iOS|24x24px|link=Language - iOS]] [[Language - iOS|iOS]]
[[Polling vs. Events]] - Your program can gather data in either a polling-driven or event-driven manner. Learn the difference to determine which is best for your application.
|style="background: #f0f0ff" align=center| [[Language - iOS#Quick Downloads|Quick Downloads]]
<br clear="all">
|style="background: #ade6ab" align=center| All Devices
----
|style="background: #EFE973" align=center| InterfaceKit Only
[[Image:data_interval_change_trigger.jpg|link=Data Interval/Change Trigger|100px|left]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #E28585" align=center| X
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-06.png|link=|alt=Moderate]]
|-


|[[Image:Icon-Android.png|alt=Android Java|24x24px|link=Language - Android Java]] [[Language - Android Java|Android Java]]
|style="background: #f0f0ff" align=center| [[Language - Android Java#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #EFE973" align=center| InterfaceKit Only
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #E28585" align=center| X
|style="background: #FFC17F" align=center| Some Devices [[Image:Icon-Android_Honeycomb.png|24px|link=Software_Overview#Honeycomb|alt=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-06.png|link=|alt=Moderate]]
|-


[[Data Interval/Change Trigger]] - Learn about these two properties that control how much data comes in from your sensors.
<br clear="all">
----
[[Image:logging_exceptions_errors.jpg|link=Logging, Exceptions, and Errors|100px|left]]


|'''Scripting'''
|-


|[[Image:Icon-Applescript.png|alt=Applescript|24x24px|link=Language - Applescript]] [[Language - Applescript|Applescript]]
[[Logging, Exceptions, and Errors]] - Learn about all the tools you can use to debug your program.
|style="background: #f0f0ff" align=center| [[Language - Applescript#Quick Downloads|Quick Downloads]]
<br clear="all">
|style="background: #ade6ab" align=center| All Devices
----
|style="background: #ade6ab" align=center| All Devices
[[Image:best_practices_icon.jpg|link=Best Phidgets Practices|100px|left]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-06.png|link=|alt=Moderate]]
|-


|[[Image:Icon-Autoit.png|alt=AutoIt|24x24px|link=Language - AutoIt]] [[Language - AutoIt|AutoIt]]
|style="background: #f0f0ff" align=center| [[Language - AutoIt#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #E28585" align=center| None
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-


|[[Image:Icon-Ruby.png|alt=Ruby|24x24px|link=Language - Ruby]] [[Language - Ruby|Ruby]]  
[[Best Phidgets Practices]] - Good programming habits that will save you from common problems when writing code for your Phidgets.  
|style="background: #f0f0ff" align=center| [[Language - Ruby#Quick Downloads|Quick Downloads]]
<br clear="all">
|style="background: #ade6ab" align=center| All Devices
----
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-
|-
|'''Advanced'''
|
----
[[Image:network_service_icon.jpg|link=Phidget Network Server|100px|left]]


|'''Science and Math'''
|-


|[[Image:Icon-LabVIEW.png|alt=LabVIEW|24x24px|link=Language - LabVIEW]] [[Language - LabVIEW|LabVIEW]]
[[Phidget Network Server]] - Phidgets can be controlled and communicated with over your network- either wirelessly or over ethernet.
|style="background: #f0f0ff" align=center| [[Language - LabVIEW#Quick Downloads|Quick Downloads]]
<br clear="all">
|style="background: #ade6ab" align=center| All Devices
----
|style="background: #ade6ab" align=center| All Devices
[[Image:phidget_dictionary_icon.jpg|link=Phidget Dictionary|100px|left]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-06.png|link=|alt=Moderate]]
|-


|[[Image:Icon-Matlab.png|alt=MATLAB|24x24px|link=Language - Matlab]] [[Language - MATLAB|MATLAB]]
|style="background: #f0f0ff" align=center| [[Language - MATLAB#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #FFC17F" align=center| Some Devices
|style="background: #E28585" align=center| X
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #E28585" align=center| X
|style="background: #ade6ab" align=center| [[Image:Level-06.png|link=|alt=Moderate]]
|-


|[[Image:Icon-Simulink.png|alt=Simulink|24x24px|link=Language - Simulink]] [[Language - Simulink|Simulink]]
[[Phidget Dictionary]] - Share information over the network using the Phidgets API.
|style="background: #f0f0ff" align=center| [[Language - Simulink#Quick Downloads|Quick Downloads]]
<br clear="all">
|style="background: #ade6ab" align=center| All Devices
----
|style="background: #EFE973" align=center| InterfaceKit Only
[[Image:phidget_manager_icon.jpg|link=Phidget Manager|100px|left]]
|style="background: #E28585" align=center| X
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #E28585" align=center| X
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-




|'''Multimedia'''
[[Phidget Manager]] - Keep track of all available Phidgets using the Phidget Manager.
<br clear="all">
|-
|-
|[[Image:Icon-Adobe Director.png|alt=Adobe Director|24x24px|link=Language - Adobe Director]] [[Language - Adobe Director|Adobe Director]]
|style="background: #f0f0ff" align=center| [[Language - Adobe Director#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| InterfaceKit Only
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-
|[[Image:Icon-Flash AS3.png|alt=Flash AS3|24x24px|link=Language - Flash AS3]] [[Language - Flash AS3|Flash AS3]]
|style="background: #f0f0ff" align=center| [[Language - Flash AS3#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-10.png|link=|alt=Extensive]]
|-
|[[Image:Icon-LiveCode.png|alt=LiveCode|24x24px|link=Language - LiveCode]] [[Language - LiveCode|LiveCode]]
|style="background: #f0f0ff" align=center| [[Language - LiveCode#Quick Downloads|Quick Downloads]]
|style="background: #EFE973" align=center| InterfaceKit Only
|style="background: #EFE973" align=center| InterfaceKit Only
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #E28585" align=center| X
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-
|[[Image:Icon-MaxMSP.png|24x24px|alt=Max/MSP|link=Language - Max/MSP]] [[Language - Max/MSP|Max/MSP]]
|style="background: #f0f0ff" align=center| [[Language - Max/MSP#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| All Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-06.png|link=|alt=Moderate]]
|-
|'''Other Languages'''
|-
|[[Image:Icon-CSharp.png|24x24px|alt=C Sharp (.NET Compact Framework)|link=Language - C Sharp (.NET Compact Framework)]] [[Language - C Sharp (.NET Compact Framework)|C# (.NET Compact)]]
|style="background: #f0f0ff" align=center| [[Language - C Sharp (.NET Compact Framework)#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #FFC17F" align=center| Some Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-
|[[Image:Icon-Visual Basic Net.png|24x24px|alt=Visual Basic (.NET Compact Framework)|link=Visual Basic (.NET Compact Framework)]] [[Language - Visual Basic (.NET Compact Framework)|Visual Basic<br> (.NET Compact Framework)]]
|style="background: #f0f0ff" align=center| [[Language - Visual Basic (.NET Compact Framework)#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #FFC17F" align=center| Some Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-
|[[Image:Icon-Visual Basic for Applications.png|alt=Visual Basic for Applications|24x24px|link=Language - Visual Basic for Applications]] [[Language - Visual Basic for Applications|Visual Basic for Apps]]
|style="background: #f0f0ff" align=center| [[Language - Visual Basic for Applications#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #FFC17F" align=center| Some Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-
|[[Image:Icon-Visual Basic Script.png|alt=Visual Basic Script|24x24px|link=Language - Visual Basic Script]] [[Language - Visual Basic Script|Visual Basic Script]]
|style="background: #f0f0ff" align=center| [[Language - Visual Basic Script#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #FFC17F" align=center| Some Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-
|[[Image:Icon-Delphi.png|alt=Delphi|24x24px|link=Language - Delphi]] [[Language - Delphi|Delphi]]
|style="background: #f0f0ff" align=center| [[Language - Delphi#Quick Downloads|Quick Downloads]]
|style="background: #ade6ab" align=center| All Devices
|style="background: #FFC17F" align=center| Some Devices
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Checkmark.png|link=]]
|style="background: #ade6ab" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-
|}
|}
<nowiki>*</nowiki> A direct USB connection would be plugging the Phidget into a USB port and using it locally.  This is the typical way to use a Phidget.  However, some platforms (such as the iPhone platform) do not have USB ports and hence can only use a Phidget over a network, via the [[Phidget WebService]].


<nowiki>**</nowiki> Native library support means that the calls you make to a Phidget in this language are in the language as well.  If the calls are non-native, the use of Phidgets is through an external library linker, such as callib() in MATLAB, for example.  The core Phidget library is written in C, and most other languages use this library as their core, but a 'Native' interface cleanly hides this detail.


<sup>&dagger;</sup> Most languages have code samples for all Phidgets, but some have only some devices (visit the language page to learn which ones), and some only have an Interface Kit example. The Phidget Interface Kit is a common Phidget with provides an interface with analog sensors, digital input, and digital output.  So, when we choose which examples to write, the Interface Kit is often at the top of our customer's lists.
== Operating System Support ==
 
{{:Operating System Support}}
<span id="Honeycomb">[[Image:Icon-Android_Honeycomb.png|24px|link=]]</span>Android Honeycomb Version 3.1 or Higher Only
 
==Third Party Support==
 
{{GentleAlert|'''These products must be purchased directly from these companies and all support calls must be directed to them'''}}
 
Some third party companies also offer and support software programs that work with Phidgets boards. Phidgets does not have a certification program and does not make any warranty about these products.
 
In alphabetical order:
 
{| style="border:1px solid darkgray;" cellpadding="7px;"
|-style="background: #f0f0f0" align=center
! Company
! Product
! Runs On
! Website
! style="width:50%;" | Synopsis
! Product Information
|-
 
|'''24U'''
|24U Phidgets Plug-in 1.0
|Mac, Windows
|[http://www.24usoftware.com/plugins.php Website]
|24U Phidgets Plug-In lets you connect different kind of phidgets (www.phidgets.com) to your computer's USB port and interact with them directly from FileMaker Pro.
|[[Image:Pdficon_small.gif|link=http://www.phidgets.com/documentation/ThirdPartyInfo/ThirdPartySoftware/24U.pdf]]
|-
 
|'''DSPRobotics'''
|Flowstone
|Windows 2000/XP/Vista/7/Embedded
|[http://www.dsprobotics.com/ Website]
|Graphical Programming Language aimed at real-time Digital Signal Processing.(DSP), Robotics and Embedded applications. FlowStone is a drag and drop environment where you combine high-level and low-level modules to build real time applications.
|[[Image:Pdficon_small.gif|link=http://www.phidgets.com/documentation/ThirdPartyInfo/ThirdPartySoftware/FlowStone.pdf]]
|-
 
|'''MANIPIL'''
|Visual Domotique
|Windows XP/Vista/7
|[http://www.manipil.ch/cms1/vd/tutoriels/setup-and-to-use-a-phidget-module.html Website]
|Visual Domotique is a Graphical I/O programming for Windows XP/Vista/7. Various components allow you to draw electrical schema and control panel. No need to know how to program to use this software. Varied uses are possible: Home automation, security, hobby, Control process education... Available in French.
|[[Image:Pdficon_small.gif|link=http://www.phidgets.com/documentation/ThirdPartyInfo/ThirdPartySoftware/Manipil_en.pdf]]
|-
 
|'''PCRBOX'''
|PCR Automation
|Windows XP/Vista/7 (32 & 64bit)
|[http://www.pcrbox.com/en/ Website]
|PCR Automation is an easy to use software that works immediately without the need for any programming. It interfaces with the 1018, 1070 and 1072. Several interfaces can be opened simultaneously, each in a different window. Each input / output can be customized (label, sensor, offset, units, sensitivity, recording ...). The log files can be automatically sent by E-mail. Users can add their own sensors to the library of thirty Phidgets sensors.
|[[Image:Pdficon_small.gif|link=http://www.phidgets.com/documentation/ThirdPartyInfo/ThirdPartySoftware/pcr-automation-en.pdf]]
|-
 
|'''PiXCL Automation Technologies'''
|PiXCL Advanced Imaging 10.2
|Windows XP/Vista/7
|[http://www.pixcl.com/Using_Phidgets_with_PiXCL.htm Website]
|PiXCL is a powerful and easy-to-learn event driven interpreted language for the fast creation of image acquisition, processing and advanced analysis applications. The suite includes a compiler and development studio with context sensitive help and plenty of sample code. V10.1 provides you with the tools to create applications that combine Phidget devices with digital cameras and scanners.
|[[Image:Pdficon_small.gif|link=http://www.phidgets.com/documentation/ThirdPartyInfo/ThirdPartySoftware/PiXCL.pdf]]
|-
 
|'''SoapBox Automation'''
|SoapBox Snap
|Windows XP/Vista/7
|[http://soapboxautomation.com/products/soapbox-snap/ Website]
|SoapBox Snap is a free and open source PC-based automation platform. It includes a ladder logic editor and a “soft” runtime right out of the box.
|[[Image:Pdficon_small.gif|link=http://www.phidgets.com/documentation/ThirdPartyInfo/ThirdPartySoftware/SoapBox.pdf]]
|-
 
|'''UACh - Universida Austral de Chile'''
|monoBOTICS-icarus
|Linux
|[http://www.monobotics.ic.uach.cl/ Website]
|The monoBOTICS project aims to become an OpenSource Framework, to facilitate the tasks of design, simulation and implementation of solutions for areas of Robotics and Automation, both for people with basic knowledge of programming, as for more advanced developers.
|[[Image:Pdficon_small.gif|link=http://www.phidgets.com/documentation/ThirdPartyInfo/ThirdPartySoftware/monoBOTICS.pdf]]
|-
|}
 
==Legacy Languages==
 
Legacy languages are languages which we supported in the past; however, we no longer actively develop or support them.  We provide the software page information for the limited existing users. 
 
{| style="border:1px solid darkgray;" cellpadding="7px;"
|-style="background: #f0f0f0" align=center
! Language || API || Code Samples<sup>&dagger;</sup> || [[General Phidget Programming#Event Driven Code|Events]] || [[General Phidget Programming#Logic Code|Logic Code]] || Use via Direct USB* || [[Phidget WebService]] || Native Library** || Phidget User Base
|-
 
|'''Legacy Languages'''<sup>&otimes;</sup>
|-
|[[Image:Icon-REALBasic.png|alt=REALBasic|24x24px|link=Language - REALBasic]] [[Language - REALBasic|REALBasic]]
|style="background: #bbb" align=center| All Devices
|style="background: #bbb" align=center| None
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Level-01.png|link=|alt=Small]]
|-
 
|[[Image:Icon-Flex AS3.png|alt=Flex AS3|24x24px|link=Language - Flex AS3]] [[Language - Flex AS3|Flex AS3]]
|style="background: #bbb" align=center| All Devices
|style="background: #bbb" align=center| All Devices
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Checkmark.png|link=]]
|style="background: #bbb" align=center| [[Image:Level-01.png|link=|alt=Moderate]]
|-
 
|}
 
If you have an existing code base in these languages and the legacy status of these languages is a serious inconvenience, please [[Contact Us]].


{{CreativeCommons}}
{{:Programming Resources}}

Revision as of 21:26, 31 October 2018


This page outlines the general concepts needed to write code for a Phidget.


We have created a complete set of Application Programming Interfaces (APIs) for the most popular programming languages, and our software libraries are compatible with all major operating systems.


If you are new to Phidgets, we suggest starting with What is a Phidget?, followed by Phidget Programming Basics, and the user guide for your device. If you are looking for more information, try one of our overview pages:

Overview Pages

General
What is a phidget icon.jpg


What is a Phidget? - Here we discuss the very basics of what Phidgets are, and how they can be powerful tools in making your applicaiton.

Programming
Phidget programming basics.jpg


Phidget Programming Basics - Here you can find the basic concepts to help you get started with making your own programs that use Phidgets.


Addressing phidgets icon.jpg


Addressing Phidgets - Learn the various ways you can ensure your program connects to the right Phidgets.


Using multiple phidgets.jpg


Using Multiple Phidgets - Here we'll show you how simple it is to use multiple Phidgets in your program, as well as some less obvious tips and tricks.


Polling events.jpg


Polling vs. Events - Your program can gather data in either a polling-driven or event-driven manner. Learn the difference to determine which is best for your application.


Data interval change trigger.jpg


Data Interval/Change Trigger - Learn about these two properties that control how much data comes in from your sensors.


Logging exceptions errors.jpg


Logging, Exceptions, and Errors - Learn about all the tools you can use to debug your program.


Best practices icon.jpg


Best Phidgets Practices - Good programming habits that will save you from common problems when writing code for your Phidgets.


Advanced
Network service icon.jpg


Phidget Network Server - Phidgets can be controlled and communicated with over your network- either wirelessly or over ethernet.


Phidget dictionary icon.jpg


Phidget Dictionary - Share information over the network using the Phidgets API.


Phidget manager icon.jpg


Phidget Manager - Keep track of all available Phidgets using the Phidget Manager.


Operating System Support

We provide support for all major operating systems. Select your operating system from the table below and follow the Getting Started guide in order to set up your machine. If you need to access non-current versions of our drivers you can find them here. You can find the driver changelog here.

Desktop OS

OS - Windows OS - macOS OS - Linux
Windows MacOS Linux
(Windows 8 or Newer) (OS X 10.5 or Newer) (Kernel 2.6 or Newer)

Mobile/Wireless OS

OS - Android OS - iOS OS - Phidget SBC
Android iOS Phidget SBC
(4.1 Jellybean or Newer) (8.0 or Newer) (All versions supported)

Desktop OSes

OS - Windows Windows (Windows 8 or Newer)
OS - macOS MacOS (OS X 10.5 or Newer)
OS - Linux Linux (Kernel 2.6 or Newer)

Mobile/Wireless OSes

OS - Android Android (4.1 Jellybean or Newer)
OS - iOS iOS (8.0 or Newer)
OS - Phidget SBC Phidget SBC (All versions supported)

We provide support for a variety of programming languages. Each language has code samples for you to use as well as an in-depth API for you to reference. If you aren't sure which language to use, we recommend using one of our core languages, because they are supported under all major operating systems and have a wide user base. Python is a good choice for new programmers because it's quick to set up.

Core Languages

C C# Python Java JavaScript
C C# Python Java JavaScript

Mobile Languages

Android Java Swift Objective C
Java (Android) Swift Objective C

Other Languages

VB.Net LabVIEW Max/MSP
VB LabVIEW Max/MSP

Core Languages

C C
C# C#
Python Python
Java Java
JavaScript JavaScript

Mobile Languages

Android Java Java (Android)
Swift Swift
Objective C Objective C

Other Languages

VB.Net VB
LabVIEW LabVIEW
Max/MSP Max/MSP