Attaching/reading sensor values from InterfaceKitPhidget

Supporting Java SE version 7 and up
ganadiotis
Fresh meat
Posts: 3
Joined: Wed Nov 06, 2013 9:05 am
Contact:

Attaching/reading sensor values from InterfaceKitPhidget

Postby ganadiotis » Wed Nov 06, 2013 9:48 am

Hi,

i am trying to get a very basic sensor configuration working and i'm facing issues, so would appreciate some help here.

Setup + environment:

I'm working on a windows 7 sp1 machine with 8 gigs of memory and JDK 1.7.0_25. I have purchased a PhidgetInterfaceKit 8/8/8 board (1018) and a couple of sensors (Luminance, 1143 and Temperature/Humidity, 1125).

My goal is to be able to periodically read data from the sensors and record their values in an application db. For this purpose, i have connected the sensors to the 1018 analog input ports and the 1018 itself to a USB port in my PC, using the cables that came with the devices.

Testing process + issue at hand:

Initially, i run the Phidget Control Panel to check whether everything was connected properly. Both sensors seemed to be working and recording values that correspond to environmental conditions.

Then i tried to work with the Java API to register the proper event handlers that would allow me to get these values programmatically. I am experienced in Java and the tutorials seemed straightforward. I started with the HelloWorld class and it just worked. Then i tried to extend this example and this is where things started being incomprehensible.

First of all, i noticed from the start that the 1018 was the only Phidget listed by the AttachListener. This seemed a bit strange, given that the sensors were attached to it and working properly as verified by the Control Panel, however i thought that maybe the 1143 and 1125 needed to be explicitly opened/attached, so i tried to do just that.

Omitting the 1143 for the time being, since i could not find a representing class in the API, i focused on the 1125. I tried the sequence of openAny and waitForAttachment commands, as seemed reasonable and also suggested in sample code (TemperatureExample) and elsewhere. However, execution hanged on waitForAttachment. If on the other hand i omitted the waitForAttachment statement, trying to getAmbientTemperature produced a PhidgetException 5 (Phidget not physically attached.) as would be expected.

I tried a number of things here, including numerous code permutations and experiments, running the TemperatureExample as-is, changing USB port and cable, using compliance JRE modes (al the way back to 1.2) and even eventually switching to Python, all of which produced the exact same result.

I'm pretty sure by now there is something fundamentally wrong here, just not sure at all what it could be, so any help would be greatly appreciated.

Thanks in advance

George Anadiotis

User avatar
mparadis
Site Admin
Posts: 632
Joined: Fri Oct 28, 2011 12:17 pm
Contact:

Re: Attaching/reading sensor values from InterfaceKitPhidget

Postby mparadis » Wed Nov 06, 2013 10:12 am

The 1143 and 1125 are not intelligent devices like the 1018 is, so there's no need to wait for them to attach as long as the InterfaceKit they're attached to is connected. The TemperatureExample you mentioned is for a different Phidget that measures temperature and plugs directly into USB without the need for an InterfaceKit. In order to access values from the 1143 and 1125, you just need to read the inputs of the 1018. In Java, it would look something like:

Code: Select all

temperature = ifk.getSensorValue(0);
humidity = ifk.getSensorValue(1);
light = ifk.getSensorValue(2);


Where "ifk" is the variable name of the attached InterfaceKit and the sensors are plugged into the first three analog inputs. Each sensor returns an integer from 0 to 1000, which can be converted to the appropriate unit of measurement by applying the formula in the user guide for that sensor.

ganadiotis
Fresh meat
Posts: 3
Joined: Wed Nov 06, 2013 9:05 am
Contact:

Re: Attaching/reading sensor values from InterfaceKitPhidget

Postby ganadiotis » Wed Nov 06, 2013 10:47 am

Thanks for clearing this up.

In the meanwhile i continued experimenting, so i now realize that even in this way execution will hang at waitForAttachment if the Control Panel is running, as it also attaches to the 1018. If i close the Control Panel and try again, then indeed i am able to retrieve sensor values as described. Just mentioning it here as it may help somebody in the future.

User avatar
mparadis
Site Admin
Posts: 632
Joined: Fri Oct 28, 2011 12:17 pm
Contact:

Re: Attaching/reading sensor values from InterfaceKitPhidget

Postby mparadis » Wed Nov 06, 2013 11:14 am

Yes, you can only have one application connected to a Phidget an any given time, unless you use the Phidget Webservice to connect to them instead.


Return to “Java”

Who is online

Users browsing this forum: No registered users and 0 guests