Language - C Sharp: Difference between revisions

From Phidgets Support
No edit summary
 
(310 intermediate revisions by 10 users not shown)
Line 1: Line 1:
C# is a modern, object-oriented programming language developed by Microsoft.
<metadesc>Communicate over USB with sensors, controllers and relays with Phidgets! Our C# library supports Windows/MacOS/Linux using Visual Studio or Mono.</metadesc>
[[Category:Language]]
__NOTOC__
We provide support for the C# language in all major operating systems. We also provide instructions on how to get your project started in a number of common development environments. Select your operating system and preferred development environment below, and follow the instructions to get your project running with Phidgets.


==Assessment for use with Phidgets==
If you do not know which development environment you want to use, or your development environment of choice is not listed, we recommend starting with Mono as the simplest path to getting your code running. Visual Studio is the most popular way to build C# projects, but it also has a steep learning curve.
Since C# supports event-driven programming and is object-oriented, it is capable of using all of the functionality Phidgets has to offer.


Due to the popularity of C#, you can also find plenty of other programmers on the C# section of [http://www.phidgets.com/phorum/viewforum.php?f=22 our forums].
Once you have set up your development environment to run with Phidgets, we recommend you follow our guide on [[Phidget Programming Basics]]. The guide will showcase the fundamentals of programming with Phidgets, with examples in C#.
==Support==
C# has a complete API and sample code for all Phidgets devices.


For a complete list of our supported languages and their support status, [[Levels of Support|click here]].
== Setup Guide ==
<div class="phd-deck-sequence">
{{PT3_CSHARP_CHOOSE}}{{PT3_CSHARP_WIN_VS}}{{PT3_CSHARP_WIN_VS_1}}{{PT3_CSHARP_WIN_VS_2}}
{{PT3_CSHARP_WIN_MONO}}{{PT3_CSHARP_MAC_MONO}}{{PT3_CSHARP_LNX_MONO}}{{PT3_CSHARP_LNX_DOTNET}}{{PT3_CSHARP_MAC_DOTNET}}{{PT3_CSHARP_WIN_MONODEV}}


==Restrictions==
In this section, list any restrictions or limitations that this particular language may impose. For example, incompatibility with certain operating systems.
==Development Environments and Compilers==
===Visual Studio 2003===
Describe each major version and notable differences (.Net framework version, etc).
===Visual Studio 2005===
===Visual Studio 2008===
===Visual Studio 2010===
==Drivers, Libraries and Resources==
Before you can run your program, you need to set up the proper environment and get the necessary files off the Phidgets website.
Visit the drivers section at www.phidgets.com and get the latest:
* [http://www.phidgets.com/drivers.php Phidget Framework]
You will need the Phidget Framework to use and to program with Phidgets. We also recommend that you download the following reference materials:
* [http://www.phidgets.com/documentation/Phidget21.NET.zip .NET API Manual]
* [http://www.phidgets.com/documentation/web/NETDoc/Index.html .NET API Reference].
The .NET API manual lists calls and events for every type of Phidget and can be used as a reference.
* Example Programs written in C# [[http://www.phidgets.com/downloads/examples/CSharp_2.1.8.20110615.zip Windows]] [[http://www.phidgets.com/downloads/examples/CE_2.1.8.20110615.zip .NET Compact Framework]]
* You can find a high level discussion about programming with Phidgets in general on the [[General API]] page.
* The [[Device Functionality]] page explains the general operational information for your device.
You may want to have these pages open while working through these instructions.
==Getting Started==
===Setting up a Phidgets Project===
The Phidget examples were written using Visual C# 2005 and this tutorial assumes its use. Newer
versions of Visual Studio Express are freely available for download from Microsoft. Older versions of
Visual Studio work as well and would be set up in a similar manner (Note: you would have to recreate
the user interface in the examples for Visual Studio versions earlier than 2005). In Visual Studio:
* Generate a new C# Windows Application with a descriptive name such as PhidgetTest.
* Launch the Add Reference window (Project | Add Reference).
* Under the .NET tab, select the most recent Phidget21.NET library. If it does not appear in this list, then you can Browse to the Phidget Framework installation directory and add the Phidget21.NET. dll. For earlier versions of Visual Studio, you will want to use the Phidget21.NET1.1.dll instead.
* Place a TextBox on your main form for the purpose of capturing output.
* Hook the form's Load and FormClosing events. Phidget initialization and shutdown will take place
there.
The project now has access to Phidgets and we are ready to begin coding.
===Coding For Your Phidget===
Before you can use the Phidget, you must include a reference in the code to the libraries. Launch the
code editor for your form and add this to your using statements:Getting_Started_CSharp created: 11/10/10 Page 2
using Phidgets;
using Phidgets.Events;
Afterwards, a Phidget object will need to be declared and then initialized. For example, we can
declare a PhidgetInterfaceKit inside our form with:
<div style="background-color: #f3f3f3; border-color: #1c9edb; border-width:1px; border-style: dashed;">
<font size="3">
<source lang=CSharp>
    namespace PhidgetTest
    {
        public partial class Form1 : Form
        {
            //The Phidget object declaration
            private InterfaceKit ifKit;
            public Form1()
            {
                InitializeComponent();
            }
            //... Form1_Load and Form1_OnClosing here
        }
    }
</source>
</font>
</div>
</div>




The object name for any type of Phidget is listed in the API manual. Every type of Phidget also
== Quick Downloads ==
inherits functionality from the Phidget base class.
If you already know what you're doing and just need the files, you can find them all below.
 
===Connecting to the Phidget===
 
Next, the program needs to try and connect to the Phidget through a call to open(). Open will tell the  
program to continuously try to connect to a Phidget, based on the parameters given, even trying to
reconnect if it gets disconnected. This means that simply calling open does not guarantee you can
use the Phidget immediately. We can handle this by using event driven programming and tracking
the AttachEvents and DetachEvents, or by calling waitForAttachment. WaitForAttachment will block
indefinitely until a connection is made to the Phidget, or an optional timeout is exceeded.
 
<div style="background-color: #f3f3f3; border-color: #1c9edb; border-width:1px; border-style: dashed;">
<font size="3">
<source lang=CSharp>
   
private void Form1_Load(object sender, EventArgs e)
{
    ifKit = new InterfaceKit();
    ifKit.open();
    ifKit.waitForAttachment(3000);
}
</source>
</font>
</div>
The different types of open can be used with parameters to try and get the first device it can find,
open based on its serial number, or even open across the network. The API manual lists all of the
available modes that open provides. One important thing to remember is that when working with
Phidgets, a local connection will reserve the device until closed. This prevents any other instances
from retrieving data from the Phidget, including other programs. The one connection per device limit
does not apply when exclusively using the Phidget Webservice.
 
===Event Driven Programming===
 
We recommend the use of event driven programming when working with Phidgets. In C# we can
hook an event handler at loading with the following code:
<div style="background-color: #f3f3f3; border-color: #1c9edb; border-width:1px; border-style: dashed;">
<font size="3">
<source lang=CSharp>
 
ifKit.SensorChange += new SensorChangeEventHandler(ifKit_SensorChange);
 
</source>
</font>
</div>
 
The ifKit_SensorChange method is defined as follows:
 
<div style="background-color: #f3f3f3; border-color: #1c9edb; border-width:1px; border-style: dashed;">
<font size="3">
<source lang=CSharp>
 
        void ifKit_SensorChange(object sender, SensorChangeEventArgs e)
        {
            textBox1.Text = "Index " + e.Index + " Value: " + e.Value;
        }
 
</source>
</font>
</div>
 
With this function, the code inside ifKit_SensorChange will get executed every time the
PhidgetInterfaceKit reports a change on one of its analog inputs. Some events such as Attach and
Detach belong to the base Phidget object and thus are common to all types of Phidgets. Please refer
to the API manual for a full list of events and their usage.
At the end of your program, unhook any events and call Application.DoEvents(). This will make sure
there are no outstanding events being processed before calling close.
 
<div style="background-color: #f3f3f3; border-color: #1c9edb; border-width:1px; border-style: dashed;">
<font size="3">
<source lang=CSharp>
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            ifKit.SensorChange -= new SensorChangeEventHandler(ifKit_SensorChange);
            //run any events in the message queue
            Application.DoEvents();
            ifKit.close();
        }
 
</source>
</font>
</div>
Working directly with the Phidget
Some values can be read and sent directly to the Phidget, simply use the instance members and
properties. This is also how you would set properties on the Phidget such as the output state or
sensor sensitivity. These functions can be used inside a polling loop as an alternative to event driven
programming.
int val = ifKit.sensors[0].Value;


===Working with multiple Phidgets===
=== Documentation ===


Multiple Phidgets of the same type can easily be run inside the same program. In our case, it 
*{{Phidget22API}} (Select C# from drop-down menu)
requires another PhidgetInterfaceKit instance to be defined and initialized. The new instance can then
be set up, opened and used in the same process as the previous one.
If the application needs to distinguish between the devices, open can be called with the serial
number of a specific Phidget.


===Other Phidgets===
=== Example Code ===


The design given in this document can also be followed for almost all Phidgets. For example, if
*{{SampleCode|CSharp|C# Examples}}
you were using a PhidgetRFID instead of an PhidgetInterfacekit, you would declare an RFID object
instead of an InterfaceKit. The methods and events available would change but they can be accessed
in a similar manner.


<!-- Not sure if this section is even necessary
===Libraries===
==Building your Project==
Describe the different ways a project could be built using this language.
-->
==Common Problems and Solutions/Workarounds==


There are no known issues specific to C# at this time.
{{AllQuickDownloads}}

Latest revision as of 21:03, 27 May 2024


We provide support for the C# language in all major operating systems. We also provide instructions on how to get your project started in a number of common development environments. Select your operating system and preferred development environment below, and follow the instructions to get your project running with Phidgets.

If you do not know which development environment you want to use, or your development environment of choice is not listed, we recommend starting with Mono as the simplest path to getting your code running. Visual Studio is the most popular way to build C# projects, but it also has a steep learning curve.

Once you have set up your development environment to run with Phidgets, we recommend you follow our guide on Phidget Programming Basics. The guide will showcase the fundamentals of programming with Phidgets, with examples in C#.

Setup Guide

C# - Select Development Environment

Select your Development Environment:

Windows

MacOS

Linux

Language - C#

Windows with Visual Studio

Welcome to using Phidgets with C#! By using C#, you will have access to the complete Phidget22 API, including events.

Visual Studio is an IDE provided by Microsoft that can be used to develop code in a wide variety of programming languages, including C#.

Requirements

First, make sure you have the following installed:

● Phidgets Drivers for Windows (see Part 1 of this user guide)

● Microsoft Visual Studio


Nuget

The Phidget22.NET library is now available on nuget.org here. Nuget is the recommended way to install and use the .NET library in Visual Studio. The nuget package bundles the C library on Windows, so there are no other prerequisites that need to be installed. The nuget package adds targets for .NET Core and .NET Standard, so it should be usable from almost any .NET environment which also supports the C library.

Using Phidgets in Your Programs

There are two ways you can use Phidgets in Visual Studio. You can either start from a sample project provided by our code sample generator, or you can start a new project from scratch.

Select your preferred method below for instructions:

«
»

Visual Studio Code Sample

Finding Code Samples

To find the code sample to use for your Phidget, navigate to the Code Samples page and select your device from the drop-down menu.

Once you select your device, the code sample generator will give you a working code sample, and a selection of options to customize it to your needs.

The code samples we provide for C# are written to be used as Console Applications, but the concepts within can easily be re-purposed for use in a Windows Forms Application.

Using the Code Samples

If it's unclear what any of the options do, click on the nearby '?' for more info.

Once you've made your selections, click the Visual Studio Project button under Downloads.

Using the Code Samples

Extract the files and open the .sln file.

Then start the example by pressing the Start button:

What's Next?

Now that you've set up Phidgets in your programming environment, you should read our guide on Phidget Programming Basics to learn the fundamentals of programming with Phidgets.

Continue reading below for advanced information and troubleshooting for your device.

«
»

Visual Studio New Project

Setting up a New Project

When you're building a project from scratch or adding Phidget code to an existing project, you need to properly link the Phidget .NET library.

Create a new project (a Console Application will be created for this example):

Setting up a New Project

Next, right-click on References in the solution explorer and choose Add Reference.

Setting up a New Project

On the following screen, click Browse... and navigate to the location of Phidget22.NET.dll:

C:\Program Files\Phidgets\Phidget22\Phidget22.NET.dll

Setting up a New Project

Finally, to include the Phidget .NET library, add the following lines to main window class file:

using Phidget22;
using Phidget22.Events;

Success! The project now has access to Phidgets.

What's Next?

Now that you've set up Phidgets in your programming environment, you should read our guide on Phidget Programming Basics to learn the fundamentals of programming with Phidgets.

Continue reading below for advanced information and troubleshooting for your device.

«
»

Language - C#

Windows with Mono

Welcome to using Phidgets with C#! By using C#, you will have access to the complete Phidget22 API, including events.

Mono is an open-source programming environment that aims to make Microsoft .NET applications available across all operating systems.

Requirements

First, make sure you have the following installed:

● Phidgets Drivers for Windows (see Part 1 of this user guide)

Mono

Finding Code Samples

To find the code sample to use for your Phidget, navigate to the Code Samples page and select your device from the drop-down menu.

Once you select your device, the code sample generator will give you a working code sample, and a selection of options to customize it to your needs.

Using the Code Samples

If it's unclear what any of the options do, click on the nearby '?' for more info.

Once you've made your selections, click the Download Example button under Downloads.

Setting up a New Project

When you are building a project from scratch, or adding Phidget functionality to an existing project, you'll need to configure your development environment to properly link the Phidget .NET library.

The easiest way to allow Mono to access the Phidgets .NET library is to place a copy of the Phidget22.NET dll in the same folder as your program.

First, determine which version of the .NET Framework your version of Mono implements by checking the Mono Release Documentation.

Next, download the Phidget22 Development Libraries, which contain dlls for each .NET version.

Navigate in the zip file to /lib/dotnet/netXX where 'XX' is your .NET Framework version (for example, net46 for .NET 4.6), and grab the Phidget22.NET.dll from that folder.

Setting up a New Project

Next, move the Phidget22.NET.dll you extracted into the same folder as your program.

Your folder should look somehting like this:

Compile and Run

Once you are ready to run your program, open the Command Prompt and navigate to your project folder. Next, enter the following command:

mcs /r:Phidget22.NET.dll Program.cs

This will create an executable file called Program.exe. Type in the following command to run the example:

mono Program.exe

Success! The project is now using Phidgets.

What's Next?

Now that you've set up Phidgets in your programming environment, you should read our guide on Phidget Programming Basics to learn the fundamentals of programming with Phidgets.

Continue reading below for advanced information and troubleshooting for your device.

«
»

Language - C#

macOS with Mono

Welcome to using Phidgets with C#! By using C#, you will have access to the complete Phidget22 API, including events.

Mono is an open-source programming environment that aims to make Microsoft .NET applications available across all operating systems.

Requirements

First, make sure you have the following installed:

● Phidgets Drivers for macOS (see Part 1 of this user guide)

Mono

● You'll also need a copy of Phidget22.NET.dll

Finding Code Samples

To find the code sample to use for your Phidget, navigate to the Code Samples page and select your device from the drop-down menu.

Once you select your device, the code sample generator will give you a working code sample, and a selection of options to customize it to your needs.

Using the Code Samples

If it's unclear what any of the options do, click on the nearby '?' for more info.

Once you've made your selections, click the Download Example button under Downloads.

Setting up a New Project

Whether you are running our examples or adding Phidget functionality to an existing project, you'll need to configure your development environment to properly link the Phidget .NET library.

The easiest way to allow Mono to access the Phidgets .NET library is to place a copy of the Phidget22.NET dll in the same folder as your program.

First, determine which version of the .NET Framework your version of Mono implements by checking the Mono Release Documentation.

Next, download the Phidget22 Development Libraries, which contain dlls for each .NET version.

Navigate in the zip file to /lib/dotnet/netXX where 'XX' is your .NET Framework version (for example, net46 for .NET 4.6), and grab the Phidget22.NET.dll from that folder.

Setting up a New Project

Next, move the Phidget22.NET.dll you extracted into the same folder as your program.

Finally, you need to create a configuration file. Create a new file in the same directory and name it Phidget22.NET.dll.config. Copy the content below to the file.

<configuration>
<dllmap dll="phidget22.dll" target="/Library/Frameworks/Phidget22.framework/Versions/Current/Phidget22" />
</configuration>

Setting up a New Project

Your project directory should now look like this:

Compile and Run

Once you are ready to run your program, open the Terminal and navigate to your project folder. Next, enter the following command:

mcs Program.cs -r:Phidget22.NET.dll

This will create an executable file called Program.exe. Type in the following command to run your program:

mono Program.exe

Success! The project is now using Phidgets.

What's Next?

Now that you've set up Phidgets in your programming environment, you should read our guide on Phidget Programming Basics to learn the fundamentals of programming with Phidgets.

Continue reading below for advanced information and troubleshooting for your device.

«
»

Language - C#

Linux with Mono

Welcome to using Phidgets with C#! By using C#, you will have access to the complete Phidget22 API, including events.

Mono is an open-source programming environment that aims to make Microsoft .NET applications available across all operating systems.

Requirements

First, make sure you have the following installed:

● Phidgets Drivers for Linux (see Part 1 of this user guide)

● Mono

● A copy of Phidget22.NET.dll


You need our C development libraries in order to use Mono. You can install them with:

apt-get install libphidget22-dev

If you don't already have Mono installed, you can get it with:

apt-get install mono-complete

Finding Code Samples

To find the code sample to use for your Phidget, navigate to the Code Samples page and select your device from the drop-down menu.

Once you select your device, the code sample generator will give you a working code sample, and a selection of options to customize it to your needs.

Using the Code Samples

If it's unclear what any of the options do, click on the nearby '?' for more info.

Once you've made your selections, click the Download Example button under Downloads.

Setting up a New Project

Whether you are running our examples or adding Phidget functionality to an existing project, you'll need to configure your development environment to properly link the Phidget .NET library.

The easiest way to allow Mono to access the Phidgets .NET library is to place a copy of the Phidget22.NET dll in the same folder as your program.

First, determine which version of the .NET Framework your version of Mono implements by checking the Mono Release Documentation.

Next, download the Phidget22 Development Libraries, which contain dlls for each .NET version.

Navigate in the zip file to /lib/dotnet/netXX where 'XX' is your .NET Framework version (for example, net46 for .NET 4.6), and grab the Phidget22.NET.dll from that folder.

Setting up a New Project

Move the Phidget22.NET.dll you extracted into the same folder as your program.

Your project directory should now look like this:

Compile and Run

Once you are ready to run your program, open the Terminal and navigate to your project folder. Next, enter the following command:

mcs Program.cs -r:Phidget22.NET.dll

An executable file will be created. Run the program using mono with the following command:

mono Program.exe

Success! The project is now using Phidgets.

What's Next?

Now that you've set up Phidgets in your programming environment, you should read our guide on Phidget Programming Basics to learn the fundamentals of programming with Phidgets.

Continue reading below for advanced information and troubleshooting for your device.

«
»

Language - C#

Linux with dotnet CLI

Welcome to using Phidgets with C#! By using C#, you will have access to the complete Phidget22 API, including events.

The dotnet command-line interface is the quickest way to start programming in C# on Linux and MacOS.

Requirements

First, make sure you have the Phidgets Drivers for Linux installed (see this page for installation instructions).


You also need our C development libraries in order to use dotnet. You can install them with:

apt-get install libphidget22-dev

Installing dotnet CLI

For installation instructions, visit Microsoft's documentation and select your Linux distro.

Usually, this will involve adding Microsoft packages to your repository and then installing dotnet via apt-get.

Setting up a New Project

Create a new C# project using the following command:

dotnet new console -o helloworld

This will create a new C# console application in a folder named helloworld in your current directory. Next, enter the folder and type:

dotnet run

If everything installed properly, the application should build and you'll see 'Hello, World!' printed in the terminal.

Getting Phidgets Sample Code

Next we'll use this base project to run some Phidgets sample code. Go to the product page for your Phidget and go to the Code Samples tab. Select C# from the language drop-down and use the check boxes to modify the example if you'd like.

Click the copy button in the corner of the code sample and paste it into the Program.cs for your HelloWorld program, overwriting the existing code.

Compile and Run

Once you've pasted the sample code into the .cs file and saved, you need to add the Phidgets .NET package to your project:

dotnet add package Phidget22.NET

Then you can re-build the project using

dotnet run

Success! The project is now using Phidgets.

What's Next?

Now that you've set up Phidgets in your programming environment, you should read our guide on Phidget Programming Basics to learn the fundamentals of programming with Phidgets.

Continue reading below for advanced information and troubleshooting for your device.

«
»

Language - C#

MacOS with dotnet CLI

Welcome to using Phidgets with C#! By using C#, you will have access to the complete Phidget22 API, including events.

The dotnet command-line interface is the quickest way to start programming in C# on MacOS and Linux.

Installing dotnet CLI

First, make sure you have the Phidgets Drivers for MacOS installed (see this page for installation instructions).

Next, visit Microsoft's .NET page and download .NET after confirming compatibility with your version of MacOS.

Click on the .pkg file once it's finished downloading, and follow the steps to install the .NET SDK.

Setting up a New Project

Open Finder and go to Utilities -> Terminal. Create a new C# project using the following command:

dotnet new console -o helloworld

This will create a new C# console application in a folder named helloworld in your current directory. Next, type cd helloworld to enter the folder, and type:

dotnet run

If everything installed properly, the application will build and you'll see 'Hello, World!' printed in the terminal. You can open Program.cs using the text editor to see the code.

Getting Phidgets Sample Code

Next we'll use this base project to run some Phidgets sample code. Go to the product page for your Phidget and go to the Code Samples tab. Select C# from the language drop-down and use the check boxes to modify the example if you'd like.

Click the copy button in the corner of the code sample and paste it into the Program.cs for your HelloWorld program, overwriting the existing code.

Compile and Run

Once you've pasted the sample code into the .cs file and saved, you need to add the Phidgets .NET package to your project using this terminal command:

dotnet add package Phidget22.NET

Then you can re-build the project using

dotnet run

Success! The project is now using Phidgets.

What's Next?

Now that you've set up Phidgets in your programming environment, you should read our guide on Phidget Programming Basics to learn the fundamentals of programming with Phidgets.

Continue reading below for advanced information and troubleshooting for your device.

«
»

Language - C#

Windows with MonoDevelop / Xamarin Studio

Welcome to using Phidgets with C#! By using C#, you will have access to the complete Phidget22 API, including events.

MonoDevelop is an open-source programming environment that mimics the capabilities of Microsoft Visual Studio and is available across all operating systems.

Requirements

First, make sure you have the following installed:

● Phidgets Drivers for Windows (see Part 1 of this user guide)

● MonoDevelop or Xamarin Studio

Setting up a New Project

When you are building a project from scratch, or adding Phidget function calls to an existing project, you'll need to configure your development environment to properly link the Phidget .NET library.

First, create a new .NET project:

Setting up a New Project

Name the project and click Create.

Setting up a New Project

Next, add a reference to the Phidget .NET library:

Setting up a New Project

On the following screen, select Phidget22.NET.dll:

Success! The project now has access to Phidgets.

Finding Code Samples

To find the code sample to use for your Phidget, navigate to the Code Samples page and select your device from the drop-down menu.

Once you select your device, the code sample generator will give you a working code sample, and a selection of options to customize it to your needs.

Using the Code Samples

If it's unclear what any of the options do, click on the nearby '?' for more info.

Once you've made your selections, click the copy button and paste the code into your new project.

What's Next?

Now that you've set up Phidgets in your programming environment, you should read our guide on Phidget Programming Basics to learn the fundamentals of programming with Phidgets.

Continue reading below for advanced information and troubleshooting for your device.

«
»


Quick Downloads

If you already know what you're doing and just need the files, you can find them all below.

Documentation

Example Code

Libraries