I'm doing a Phidget project using a 1047-1 PhidgetEncoder Highspeed 4 input, with 2 draw wire sensors and a rotary encoder.
I am using visual studio, C++.
It has no errors in the actual code the errors say they are on line 1 so i don't know.
Here's the code I found:
Code: Select all
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include "C:\Users\coops\Desktop\Other\Prop Stuff\c\phidget22.h"
//Declare any event handlers here. These will be called every time the associated event occurs.
static void CCONV onPositionChange(PhidgetEncoderHandle ch, void* ctx, int positionChange, double timeChange, int indexTriggered) {
int channel;
//Getting the channel number to distinguish between Phidgets
Phidget\_getChannel((PhidgetHandle)ch, &channel);
printf("PositionChange \[%d\]: %d\\n", channel, positionChange);
printf("TimeChange \[%d\]: %lf\\n", channel, timeChange);
printf("IndexTriggered \[%d\]: %d\\n", channel, indexTriggered);
printf("----------\\n");
}
static void CCONV onStateChange(PhidgetDigitalInputHandle ch, void* ctx, int state) {
int channel;
//Getting the channel number to distinguish between Phidgets
Phidget\_getChannel((PhidgetHandle)ch, &channel);
printf("State \[%d\]: %d\\n", channel, state);
}
int main()
{
//Declare your Phidget channels and other variables
PhidgetEncoderHandle encoder0;
PhidgetEncoderHandle encoder1;
PhidgetEncoderHandle encoder2;
PhidgetDigitalInputHandle digitalInput0;
PhidgetDigitalInputHandle digitalInput1;
PhidgetDigitalInputHandle digitalInput2;
//Create your Phidget channels
PhidgetEncoder\_create(&encoder0);
PhidgetEncoder\_create(&encoder1);
PhidgetEncoder\_create(&encoder2);
PhidgetDigitalInput\_create(&digitalInput0);
PhidgetDigitalInput\_create(&digitalInput1);
PhidgetDigitalInput\_create(&digitalInput2);
//Set addressing parameters to specify which channel to open (if any)
Phidget\_setDeviceSerialNumber((PhidgetHandle)encoder0, 519353);
Phidget\_setChannel((PhidgetHandle)encoder0, 0);
Phidget\_setDeviceSerialNumber((PhidgetHandle)encoder1, 519353);
Phidget\_setChannel((PhidgetHandle)encoder1, 1);
Phidget\_setDeviceSerialNumber((PhidgetHandle)encoder2, 519353);
Phidget\_setChannel((PhidgetHandle)encoder2, 2);
Phidget\_setDeviceSerialNumber((PhidgetHandle)digitalInput0, 519353);
Phidget\_setChannel((PhidgetHandle)digitalInput0, 0);
Phidget\_setDeviceSerialNumber((PhidgetHandle)digitalInput1, 519353);
Phidget\_setChannel((PhidgetHandle)digitalInput1, 1);
Phidget\_setDeviceSerialNumber((PhidgetHandle)digitalInput2, 519353);
Phidget\_setChannel((PhidgetHandle)digitalInput2, 2);
//Assign any event handlers you need before calling open so that no events are missed.
PhidgetEncoder\_setOnPositionChangeHandler(encoder0, onPositionChange, NULL);
PhidgetEncoder\_setOnPositionChangeHandler(encoder1, onPositionChange, NULL);
PhidgetEncoder\_setOnPositionChangeHandler(encoder2, onPositionChange, NULL);
PhidgetDigitalInput\_setOnStateChangeHandler(digitalInput0, onStateChange, NULL);
PhidgetDigitalInput\_setOnStateChangeHandler(digitalInput1, onStateChange, NULL);
PhidgetDigitalInput\_setOnStateChangeHandler(digitalInput2, onStateChange, NULL);
//Open your Phidgets and wait for attachment
Phidget\_openWaitForAttachment((PhidgetHandle)encoder0, 5000);
Phidget\_openWaitForAttachment((PhidgetHandle)encoder1, 5000);
Phidget\_openWaitForAttachment((PhidgetHandle)encoder2, 5000);
Phidget\_openWaitForAttachment((PhidgetHandle)digitalInput0, 5000);
Phidget\_openWaitForAttachment((PhidgetHandle)digitalInput1, 5000);
Phidget\_openWaitForAttachment((PhidgetHandle)digitalInput2, 5000);
//Do stuff with your Phidgets here or in your event handlers.
//Wait until Enter has been pressed before exiting
getchar();
//Close your Phidgets once the program is done.
Phidget\_close((PhidgetHandle)encoder0);
Phidget\_close((PhidgetHandle)encoder1);
Phidget\_close((PhidgetHandle)encoder2);
Phidget\_close((PhidgetHandle)digitalInput0);
Phidget\_close((PhidgetHandle)digitalInput1);
Phidget\_close((PhidgetHandle)digitalInput2);
PhidgetEncoder\_delete(&encoder0);
PhidgetEncoder\_delete(&encoder1);
PhidgetEncoder\_delete(&encoder2);
PhidgetDigitalInput\_delete(&digitalInput0);
PhidgetDigitalInput\_delete(&digitalInput1);
PhidgetDigitalInput\_delete(&digitalInput2);
}