blob: 178095519acd2b774ffd069e7237dcfcda10c5f0 [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"
5#include "WiringPi/wiringPi/wiringPiSPI.h"
6#include "WiringPi/wiringPi/wiringPiI2C.h"
7#include "WiringPi/wiringPi/wiringSerial.h"
8#include "WiringPi/wiringPi/wiringShift.h"
Philip Howardd9fc85a2013-08-13 16:38:26 +01009#include "WiringPi/wiringPi/max31855.h"
10#include "WiringPi/wiringPi/max5322.h"
Philip Howard2215ad32013-03-27 23:04:22 +000011#include "WiringPi/wiringPi/mcp23017.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010012#include "WiringPi/wiringPi/mcp4802.h"
13#include "WiringPi/wiringPi/mcp3422.h"
Philip Howard2215ad32013-03-27 23:04:22 +000014#include "WiringPi/wiringPi/mcp23s08.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010015#include "WiringPi/wiringPi/mcp23008.h"
Philip Howard2215ad32013-03-27 23:04:22 +000016#include "WiringPi/wiringPi/mcp23x08.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010017#include "WiringPi/wiringPi/mcp23016.h"
18#include "WiringPi/wiringPi/mcp3002.h"
Philip Howardd9fc85a2013-08-13 16:38:26 +010019#include "WiringPi/wiringPi/mcp3004.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010020#include "WiringPi/wiringPi/mcp23016reg.h"
Philip Howardd9fc85a2013-08-13 16:38:26 +010021#include "WiringPi/wiringPi/sn3218.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010022#include "WiringPi/wiringPi/mcp23x0817.h"
23#include "WiringPi/wiringPi/mcp23s17.h"
24#include "WiringPi/wiringPi/pcf8574.h"
25#include "WiringPi/wiringPi/pcf8591.h"
26#include "WiringPi/wiringPi/drc.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"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010031#include "WiringPi/devLib/gertboard.h"
32#include "WiringPi/devLib/lcd128x64.h"
33#include "WiringPi/devLib/font.h"
34#include "WiringPi/devLib/lcd.h"
35#include "WiringPi/devLib/maxdetect.h"
36#include "WiringPi/devLib/piFace.h"
37#include "WiringPi/devLib/ds1302.h"
38#include "WiringPi/devLib/piNes.h"
Philip Howardd9fc85a2013-08-13 16:38:26 +010039#include "WiringPi/devLib/piGlow.h"
Philip Howard567ee002013-03-27 22:22:00 +000040%}
41
42%apply unsigned char { uint8_t };
43
Philip Howardfa09d182013-04-01 21:11:00 +000044// Core wiringPi functions
45
Philip Howard567ee002013-03-27 22:22:00 +000046extern int wiringPiSetup (void) ;
47extern int wiringPiSetupSys (void) ;
48extern int wiringPiSetupGpio (void) ;
Philip Howardfa09d182013-04-01 21:11:00 +000049extern int wiringPiSetupPhys (void) ;
Philip Howard567ee002013-03-27 22:22:00 +000050
Philip Howard6ae3e5b2013-05-21 22:48:41 +010051extern int piFaceSetup (const int pinBase) ;
Philip Howard567ee002013-03-27 22:22:00 +000052
Philip Howardfa09d182013-04-01 21:11:00 +000053extern void pinMode (int pin, int mode) ;
54extern void pullUpDnControl (int pin, int pud) ;
55extern int digitalRead (int pin) ;
56extern void digitalWrite (int pin, int value) ;
57extern void pwmWrite (int pin, int value) ;
58extern int analogRead (int pin) ;
59extern void analogWrite (int pin, int value) ;
60
61// On-Board Raspberry Pi hardware specific stuff
62
Philip Howard567ee002013-03-27 22:22:00 +000063extern int piBoardRev (void) ;
64extern int wpiPinToGpio (int wpiPin) ;
Philip Howardfa09d182013-04-01 21:11:00 +000065extern void setPadDrive (int group, int value) ;
66extern int getAlt (int pin) ;
67extern void digitalWriteByte (int value) ;
68extern void pwmSetMode (int mode) ;
69extern void pwmSetRange (unsigned int range) ;
70extern void pwmSetClock (int divisor) ;
71extern void gpioClockSet (int pin, int freq) ;
Philip Howard567ee002013-03-27 22:22:00 +000072
73// Interrupts
74
75extern int (*waitForInterrupt) (int pin, int mS) ;
76extern int wiringPiISR (int pin, int mode, void (*function)(void)) ;
77
78// Threads
79
80extern int piThreadCreate (void *(*fn)(void *)) ;
81extern void piLock (int key) ;
82extern void piUnlock (int key) ;
83
Philip Howardfa09d182013-04-01 21:11:00 +000084// Schedulling priority
85
86extern int piHiPri (int pri) ;
87
Philip Howard567ee002013-03-27 22:22:00 +000088// Extras from arduino land
89
90extern void delay (unsigned int howLong) ;
91extern void delayMicroseconds (unsigned int howLong) ;
92extern unsigned int millis (void) ;
93extern unsigned int micros (void) ;
94
95// WiringSerial
96
Philip Howard6ae3e5b2013-05-21 22:48:41 +010097extern int serialOpen (const char *device, const int baud) ;
98extern void serialClose (const int fd) ;
99extern void serialFlush (const int fd) ;
100extern void serialPutchar (const int fd, const unsigned char c) ;
101extern void serialPuts (const int fd, const char *s) ;
102extern void serialPrintf (const int fd, const char *message, ...) ;
103extern int serialDataAvail (const int fd) ;
104extern int serialGetchar (const int fd) ;
Philip Howard567ee002013-03-27 22:22:00 +0000105
106// Shifting
107
108extern void shiftOut (uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val);
109extern uint8_t shiftIn (uint8_t dPin, uint8_t cPin, uint8_t order);
110
111// Spi
112
113%typemap(in) (unsigned char *data, int len) {
114 $1 = (unsigned char *) PyString_AsString($input);
115 $2 = PyString_Size($input);
116};
117
118int wiringPiSPIGetFd (int channel) ;
119int wiringPiSPIDataRW (int channel, unsigned char *data, int len) ;
120int wiringPiSPISetup (int channel, int speed) ;
121
122// i2c
123
Philip Howard97a4f512013-04-07 11:06:20 +0000124extern int wiringPiI2CSetupInterface (char *device, int devId) ;
125extern int wiringPiI2CSetup (int devId) ;
126
Philip Howard567ee002013-03-27 22:22:00 +0000127extern int wiringPiI2CRead (int fd) ;
128extern int wiringPiI2CReadReg8 (int fd, int reg) ;
129extern int wiringPiI2CReadReg16 (int fd, int reg) ;
130
131extern int wiringPiI2CWrite (int fd, int data) ;
132extern int wiringPiI2CWriteReg8 (int fd, int reg, int data) ;
133extern int wiringPiI2CWriteReg16 (int fd, int reg, int data) ;
134
135// Soft Tone
136
137extern int softToneCreate (int pin) ;
138extern void softToneWrite (int pin, int frewq) ;
139
140// Soft Servo
141
142extern void softServoWrite (int pin, int value) ;
143extern int softServoSetup (int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7) ;
144
145// Soft PWM
146
147extern int softPwmCreate (int pin, int value, int range) ;
148extern void softPwmWrite (int pin, int value) ;
149
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100150// MCP and stuff
Philip Howard567ee002013-03-27 22:22:00 +0000151
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100152extern int mcp23008Setup (const int pinBase, const int i2cAddress) ;
153extern int mcp23016Setup (const int pinBase, const int i2cAddress) ;
154extern int mcp23017Setup (const int pinBase, const int i2cAddress) ;
155extern int mcp23s08Setup (const int pinBase, const int spiPort, const int devId) ;
Philip Howard567ee002013-03-27 22:22:00 +0000156extern int mcp23s17Setup (int pinBase, int spiPort, int devId) ;
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100157extern int mcp3002Setup (int pinBase, int spiChannel) ;
158extern int mcp3422Setup (int pinBase, int i2cAddress, int channels, int sampleRate, int gain) ;
159extern int mcp4802Setup (int pinBase, int spiChannel) ;
160extern int pcf8574Setup (const int pinBase, const int i2cAddress) ;
161extern int pcf8591Setup (const int pinBase, const int i2cAddress) ;
Philip Howard567ee002013-03-27 22:22:00 +0000162
163extern int sr595Setup (int pinBase, int numPins, int dataPin, int clockPin, int latchPin) ;
Philip Howardfa09d182013-04-01 21:11:00 +0000164
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100165// LCD
166extern void lcdHome (const int fd) ;
167extern void lcdClear (const int fd) ;
168extern void lcdDisplay (const int fd, int state) ;
169extern void lcdCursor (const int fd, int state) ;
170extern void lcdCursorBlink (const int fd, int state) ;
171extern void lcdSendCommand (const int fd, unsigned char command) ;
172extern void lcdPosition (const int fd, int x, int y) ;
173extern void lcdCharDef (const int fd, int index, unsigned char data [8]) ;
174extern void lcdPutchar (const int fd, unsigned char data) ;
175extern void lcdPuts (const int fd, const char *string) ;
176extern void lcdPrintf (const int fd, const char *message, ...) ;
177extern int lcdInit (int rows, int cols, int bits, int rs, int strb,
Philip Howardfa09d182013-04-01 21:11:00 +0000178 int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ;
179
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100180// ds1302
181extern unsigned int ds1302rtcRead (const int reg) ;
182extern void ds1302rtcWrite (const int reg, const unsigned int data) ;
183extern unsigned int ds1302ramRead (const int addr) ;
184extern void ds1302ramWrite (const int addr, const unsigned int data) ;
185extern void ds1302clockRead (int clockData [8]) ;
186extern void ds1302clockWrite (const int clockData [8]) ;
187extern void ds1302trickleCharge (const int diodes, const int resistors) ;
188extern void ds1302setup (const int clockPin, const int dataPin, const int csPin) ;
189
190// Gertboard
191extern void gertboardAnalogWrite (const int chan, const int value) ;
192extern int gertboardAnalogRead (const int chan) ;
193extern int gertboardSPISetup (void) ;
194extern int gertboardAnalogSetup (const int pinBase) ;
195
196// LCD128x64
197extern void lcd128x64setOrigin (int x, int y) ;
198extern void lcd128x64setOrientation (int orientation) ;
199extern void lcd128x64orientCoordinates (int *x, int *y) ;
200extern void lcd128x64getScreenSize (int *x, int *y) ;
201extern void lcd128x64point (int x, int y, int colour) ;
202extern void lcd128x64line (int x0, int y0, int x1, int y1, int colour) ;
203extern void lcd128x64lineTo (int x, int y, int colour) ;
204extern void lcd128x64rectangle (int x1, int y1, int x2, int y2, int colour, int filled) ;
205extern void lcd128x64circle (int x, int y, int r, int colour, int filled) ;
206extern void lcd128x64ellipse (int cx, int cy, int xRadius, int yRadius, int colour, int filled) ;
207extern void lcd128x64putchar (int x, int y, int c, int bgCol, int fgCol) ;
208extern void lcd128x64puts (int x, int y, const char *str, int bgCol, int fgCol) ;
209extern void lcd128x64update (void) ;
210extern void lcd128x64clear (int colour) ;
211extern int lcd128x64setup (void) ;
212
213// NES Joystick
214extern int setupNesJoystick (int dPin, int cPin, int lPin) ;
215extern unsigned int readNesJoystick (int joystick) ;
216
Philip Howardd9fc85a2013-08-13 16:38:26 +0100217// PiGlow
218extern void piGlow1 (const int leg, const int ring, const int intensity) ;
219extern void piGlowLeg (const int leg, const int intensity) ;
220extern void piGlowRing (const int ring, const int intensity) ;
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100221
Philip Howardfa09d182013-04-01 21:11:00 +0000222%include "wiringpi2-class.py"