blob: 89832b4303f4890ba75a50d95127036a2b2e1961 [file] [log] [blame]
Philip Howard2215ad32013-03-27 23:04:22 +00001%module wiringpi2
Philip Howard567ee002013-03-27 22:22:00 +00002
3%{
Philip Howard6ae3e5b2013-05-21 22:48:41 +01004#include "WiringPi/wiringPi/wiringPi.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +01005#include "WiringPi/wiringPi/wiringPiI2C.h"
Phil Howard22041762014-07-18 11:48:01 +00006#include "WiringPi/wiringPi/wiringPiSPI.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +01007#include "WiringPi/wiringPi/wiringSerial.h"
8#include "WiringPi/wiringPi/wiringShift.h"
Phil Howard22041762014-07-18 11:48:01 +00009#include "WiringPi/wiringPi/drcSerial.h"
Philip Howardd9fc85a2013-08-13 16:38:26 +010010#include "WiringPi/wiringPi/max31855.h"
11#include "WiringPi/wiringPi/max5322.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010012#include "WiringPi/wiringPi/mcp23008.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010013#include "WiringPi/wiringPi/mcp23016.h"
Phil Howard22041762014-07-18 11:48:01 +000014#include "WiringPi/wiringPi/mcp23016reg.h"
15#include "WiringPi/wiringPi/mcp23017.h"
16#include "WiringPi/wiringPi/mcp23s08.h"
17#include "WiringPi/wiringPi/mcp23s17.h"
18#include "WiringPi/wiringPi/mcp23x0817.h"
19#include "WiringPi/wiringPi/mcp23x08.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010020#include "WiringPi/wiringPi/mcp3002.h"
Philip Howardd9fc85a2013-08-13 16:38:26 +010021#include "WiringPi/wiringPi/mcp3004.h"
Phil Howard22041762014-07-18 11:48:01 +000022#include "WiringPi/wiringPi/mcp3422.h"
23#include "WiringPi/wiringPi/mcp4802.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010024#include "WiringPi/wiringPi/pcf8574.h"
25#include "WiringPi/wiringPi/pcf8591.h"
Phil Howard22041762014-07-18 11:48:01 +000026#include "WiringPi/wiringPi/sn3218.h"
Philip Howard2215ad32013-03-27 23:04:22 +000027#include "WiringPi/wiringPi/softPwm.h"
28#include "WiringPi/wiringPi/softServo.h"
29#include "WiringPi/wiringPi/softTone.h"
30#include "WiringPi/wiringPi/sr595.h"
Phil Howard22041762014-07-18 11:48:01 +000031#include "WiringPi/devLib/ds1302.h"
32#include "WiringPi/devLib/font.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010033#include "WiringPi/devLib/gertboard.h"
34#include "WiringPi/devLib/lcd128x64.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010035#include "WiringPi/devLib/lcd.h"
36#include "WiringPi/devLib/maxdetect.h"
37#include "WiringPi/devLib/piFace.h"
Philip Howardd9fc85a2013-08-13 16:38:26 +010038#include "WiringPi/devLib/piGlow.h"
Phil Howard22041762014-07-18 11:48:01 +000039#include "WiringPi/devLib/piNes.h"
Philip Howard567ee002013-03-27 22:22:00 +000040%}
41
42%apply unsigned char { uint8_t };
Phil Howard22041762014-07-18 11:48:01 +000043%typemap(in) (unsigned char *data, int len) {
44 $1 = (unsigned char *) PyString_AsString($input);
45 $2 = PyString_Size($input);
46};
47
48extern int wiringPiFailure (int fatal, const char *message, ...) ;
49extern struct wiringPiNodeStruct *wiringPiFindNode (int pin) ;
50extern struct wiringPiNodeStruct *wiringPiNewNode (int pinBase, int numPins) ;
Philip Howard567ee002013-03-27 22:22:00 +000051
Philip Howardfa09d182013-04-01 21:11:00 +000052// Core wiringPi functions
Philip Howard567ee002013-03-27 22:22:00 +000053extern int wiringPiSetup (void) ;
54extern int wiringPiSetupSys (void) ;
55extern int wiringPiSetupGpio (void) ;
Philip Howardfa09d182013-04-01 21:11:00 +000056extern int wiringPiSetupPhys (void) ;
Philip Howard567ee002013-03-27 22:22:00 +000057
Phil Howard22041762014-07-18 11:48:01 +000058extern void pinModeAlt (int pin, int mode) ;
Philip Howardfa09d182013-04-01 21:11:00 +000059extern void pinMode (int pin, int mode) ;
60extern void pullUpDnControl (int pin, int pud) ;
61extern int digitalRead (int pin) ;
62extern void digitalWrite (int pin, int value) ;
63extern void pwmWrite (int pin, int value) ;
64extern int analogRead (int pin) ;
65extern void analogWrite (int pin, int value) ;
66
67// On-Board Raspberry Pi hardware specific stuff
Philip Howard567ee002013-03-27 22:22:00 +000068extern int piBoardRev (void) ;
Phil Howard22041762014-07-18 11:48:01 +000069extern void piBoardId (int *model, int *rev, int *mem, int *maker, int *overVolted) ;
Philip Howard567ee002013-03-27 22:22:00 +000070extern int wpiPinToGpio (int wpiPin) ;
Phil Howard22041762014-07-18 11:48:01 +000071extern int physPinToGpio (int physPin) ;
Philip Howardfa09d182013-04-01 21:11:00 +000072extern void setPadDrive (int group, int value) ;
73extern int getAlt (int pin) ;
Phil Howard22041762014-07-18 11:48:01 +000074extern void pwmToneWrite (int pin, int freq) ;
Philip Howardfa09d182013-04-01 21:11:00 +000075extern void digitalWriteByte (int value) ;
76extern void pwmSetMode (int mode) ;
77extern void pwmSetRange (unsigned int range) ;
78extern void pwmSetClock (int divisor) ;
79extern void gpioClockSet (int pin, int freq) ;
Philip Howard567ee002013-03-27 22:22:00 +000080
81// Interrupts
Phil Howard22041762014-07-18 11:48:01 +000082extern int waitForInterrupt (int pin, int mS) ;
Philip Howard567ee002013-03-27 22:22:00 +000083extern int wiringPiISR (int pin, int mode, void (*function)(void)) ;
84
85// Threads
Phil Howard22041762014-07-18 11:48:01 +000086extern int piThreadCreate (void *(*fn)(void *)) ;
87extern void piLock (int key) ;
88extern void piUnlock (int key) ;
Philip Howard567ee002013-03-27 22:22:00 +000089
Philip Howardfa09d182013-04-01 21:11:00 +000090// Schedulling priority
91
Phil Howard22041762014-07-18 11:48:01 +000092extern int piHiPri (const int pri) ;
Philip Howardfa09d182013-04-01 21:11:00 +000093
Phil Howard22041762014-07-18 11:48:01 +000094// Delays and Timing
Philip Howard567ee002013-03-27 22:22:00 +000095extern void delay (unsigned int howLong) ;
96extern void delayMicroseconds (unsigned int howLong) ;
97extern unsigned int millis (void) ;
98extern unsigned int micros (void) ;
99
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100100// ds1302
101extern unsigned int ds1302rtcRead (const int reg) ;
102extern void ds1302rtcWrite (const int reg, const unsigned int data) ;
103extern unsigned int ds1302ramRead (const int addr) ;
104extern void ds1302ramWrite (const int addr, const unsigned int data) ;
105extern void ds1302clockRead (int clockData [8]) ;
106extern void ds1302clockWrite (const int clockData [8]) ;
107extern void ds1302trickleCharge (const int diodes, const int resistors) ;
108extern void ds1302setup (const int clockPin, const int dataPin, const int csPin) ;
109
110// Gertboard
111extern void gertboardAnalogWrite (const int chan, const int value) ;
112extern int gertboardAnalogRead (const int chan) ;
113extern int gertboardSPISetup (void) ;
114extern int gertboardAnalogSetup (const int pinBase) ;
115
Phil Howard22041762014-07-18 11:48:01 +0000116// LCD 128x64
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100117extern void lcd128x64setOrigin (int x, int y) ;
118extern void lcd128x64setOrientation (int orientation) ;
119extern void lcd128x64orientCoordinates (int *x, int *y) ;
120extern void lcd128x64getScreenSize (int *x, int *y) ;
121extern void lcd128x64point (int x, int y, int colour) ;
122extern void lcd128x64line (int x0, int y0, int x1, int y1, int colour) ;
123extern void lcd128x64lineTo (int x, int y, int colour) ;
124extern void lcd128x64rectangle (int x1, int y1, int x2, int y2, int colour, int filled) ;
125extern void lcd128x64circle (int x, int y, int r, int colour, int filled) ;
126extern void lcd128x64ellipse (int cx, int cy, int xRadius, int yRadius, int colour, int filled) ;
127extern void lcd128x64putchar (int x, int y, int c, int bgCol, int fgCol) ;
128extern void lcd128x64puts (int x, int y, const char *str, int bgCol, int fgCol) ;
129extern void lcd128x64update (void) ;
130extern void lcd128x64clear (int colour) ;
131extern int lcd128x64setup (void) ;
132
Phil Howard22041762014-07-18 11:48:01 +0000133// LCD
134extern void lcdHome (const int fd) ;
135extern void lcdClear (const int fd) ;
136extern void lcdDisplay (const int fd, int state) ;
137extern void lcdCursor (const int fd, int state) ;
138extern void lcdCursorBlink (const int fd, int state) ;
139extern void lcdSendCommand (const int fd, unsigned char command) ;
140extern void lcdPosition (const int fd, int x, int y) ;
141extern void lcdCharDef (const int fd, int index, unsigned char data [8]) ;
142extern void lcdPutchar (const int fd, unsigned char data) ;
143extern void lcdPuts (const int fd, const char *string) ;
144extern void lcdPrintf (const int fd, const char *message, ...) ;
145extern int lcdInit (const int rows, const int cols, const int bits,
146 const int rs, const int strb,
147 const int d0, const int d1, const int d2, const int d3, const int d4,
148 const int d5, const int d6, const int d7) ;
149
150// PiFace
151extern int piFaceSetup (const int pinBase) ;
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100152
Philip Howardd9fc85a2013-08-13 16:38:26 +0100153// PiGlow
154extern void piGlow1 (const int leg, const int ring, const int intensity) ;
155extern void piGlowLeg (const int leg, const int intensity) ;
156extern void piGlowRing (const int ring, const int intensity) ;
Philip Howard77a42442013-08-15 22:32:14 +0100157extern void piGlowSetup (int clear) ;
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100158
Phil Howard22041762014-07-18 11:48:01 +0000159// NES
160extern int setupNesJoystick (int dPin, int cPin, int lPin) ;
161extern unsigned int readNesJoystick (int joystick) ;
162
163// Various IC setup functions
164extern int sr595Setup (const int pinBase, const int numPins, const int dataPin, const int clockPin, const int latchPin) ;
165extern int drcSetupSerial (const int pinBase, const int numPins, const char *device, const int baud) ;
166extern int max31855Setup (int pinBase, int spiChannel) ;
167extern int max5322Setup (int pinBase, int spiChannel) ;
168extern int mcp23008Setup (const int pinBase, const int i2cAddress) ;
169extern int mcp23016Setup (const int pinBase, const int i2cAddress) ;
170extern int mcp23017Setup (const int pinBase, const int i2cAddress) ;
171extern int mcp23s08Setup (const int pinBase, const int spiPort, const int devId) ;
172extern int mcp23s17Setup (int pinBase, int spiPort, int devId) ;
173extern int mcp3002Setup (int pinBase, int spiChannel) ;
174extern int mcp3004Setup (int pinBase, int spiChannel) ;
175extern int mcp3422Setup (int pinBase, int i2cAddress, int sampleRate, int gain) ;
176extern int mcp4802Setup (int pinBase, int spiChannel) ;
177extern int pcf8574Setup (const int pinBase, const int i2cAddress) ;
178extern int pcf8591Setup (const int pinBase, const int i2cAddress) ;
179extern int sn3218Setup (int pinBase) ;
180
181// Soft PWM
182extern int softPwmCreate (int pin, int value, int range) ;
183extern void softPwmWrite (int pin, int value) ;
184extern void softPwmStop (int pin) ;
185
186// Soft Servo
187extern void softServoWrite (int pin, int value) ;
188extern int softServoSetup (int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7) ;
189
190// Soft Tone
191extern int softToneCreate (int pin) ;
192extern void softToneStop (int pin) ;
193extern void softToneWrite (int pin, int freq) ;
194
195// SPI
196int wiringPiSPIGetFd (int channel) ;
197int wiringPiSPIDataRW (int channel, unsigned char *data, int len) ;
198int wiringPiSPISetup (int channel, int speed) ;
199
200// I2C
201extern int wiringPiI2CRead (int fd) ;
202extern int wiringPiI2CReadReg8 (int fd, int reg) ;
203extern int wiringPiI2CReadReg16 (int fd, int reg) ;
204extern int wiringPiI2CWrite (int fd, int data) ;
205extern int wiringPiI2CWriteReg8 (int fd, int reg, int data) ;
206extern int wiringPiI2CWriteReg16 (int fd, int reg, int data) ;
207extern int wiringPiI2CSetupInterface (const char *device, int devId) ;
208extern int wiringPiI2CSetup (const int devId) ;
209
210// WiringSerial
211extern int serialOpen (const char *device, const int baud) ;
212extern void serialClose (const int fd) ;
213extern void serialFlush (const int fd) ;
214extern void serialPutchar (const int fd, const unsigned char c) ;
215extern void serialPuts (const int fd, const char *s) ;
216extern void serialPrintf (const int fd, const char *message, ...) ;
217extern int serialDataAvail (const int fd) ;
218extern int serialGetchar (const int fd) ;
219
220// Shift Register
221extern uint8_t shiftIn (uint8_t dPin, uint8_t cPin, uint8_t order) ;
222extern void shiftOut (uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val) ;
223
Philip Howardfa09d182013-04-01 21:11:00 +0000224%include "wiringpi2-class.py"