Page 1 of 1

Some Coding help

Posted: Mon Apr 21, 2025 8:55 pm
by hazelley
Hello,
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);
}