File: IOPORTSetPort.c

package info (click to toggle)
psychtoolbox-3 3.0.9%2Bsvn2579.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 63,408 kB
  • sloc: ansic: 73,310; cpp: 11,139; objc: 3,129; sh: 1,669; python: 382; php: 272; makefile: 172; java: 113
file content (69 lines) | stat: -rwxr-xr-x 1,390 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
	IOPORTSetPort.c		
  
	PROJECTS: 
	
		IOPort only.
  
	AUTHORS:
	
		Allen.Ingling@nyu.edu				awi
		mario.kleiner at tuebingen.mpg.de	mk
  
	PLATFORMS:	
	
		All.
    
	HISTORY:

		12/20/2004	awi		Wrote it.
		04/10/2008	mk		Started to extend/rewrite it to become a full-fledged generic I/O driver (serial port, parallel port, etc...).
 
	DESCRIPTION:
	
		Originally controlled the Code Mercenaries IO Warrior 40 device.
	
		It will hopefully become a generic I/O driver...

*/


#include "IOPort.h"
#if PSYCH_SYSTEM == PSYCH_OSX

#include <CoreFoundation/CoreFoundation.h>
//#include "IOWarriorLib.h"

//IOPort('SetPort', logicalBits);
//                  1

PsychError IOPORTSetPort(void)
{

    //check to see if the user supplied superfluous arguments
    PsychErrorExit(PsychCapNumOutputArgs(0));
    PsychErrorExit(PsychCapNumInputArgs(1));
    
    int			i,result, m, n, p;
    UInt32		bitValue, buffer;
	double		*inputArray;
	
	
	//get the input matrix and load bits it into the UInt32
	PsychAllocInDoubleMatArg(1, kPsychArgRequired, &m, &n, &p, &inputArray);
	buffer=0;
	bitValue=1;
	for(i=0;i<32;i++){
		if(inputArray[i]!=0)
			buffer=buffer | bitValue;
		bitValue=bitValue<<1;
	}

    // writing 32 bits
//    result = IOWarriorWriteInterface0 (&buffer);
    if (result)
        printf ("IOWarriorWriteInterface0 returned %d\n", result);
	
    return(PsychError_none);	
}
#endif