Visual-C++ QLIB ( QUANCOM Driver Library Sample )
| |
#include <windows.h> #include <stdio.h> #include <conio.h>
#include "qlib.h"
void main() {
ULONG handle; ULONG nResult = TRUE; ULONG nResult1, nResult2, nResult3, nResult4, nResult5, nResult6; ULONG j,i; UMONG module;
/* --------------------------------------------- */ /* this part opens and initializes the */ /* PAR48IO Module */ /* --------------------------------------------- */
/* open module 0 ( up to 7 modules supported ) */
module = 0;
if ((handle = QAPIExtOpenCard(PAR48IO, module)) == 0L) {
/* did you configure the board with QLIBCNFG.EXE ? */
MessageBox(NULL,"PAR48IO: Unable to open module.\n","Error", MB_OK); return; }
/* clear internal buffers */
nResult = QAPIExtSpecial(handle, JOB_PAR48IO_RESET_TO_1, 0L , NULL);
/* --------------------------------------------- */ /* this part of the sample demonstrates the */ /* programming in input mode */ /* --------------------------------------------- */
/* set all lines ( lines 0 to 47 ) to input mode */
nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE0_7, JOB_PAR48IO_INPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE8_15, JOB_PAR48IO_INPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE16_23,JOB_PAR48IO_INPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE24_31,JOB_PAR48IO_INPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE32_39,JOB_PAR48IO_INPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE40_47,JOB_PAR48IO_INPUT, NULL);
/* read all inputs ( first latch all inputs ) */
nResult = QAPIExtSpecial(handle, JOB_PAR48IO_LATCH, 0L , NULL);
/* now subsequent calls will result in same input values */
/* input 8 bit wise */
nResult1 = QAPIExtReadDI8(handle, 5, NULL); nResult2 = QAPIExtReadDI8(handle, 4, NULL); nResult3 = QAPIExtReadDI8(handle, 3, NULL); nResult4 = QAPIExtReadDI8(handle, 2, NULL); nResult5 = QAPIExtReadDI8(handle, 1, NULL); nResult6 = QAPIExtReadDI8(handle, 0, NULL);
printf("INPUT 0- 7:%2.2x\n" "INPUT 8-15:%2.2x\n" "INPUT 16-23:%2.2x\n" "INPUT 24-31:%2.2x\n" "INPUT 32-39:%2.2x\n" "INPUT 40-47:%2.2x\n", nResult1, nResult2, nResult3, nResult4, nResult5, nResult6);
/* input 16 bit wise */
nResult1 = QAPIExtReadDI16(handle, 0, NULL); nResult2 = QAPIExtReadDI16(handle, 1, NULL); nResult3 = QAPIExtReadDI16(handle, 2, NULL);
printf("INPUT 0 -15:%2.2x\n" "INPUT 16-31:%2.2x\n" "INPUT 32-47:%2.2x\n", nResult1, nResult2, nResult3);
/* input 32 bit wise */
nResult1 = QAPIExtReadDI32(handle, 0, NULL); nResult2 = QAPIExtReadDI32(handle, 1, NULL);
printf("INPUT 0 -31:%2.2x\n" "INPUT 32-47:%2.2x\n", nResult1, nResult2);
/* read internal timer */
nResult = QAPIExtSpecial(handle, JOB_PAR48IO_READCNT, 0L , NULL); printf("PAR48IO: Counter read = %i\n",nResult);
/* ---------------------------------------------- */ /* this part of the sample demonstrates the */ /* programming in output mode */ /* ---------------------------------------------- */
/* set all lines ( lines 0 to 47 ) to output mode */
/* all lines to 0 = "low" */
nResult = QAPIExtSpecial(handle, JOB_PAR48IO_RESET_TO_0, 0L , NULL);
/* program direction of lines */
nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE0_7, JOB_PAR48IO_OUTPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE8_15, JOB_PAR48IO_OUTPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE16_23,JOB_PAR48IO_OUTPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE24_31,JOB_PAR48IO_OUTPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE32_39,JOB_PAR48IO_OUTPUT, NULL); nResult = QAPIExtSpecial(handle, JOB_PAR48IO_IOMODE40_47,JOB_PAR48IO_OUTPUT, NULL);
/* write pattern to output in 1 bit mode*/ QAPIExtWriteDO1(handle, 0L , 1 , NULL); /* set line 0 to "high" */ QAPIExtWriteDO1(handle, 1L , 1 , NULL); /* set line 1 to "high" */ QAPIExtWriteDO1(handle, 2L , 1 , NULL); /* set line 2 to "high" */ QAPIExtWriteDO1(handle, 3L , 0 , NULL); /* set line 3 to "low" */ QAPIExtWriteDO1(handle, 4L , 0 , NULL); /* set line 4 to "high" */
/* send this pattern to the output now */
nResult = QAPIExtSpecial(handle, JOB_PAR48IO_LATCH, 0L , NULL);
/* write pattern to output in 32 bit mode ( 32 bit mode is the fastest mode ) */
QAPIExtWriteDO32(handle, 0L ,0x00FF00FFL, NULL); /* set outputs 0-7 and 16-23 to "high" */ QAPIExtWriteDO32(handle, 1L ,0x000000FFL, NULL); /* set outputs 32-39 to "high" */
/* send this pattern to the output now */
nResult = QAPIExtSpecial(handle, JOB_PAR48IO_LATCH, 0L , NULL);
}
|
|
|