blob: 1cf28e1fc63bceff141dabbbffb6c0c3d2a3d09b [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 Howard2215ad32013-03-27 23:04:22 +00009#include "WiringPi/wiringPi/mcp23017.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010010#include "WiringPi/wiringPi/mcp4802.h"
11#include "WiringPi/wiringPi/mcp3422.h"
Philip Howard2215ad32013-03-27 23:04:22 +000012#include "WiringPi/wiringPi/mcp23s08.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010013#include "WiringPi/wiringPi/mcp23008.h"
Philip Howard2215ad32013-03-27 23:04:22 +000014#include "WiringPi/wiringPi/mcp23x08.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010015#include "WiringPi/wiringPi/mcp23016.h"
16#include "WiringPi/wiringPi/mcp3002.h"
17#include "WiringPi/wiringPi/mcp23016reg.h"
18#include "WiringPi/wiringPi/mcp23x0817.h"
19#include "WiringPi/wiringPi/mcp23s17.h"
20#include "WiringPi/wiringPi/pcf8574.h"
21#include "WiringPi/wiringPi/pcf8591.h"
22#include "WiringPi/wiringPi/drc.h"
Philip Howard2215ad32013-03-27 23:04:22 +000023#include "WiringPi/wiringPi/softPwm.h"
24#include "WiringPi/wiringPi/softServo.h"
25#include "WiringPi/wiringPi/softTone.h"
26#include "WiringPi/wiringPi/sr595.h"
Philip Howard6ae3e5b2013-05-21 22:48:41 +010027#include "WiringPi/devLib/gertboard.h"
28#include "WiringPi/devLib/lcd128x64.h"
29#include "WiringPi/devLib/font.h"
30#include "WiringPi/devLib/lcd.h"
31#include "WiringPi/devLib/maxdetect.h"
32#include "WiringPi/devLib/piFace.h"
33#include "WiringPi/devLib/ds1302.h"
34#include "WiringPi/devLib/piNes.h"
Philip Howard567ee002013-03-27 22:22:00 +000035%}
36
37%apply unsigned char { uint8_t };
38
Philip Howardfa09d182013-04-01 21:11:00 +000039// Core wiringPi functions
40
Philip Howard567ee002013-03-27 22:22:00 +000041extern int wiringPiSetup (void) ;
42extern int wiringPiSetupSys (void) ;
43extern int wiringPiSetupGpio (void) ;
Philip Howardfa09d182013-04-01 21:11:00 +000044extern int wiringPiSetupPhys (void) ;
Philip Howard567ee002013-03-27 22:22:00 +000045
Philip Howard6ae3e5b2013-05-21 22:48:41 +010046extern int piFaceSetup (const int pinBase) ;
Philip Howard567ee002013-03-27 22:22:00 +000047
Philip Howardfa09d182013-04-01 21:11:00 +000048extern void pinMode (int pin, int mode) ;
49extern void pullUpDnControl (int pin, int pud) ;
50extern int digitalRead (int pin) ;
51extern void digitalWrite (int pin, int value) ;
52extern void pwmWrite (int pin, int value) ;
53extern int analogRead (int pin) ;
54extern void analogWrite (int pin, int value) ;
55
56// On-Board Raspberry Pi hardware specific stuff
57
Philip Howard567ee002013-03-27 22:22:00 +000058extern int piBoardRev (void) ;
59extern int wpiPinToGpio (int wpiPin) ;
Philip Howardfa09d182013-04-01 21:11:00 +000060extern void setPadDrive (int group, int value) ;
61extern int getAlt (int pin) ;
62extern void digitalWriteByte (int value) ;
63extern void pwmSetMode (int mode) ;
64extern void pwmSetRange (unsigned int range) ;
65extern void pwmSetClock (int divisor) ;
66extern void gpioClockSet (int pin, int freq) ;
Philip Howard567ee002013-03-27 22:22:00 +000067
68// Interrupts
69
70extern int (*waitForInterrupt) (int pin, int mS) ;
71extern int wiringPiISR (int pin, int mode, void (*function)(void)) ;
72
73// Threads
74
75extern int piThreadCreate (void *(*fn)(void *)) ;
76extern void piLock (int key) ;
77extern void piUnlock (int key) ;
78
Philip Howardfa09d182013-04-01 21:11:00 +000079// Schedulling priority
80
81extern int piHiPri (int pri) ;
82
Philip Howard567ee002013-03-27 22:22:00 +000083// Extras from arduino land
84
85extern void delay (unsigned int howLong) ;
86extern void delayMicroseconds (unsigned int howLong) ;
87extern unsigned int millis (void) ;
88extern unsigned int micros (void) ;
89
90// WiringSerial
91
Philip Howard6ae3e5b2013-05-21 22:48:41 +010092extern int serialOpen (const char *device, const int baud) ;
93extern void serialClose (const int fd) ;
94extern void serialFlush (const int fd) ;
95extern void serialPutchar (const int fd, const unsigned char c) ;
96extern void serialPuts (const int fd, const char *s) ;
97extern void serialPrintf (const int fd, const char *message, ...) ;
98extern int serialDataAvail (const int fd) ;
99extern int serialGetchar (const int fd) ;
Philip Howard567ee002013-03-27 22:22:00 +0000100
101// Shifting
102
103extern void shiftOut (uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val);
104extern uint8_t shiftIn (uint8_t dPin, uint8_t cPin, uint8_t order);
105
106// Spi
107
108%typemap(in) (unsigned char *data, int len) {
109 $1 = (unsigned char *) PyString_AsString($input);
110 $2 = PyString_Size($input);
111};
112
113int wiringPiSPIGetFd (int channel) ;
114int wiringPiSPIDataRW (int channel, unsigned char *data, int len) ;
115int wiringPiSPISetup (int channel, int speed) ;
116
117// i2c
118
Philip Howard97a4f512013-04-07 11:06:20 +0000119extern int wiringPiI2CSetupInterface (char *device, int devId) ;
120extern int wiringPiI2CSetup (int devId) ;
121
Philip Howard567ee002013-03-27 22:22:00 +0000122extern int wiringPiI2CRead (int fd) ;
123extern int wiringPiI2CReadReg8 (int fd, int reg) ;
124extern int wiringPiI2CReadReg16 (int fd, int reg) ;
125
126extern int wiringPiI2CWrite (int fd, int data) ;
127extern int wiringPiI2CWriteReg8 (int fd, int reg, int data) ;
128extern int wiringPiI2CWriteReg16 (int fd, int reg, int data) ;
129
130// Soft Tone
131
132extern int softToneCreate (int pin) ;
133extern void softToneWrite (int pin, int frewq) ;
134
135// Soft Servo
136
137extern void softServoWrite (int pin, int value) ;
138extern int softServoSetup (int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7) ;
139
140// Soft PWM
141
142extern int softPwmCreate (int pin, int value, int range) ;
143extern void softPwmWrite (int pin, int value) ;
144
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100145// MCP and stuff
Philip Howard567ee002013-03-27 22:22:00 +0000146
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100147extern int mcp23008Setup (const int pinBase, const int i2cAddress) ;
148extern int mcp23016Setup (const int pinBase, const int i2cAddress) ;
149extern int mcp23017Setup (const int pinBase, const int i2cAddress) ;
150extern int mcp23s08Setup (const int pinBase, const int spiPort, const int devId) ;
Philip Howard567ee002013-03-27 22:22:00 +0000151extern int mcp23s17Setup (int pinBase, int spiPort, int devId) ;
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100152extern int mcp3002Setup (int pinBase, int spiChannel) ;
153extern int mcp3422Setup (int pinBase, int i2cAddress, int channels, int sampleRate, int gain) ;
154extern int mcp4802Setup (int pinBase, int spiChannel) ;
155extern int pcf8574Setup (const int pinBase, const int i2cAddress) ;
156extern int pcf8591Setup (const int pinBase, const int i2cAddress) ;
Philip Howard567ee002013-03-27 22:22:00 +0000157
158extern int sr595Setup (int pinBase, int numPins, int dataPin, int clockPin, int latchPin) ;
Philip Howardfa09d182013-04-01 21:11:00 +0000159
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100160// LCD
161extern void lcdHome (const int fd) ;
162extern void lcdClear (const int fd) ;
163extern void lcdDisplay (const int fd, int state) ;
164extern void lcdCursor (const int fd, int state) ;
165extern void lcdCursorBlink (const int fd, int state) ;
166extern void lcdSendCommand (const int fd, unsigned char command) ;
167extern void lcdPosition (const int fd, int x, int y) ;
168extern void lcdCharDef (const int fd, int index, unsigned char data [8]) ;
169extern void lcdPutchar (const int fd, unsigned char data) ;
170extern void lcdPuts (const int fd, const char *string) ;
171extern void lcdPrintf (const int fd, const char *message, ...) ;
172extern int lcdInit (int rows, int cols, int bits, int rs, int strb,
Philip Howardfa09d182013-04-01 21:11:00 +0000173 int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ;
174
Philip Howard6ae3e5b2013-05-21 22:48:41 +0100175// ds1302
176extern unsigned int ds1302rtcRead (const int reg) ;
177extern void ds1302rtcWrite (const int reg, const unsigned int data) ;
178extern unsigned int ds1302ramRead (const int addr) ;
179extern void ds1302ramWrite (const int addr, const unsigned int data) ;
180extern void ds1302clockRead (int clockData [8]) ;
181extern void ds1302clockWrite (const int clockData [8]) ;
182extern void ds1302trickleCharge (const int diodes, const int resistors) ;
183extern void ds1302setup (const int clockPin, const int dataPin, const int csPin) ;
184
185// Gertboard
186extern void gertboardAnalogWrite (const int chan, const int value) ;
187extern int gertboardAnalogRead (const int chan) ;
188extern int gertboardSPISetup (void) ;
189extern int gertboardAnalogSetup (const int pinBase) ;
190
191// LCD128x64
192extern void lcd128x64setOrigin (int x, int y) ;
193extern void lcd128x64setOrientation (int orientation) ;
194extern void lcd128x64orientCoordinates (int *x, int *y) ;
195extern void lcd128x64getScreenSize (int *x, int *y) ;
196extern void lcd128x64point (int x, int y, int colour) ;
197extern void lcd128x64line (int x0, int y0, int x1, int y1, int colour) ;
198extern void lcd128x64lineTo (int x, int y, int colour) ;
199extern void lcd128x64rectangle (int x1, int y1, int x2, int y2, int colour, int filled) ;
200extern void lcd128x64circle (int x, int y, int r, int colour, int filled) ;
201extern void lcd128x64ellipse (int cx, int cy, int xRadius, int yRadius, int colour, int filled) ;
202extern void lcd128x64putchar (int x, int y, int c, int bgCol, int fgCol) ;
203extern void lcd128x64puts (int x, int y, const char *str, int bgCol, int fgCol) ;
204extern void lcd128x64update (void) ;
205extern void lcd128x64clear (int colour) ;
206extern int lcd128x64setup (void) ;
207
208// NES Joystick
209extern int setupNesJoystick (int dPin, int cPin, int lPin) ;
210extern unsigned int readNesJoystick (int joystick) ;
211
212
213
Philip Howardfa09d182013-04-01 21:11:00 +0000214%include "wiringpi2-class.py"