/** Test Program to Demonstrate C-Access to MPOD-Crate / low and high voltage channels via SNMP tested 01/15/08 running with extended DLL */ #include "stdafx.h" #include "WIENER_SNMP.h" #include /******************************************************************************/ /** Main. - Init - Read output voltage - Loop: Set new output voltage - Cleanup */ void main(void) { if(!SnmpInit()) return; // basic init HSNMP crate1 = SnmpOpen("192.168.0.80"); // open TCP/IP socket if(!crate1) return; printf("-----------------------------------------------------------------\n"); double ret; double voltage; double vSet=0; int channel=1; int iret; int i, j; setMainSwitch(crate1, 1); Sleep(5000); printf("Turning channel %i ON\n", channel); setChannelSwitch(crate1, channel, 1); Sleep(5000); //Test Channel Status iret=getChannelSwitch(crate1, channel); printf("Channel Status = %i\n\n", iret); //Test Setting and reading output Voltage vSet =getOutputVoltage(crate1, channel); printf("Output Voltage = %f. I will now change it to 242\n", vSet); setOutputVoltage(crate1, channel, 242); vSet =getOutputVoltage(crate1, channel); printf("Output Voltage = %f. I will now change it to 123\n", vSet); setOutputVoltage(crate1, channel, 123); vSet =getOutputVoltage(crate1, channel); printf("Output Voltage = %f.\n\n", vSet); //Test Reading the Sense Measurement ret = getOutputSenseMeasurement(crate1, channel); printf("Sense Voltage = %f\n", ret); Sleep(1000); ret = getOutputSenseMeasurement(crate1, channel); printf("Sense Voltage = %f. It the channel is ramping it should have changed.\n\n", ret); //Test Reading the Current ret = getCurrentMeasurement(crate1, channel); printf("Current Measurement = %f\n\n", ret); //Test the Ramp ret=getOutputRiseRate(crate1, channel); printf("Ramp Rate is %f, Let's make it 46.\n", ret); setOutputRiseRate(crate1, channel, 46); ret=getOutputRiseRate(crate1, channel); printf("Ramp Rate is %f, Let's make it 100.\n", ret); setOutputRiseRate(crate1, channel, 100); ret=getOutputRiseRate(crate1, channel); printf("Ramp Rate is %f.\n\n", ret); //Test Channel Status iret=getChannelSwitch(crate1, channel); printf("Channel Status = %i\n\n", iret); // scan MPOD crate, now 4 loops for MPODmini can be changed to 10 for full size crate for( i = 0; i < 4; i++) { j=i*100; for( int k = 0; k < 8; k++) { channel = j+k; iret=getChannelSwitch(crate1, channel); setOutputVoltage(crate1, channel, j+k); vSet =getOutputVoltage(crate1, channel); printf("%i Channel Status = %i / Output Voltage = %f. \n\n", channel, iret, vSet); } } getMainSwitch(crate1); //setMainSwitch(crate1, 0); Sleep(1000); if (!getMainSwitch(crate1)) { printf("Crate is now Off\n"); } printf("-----------------------------------------------------------------\n"); SnmpClose(crate1); SnmpCleanup(); // finish }