blob: 1538c382f3337ae270cb69760e1734b83c30a69b [file] [log] [blame]
Philip Howard2215ad32013-03-27 23:04:22 +00001%module wiringpi2
Philip Howard567ee002013-03-27 22:22:00 +00002
3%{
Philip Howard2215ad32013-03-27 23:04:22 +00004#include "WiringPi/wiringPi/ds1302.h"
5#include "WiringPi/wiringPi/gertboard.h"
6#include "WiringPi/wiringPi/lcd.h"
7#include "WiringPi/wiringPi/mcp23008.h"
8#include "WiringPi/wiringPi/mcp23017.h"
9#include "WiringPi/wiringPi/mcp23s08.h"
10#include "WiringPi/wiringPi/mcp23s17.h"
11#include "WiringPi/wiringPi/mcp23x0817.h"
12#include "WiringPi/wiringPi/mcp23x08.h"
13#include "WiringPi/wiringPi/piFace.h"
14#include "WiringPi/wiringPi/piNes.h"
15#include "WiringPi/wiringPi/softPwm.h"
16#include "WiringPi/wiringPi/softServo.h"
17#include "WiringPi/wiringPi/softTone.h"
18#include "WiringPi/wiringPi/sr595.h"
19#include "WiringPi/wiringPi/wiringPi.h"
20#include "WiringPi/wiringPi/wiringPiI2C.h"
21#include "WiringPi/wiringPi/wiringPiSPI.h"
22#include "WiringPi/wiringPi/wiringSerial.h"
Philip Howard567ee002013-03-27 22:22:00 +000023#include "WiringPi/wiringPi/wiringShift.h"
24%}
25
26%apply unsigned char { uint8_t };
27
Philip Howardfa09d182013-04-01 21:11:00 +000028// Core wiringPi functions
29
Philip Howard567ee002013-03-27 22:22:00 +000030extern int wiringPiSetup (void) ;
31extern int wiringPiSetupSys (void) ;
32extern int wiringPiSetupGpio (void) ;
Philip Howardfa09d182013-04-01 21:11:00 +000033extern int wiringPiSetupPhys (void) ;
Philip Howard567ee002013-03-27 22:22:00 +000034
35extern int piFaceSetup (int pinbase) ;
36
Philip Howardfa09d182013-04-01 21:11:00 +000037extern void pinMode (int pin, int mode) ;
38extern void pullUpDnControl (int pin, int pud) ;
39extern int digitalRead (int pin) ;
40extern void digitalWrite (int pin, int value) ;
41extern void pwmWrite (int pin, int value) ;
42extern int analogRead (int pin) ;
43extern void analogWrite (int pin, int value) ;
44
45// On-Board Raspberry Pi hardware specific stuff
46
Philip Howard567ee002013-03-27 22:22:00 +000047extern int piBoardRev (void) ;
48extern int wpiPinToGpio (int wpiPin) ;
Philip Howardfa09d182013-04-01 21:11:00 +000049extern void setPadDrive (int group, int value) ;
50extern int getAlt (int pin) ;
51extern void digitalWriteByte (int value) ;
52extern void pwmSetMode (int mode) ;
53extern void pwmSetRange (unsigned int range) ;
54extern void pwmSetClock (int divisor) ;
55extern void gpioClockSet (int pin, int freq) ;
Philip Howard567ee002013-03-27 22:22:00 +000056
57// Interrupts
58
59extern int (*waitForInterrupt) (int pin, int mS) ;
60extern int wiringPiISR (int pin, int mode, void (*function)(void)) ;
61
62// Threads
63
64extern int piThreadCreate (void *(*fn)(void *)) ;
65extern void piLock (int key) ;
66extern void piUnlock (int key) ;
67
Philip Howardfa09d182013-04-01 21:11:00 +000068// Schedulling priority
69
70extern int piHiPri (int pri) ;
71
Philip Howard567ee002013-03-27 22:22:00 +000072// Extras from arduino land
73
74extern void delay (unsigned int howLong) ;
75extern void delayMicroseconds (unsigned int howLong) ;
76extern unsigned int millis (void) ;
77extern unsigned int micros (void) ;
78
79// WiringSerial
80
81extern int serialOpen (char *device, int baud) ;
82extern void serialClose (int fd) ;
83extern void serialFlush (int fd) ;
84extern void serialPutchar (int fd, unsigned char c) ;
85extern void serialPuts (int fd, char *s) ;
86extern void serialPrintf (int fd, char *message, ...) ;
87extern int serialDataAvail (int fd) ;
88extern int serialGetchar (int fd) ;
89
90// Shifting
91
92extern void shiftOut (uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val);
93extern uint8_t shiftIn (uint8_t dPin, uint8_t cPin, uint8_t order);
94
95// Spi
96
97%typemap(in) (unsigned char *data, int len) {
98 $1 = (unsigned char *) PyString_AsString($input);
99 $2 = PyString_Size($input);
100};
101
102int wiringPiSPIGetFd (int channel) ;
103int wiringPiSPIDataRW (int channel, unsigned char *data, int len) ;
104int wiringPiSPISetup (int channel, int speed) ;
105
106// i2c
107
108extern int wiringPiI2CRead (int fd) ;
109extern int wiringPiI2CReadReg8 (int fd, int reg) ;
110extern int wiringPiI2CReadReg16 (int fd, int reg) ;
111
112extern int wiringPiI2CWrite (int fd, int data) ;
113extern int wiringPiI2CWriteReg8 (int fd, int reg, int data) ;
114extern int wiringPiI2CWriteReg16 (int fd, int reg, int data) ;
115
116// Soft Tone
117
118extern int softToneCreate (int pin) ;
119extern void softToneWrite (int pin, int frewq) ;
120
121// Soft Servo
122
123extern void softServoWrite (int pin, int value) ;
124extern int softServoSetup (int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7) ;
125
126// Soft PWM
127
128extern int softPwmCreate (int pin, int value, int range) ;
129extern void softPwmWrite (int pin, int value) ;
130
131
132extern int mcp23s17Setup (int pinBase, int spiPort, int devId) ;
133extern int mcp23017Setup (int pinBase, int i2cAddress) ;
134
135extern int mcp23s08Setup (int pinBase, int spiPort, int devId) ;
136extern int mcp23008Setup (int pinBase, int i2cAddress) ;
137
138extern int sr595Setup (int pinBase, int numPins, int dataPin, int clockPin, int latchPin) ;
Philip Howardfa09d182013-04-01 21:11:00 +0000139
140extern void lcdHome (int fd) ;
141extern void lcdClear (int fd) ;
142extern void lcdSendCommand (int fd, uint8_t command) ;
143extern void lcdPosition (int fd, int x, int y) ;
144extern void lcdPutchar (int fd, uint8_t data) ;
145extern void lcdPuts (int fd, char *string) ;
146extern void lcdPrintf (int fd, char *message, ...) ;
147
148extern int lcdInit (int rows, int cols, int bits, int rs, int strb,
149 int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ;
150
151%include "wiringpi2-class.py"