34#define PIGPIO_VERSION 79
412#define PI_INPFIFO "/dev/pigpio"
413#define PI_OUTFIFO "/dev/pigout"
414#define PI_ERRFIFO "/dev/pigerr"
416#define PI_ENVPORT "PIGPIO_PORT"
417#define PI_ENVADDR "PIGPIO_ADDR"
419#define PI_LOCKFILE "/var/run/pigpio.pid"
421#define PI_I2C_COMBINED "/sys/module/i2c_bcm2708/parameters/combined"
461#define WAVE_FLAG_READ 1
462#define WAVE_FLAG_TICK 2
531#define BSC_FIFO_SIZE 512
590#define PI_MAX_GPIO 53
594#define PI_MAX_USER_GPIO 31
630#define PI_DEFAULT_DUTYCYCLE_RANGE 255
634#define PI_MIN_DUTYCYCLE_RANGE 25
635#define PI_MAX_DUTYCYCLE_RANGE 40000
639#define PI_SERVO_OFF 0
640#define PI_MIN_SERVO_PULSEWIDTH 500
641#define PI_MAX_SERVO_PULSEWIDTH 2500
645#define PI_HW_PWM_MIN_FREQ 1
646#define PI_HW_PWM_MAX_FREQ 125000000
647#define PI_HW_PWM_MAX_FREQ_2711 187500000
648#define PI_HW_PWM_RANGE 1000000
652#define PI_HW_CLK_MIN_FREQ 4689
653#define PI_HW_CLK_MIN_FREQ_2711 13184
654#define PI_HW_CLK_MAX_FREQ 250000000
655#define PI_HW_CLK_MAX_FREQ_2711 375000000
657#define PI_NOTIFY_SLOTS 32
659#define PI_NTFY_FLAGS_EVENT (1 <<7)
660#define PI_NTFY_FLAGS_ALIVE (1 <<6)
661#define PI_NTFY_FLAGS_WDOG (1 <<5)
662#define PI_NTFY_FLAGS_BIT(x) (((x)<<0)&31)
664#define PI_WAVE_BLOCKS 4
665#define PI_WAVE_MAX_PULSES (PI_WAVE_BLOCKS * 3000)
666#define PI_WAVE_MAX_CHARS (PI_WAVE_BLOCKS * 300)
668#define PI_BB_I2C_MIN_BAUD 50
669#define PI_BB_I2C_MAX_BAUD 500000
671#define PI_BB_SPI_MIN_BAUD 50
672#define PI_BB_SPI_MAX_BAUD 250000
674#define PI_BB_SER_MIN_BAUD 50
675#define PI_BB_SER_MAX_BAUD 250000
677#define PI_BB_SER_NORMAL 0
678#define PI_BB_SER_INVERT 1
680#define PI_WAVE_MIN_BAUD 50
681#define PI_WAVE_MAX_BAUD 1000000
683#define PI_SPI_MIN_BAUD 32000
684#define PI_SPI_MAX_BAUD 125000000
686#define PI_MIN_WAVE_DATABITS 1
687#define PI_MAX_WAVE_DATABITS 32
689#define PI_MIN_WAVE_HALFSTOPBITS 2
690#define PI_MAX_WAVE_HALFSTOPBITS 8
692#define PI_WAVE_MAX_MICROS (30 * 60 * 1000000)
694#define PI_MAX_WAVES 250
696#define PI_MAX_WAVE_CYCLES 65535
697#define PI_MAX_WAVE_DELAY 65535
699#define PI_WAVE_COUNT_PAGES 10
703#define PI_WAVE_MODE_ONE_SHOT 0
704#define PI_WAVE_MODE_REPEAT 1
705#define PI_WAVE_MODE_ONE_SHOT_SYNC 2
706#define PI_WAVE_MODE_REPEAT_SYNC 3
710#define PI_WAVE_NOT_FOUND 9998
711#define PI_NO_TX_WAVE 9999
715#define PI_FILE_SLOTS 16
716#define PI_I2C_SLOTS 512
717#define PI_SPI_SLOTS 32
718#define PI_SER_SLOTS 16
720#define PI_MAX_I2C_ADDR 0x7F
722#define PI_NUM_AUX_SPI_CHANNEL 3
723#define PI_NUM_STD_SPI_CHANNEL 2
725#define PI_MAX_I2C_DEVICE_COUNT (1<<16)
726#define PI_MAX_SPI_DEVICE_COUNT (1<<16)
730#define PI_I2C_RDRW_IOCTL_MAX_MSGS 42
734#define PI_I2C_M_WR 0x0000
735#define PI_I2C_M_RD 0x0001
736#define PI_I2C_M_TEN 0x0010
737#define PI_I2C_M_RECV_LEN 0x0400
738#define PI_I2C_M_NO_RD_ACK 0x0800
739#define PI_I2C_M_IGNORE_NAK 0x1000
740#define PI_I2C_M_REV_DIR_ADDR 0x2000
741#define PI_I2C_M_NOSTART 0x4000
747#define PI_I2C_START 2
748#define PI_I2C_COMBINED_ON 2
750#define PI_I2C_COMBINED_OFF 3
752#define PI_I2C_FLAGS 5
754#define PI_I2C_WRITE 7
758#define PI_SPI_FLAGS_BITLEN(x) ((x&63)<<16)
759#define PI_SPI_FLAGS_RX_LSB(x) ((x&1)<<15)
760#define PI_SPI_FLAGS_TX_LSB(x) ((x&1)<<14)
761#define PI_SPI_FLAGS_3WREN(x) ((x&15)<<10)
762#define PI_SPI_FLAGS_3WIRE(x) ((x&1)<<9)
763#define PI_SPI_FLAGS_AUX_SPI(x) ((x&1)<<8)
764#define PI_SPI_FLAGS_RESVD(x) ((x&7)<<5)
765#define PI_SPI_FLAGS_CSPOLS(x) ((x&7)<<2)
766#define PI_SPI_FLAGS_MODE(x) ((x&3))
782#define BSC_GPUSTAT 12
784#define BSC_DEBUG_I2C 14
785#define BSC_DEBUG_SPI 15
787#define BSC_CR_TESTFIFO 2048
788#define BSC_CR_RXE 512
789#define BSC_CR_TXE 256
790#define BSC_CR_BRK 128
791#define BSC_CR_CPOL 16
797#define BSC_FR_RXBUSY 32
798#define BSC_FR_TXFE 16
802#define BSC_FR_TXBUSY 1
808#define BSC_SCL_SCLK 19
812#define BSC_SDA_2711 10
813#define BSC_MOSI_2711 9
814#define BSC_SCL_SCLK_2711 11
815#define BSC_MISO_2711 10
816#define BSC_CE_N_2711 8
820#define PI_MAX_BUSY_DELAY 100
824#define PI_MIN_WDOG_TIMEOUT 0
825#define PI_MAX_WDOG_TIMEOUT 60000
829#define PI_MIN_TIMER 0
830#define PI_MAX_TIMER 9
835#define PI_MAX_MS 60000
837#define PI_MAX_SCRIPTS 32
839#define PI_MAX_SCRIPT_TAGS 50
840#define PI_MAX_SCRIPT_VARS 150
841#define PI_MAX_SCRIPT_PARAMS 10
845#define PI_SCRIPT_INITING 0
846#define PI_SCRIPT_HALTED 1
847#define PI_SCRIPT_RUNNING 2
848#define PI_SCRIPT_WAITING 3
849#define PI_SCRIPT_FAILED 4
853#define PI_MIN_SIGNUM 0
854#define PI_MAX_SIGNUM 63
858#define PI_TIME_RELATIVE 0
859#define PI_TIME_ABSOLUTE 1
861#define PI_MAX_MICS_DELAY 1000000
862#define PI_MAX_MILS_DELAY 60000
866#define PI_BUF_MILLIS_MIN 100
867#define PI_BUF_MILLIS_MAX 10000
873#define PI_CLOCK_PWM 0
874#define PI_CLOCK_PCM 1
878#define PI_MIN_DMA_CHANNEL 0
879#define PI_MAX_DMA_CHANNEL 15
883#define PI_MIN_SOCKET_PORT 1024
884#define PI_MAX_SOCKET_PORT 32000
889#define PI_DISABLE_FIFO_IF 1
890#define PI_DISABLE_SOCK_IF 2
891#define PI_LOCALHOST_SOCK_IF 4
892#define PI_DISABLE_ALERT 8
896#define PI_MEM_ALLOC_AUTO 0
897#define PI_MEM_ALLOC_PAGEMAP 1
898#define PI_MEM_ALLOC_MAILBOX 2
902#define PI_MAX_STEADY 300000
903#define PI_MAX_ACTIVE 1000000
907#define PI_CFG_DBG_LEVEL 0
908#define PI_CFG_ALERT_FREQ 4
909#define PI_CFG_RT_PRIORITY (1<<8)
910#define PI_CFG_STATS (1<<9)
911#define PI_CFG_NOSIGHANDLER (1<<10)
913#define PI_CFG_ILLEGAL_VAL (1<<11)
919#define FALLING_EDGE 1
927#define PI_MIN_PAD_STRENGTH 1
928#define PI_MAX_PAD_STRENGTH 16
932#define PI_FILE_NONE 0
934#define PI_FILE_READ 1
935#define PI_FILE_WRITE 2
937#define PI_FILE_APPEND 4
938#define PI_FILE_CREATE 8
939#define PI_FILE_TRUNC 16
940#define PI_FILE_MAX 31
942#define PI_FROM_START 0
943#define PI_FROM_CURRENT 1
948#define MAX_CONNECT_ADDRESSES 256
952#define PI_MAX_EVENT 31
956#define PI_EVENT_BSC 31
1115int gpioPWM(
unsigned user_gpio,
unsigned dutycycle);
1527 unsigned gpio,
unsigned edge,
int timeout,
gpioISRFunc_t f);
1886 (
unsigned user_gpio,
2375int i2cOpen(
unsigned i2cBus,
unsigned i2cAddr,
unsigned i2cFlags);
2601unsigned handle,
unsigned i2cReg,
char *buf,
unsigned count);
2651unsigned handle,
unsigned i2cReg,
char *buf,
unsigned count);
2681unsigned handle,
unsigned i2cReg,
char *buf,
unsigned count);
2705unsigned handle,
unsigned i2cReg,
char *buf,
unsigned count);
3116 unsigned CS,
unsigned MISO,
unsigned MOSI,
unsigned SCLK,
3117 unsigned baud,
unsigned spiFlags);
3270int spiOpen(
unsigned spiChan,
unsigned baud,
unsigned spiFlags);
3375int spiRead(
unsigned handle,
char *buf,
unsigned count);
3392int spiWrite(
unsigned handle,
char *buf,
unsigned count);
3408int spiXfer(
unsigned handle,
char *txBuf,
char *rxBuf,
unsigned count);
3427int serOpen(
char *sertty,
unsigned baud,
unsigned serFlags);
3491int serWrite(
unsigned handle,
char *buf,
unsigned count);
3508int serRead(
unsigned handle,
char *buf,
unsigned count);
3542int gpioTrigger(
unsigned user_gpio,
unsigned pulseLen,
unsigned level);
4165int gpioTime(
unsigned timetype,
int *seconds,
int *micros);
4453int shell(
char *scriptName,
char *scriptString);
4494#pragma GCC diagnostic push
4496#pragma GCC diagnostic ignored "-Wcomment"
4604#pragma GCC diagnostic pop
4653int fileRead(
unsigned handle,
char *buf,
unsigned count);
4676int fileSeek(
unsigned handle, int32_t seekOffset,
int seekFrom);
4700#pragma GCC diagnostic push
4702#pragma GCC diagnostic ignored "-Wcomment"
4756#pragma GCC diagnostic pop
4796 unsigned cfgMicros,
unsigned cfgPeripheral,
unsigned cfgSource);
5001int gpioCustom1(
unsigned arg1,
unsigned arg2,
char *argx,
unsigned argc);
5020 char *retBuf,
unsigned retMax);
5049 unsigned spiBitFirst,
5050 unsigned spiBitLast,
6179#define PI_CMD_MODES 0
6180#define PI_CMD_MODEG 1
6182#define PI_CMD_READ 3
6183#define PI_CMD_WRITE 4
6187#define PI_CMD_SERVO 8
6188#define PI_CMD_WDOG 9
6189#define PI_CMD_BR1 10
6190#define PI_CMD_BR2 11
6191#define PI_CMD_BC1 12
6192#define PI_CMD_BC2 13
6193#define PI_CMD_BS1 14
6194#define PI_CMD_BS2 15
6195#define PI_CMD_TICK 16
6196#define PI_CMD_HWVER 17
6201#define PI_CMD_PRG 22
6202#define PI_CMD_PFG 23
6203#define PI_CMD_PRRG 24
6204#define PI_CMD_HELP 25
6205#define PI_CMD_PIGPV 26
6206#define PI_CMD_WVCLR 27
6207#define PI_CMD_WVAG 28
6208#define PI_CMD_WVAS 29
6209#define PI_CMD_WVGO 30
6210#define PI_CMD_WVGOR 31
6211#define PI_CMD_WVBSY 32
6212#define PI_CMD_WVHLT 33
6213#define PI_CMD_WVSM 34
6214#define PI_CMD_WVSP 35
6215#define PI_CMD_WVSC 36
6216#define PI_CMD_TRIG 37
6217#define PI_CMD_PROC 38
6218#define PI_CMD_PROCD 39
6219#define PI_CMD_PROCR 40
6220#define PI_CMD_PROCS 41
6221#define PI_CMD_SLRO 42
6222#define PI_CMD_SLR 43
6223#define PI_CMD_SLRC 44
6224#define PI_CMD_PROCP 45
6225#define PI_CMD_MICS 46
6226#define PI_CMD_MILS 47
6227#define PI_CMD_PARSE 48
6228#define PI_CMD_WVCRE 49
6229#define PI_CMD_WVDEL 50
6230#define PI_CMD_WVTX 51
6231#define PI_CMD_WVTXR 52
6232#define PI_CMD_WVNEW 53
6234#define PI_CMD_I2CO 54
6235#define PI_CMD_I2CC 55
6236#define PI_CMD_I2CRD 56
6237#define PI_CMD_I2CWD 57
6238#define PI_CMD_I2CWQ 58
6239#define PI_CMD_I2CRS 59
6240#define PI_CMD_I2CWS 60
6241#define PI_CMD_I2CRB 61
6242#define PI_CMD_I2CWB 62
6243#define PI_CMD_I2CRW 63
6244#define PI_CMD_I2CWW 64
6245#define PI_CMD_I2CRK 65
6246#define PI_CMD_I2CWK 66
6247#define PI_CMD_I2CRI 67
6248#define PI_CMD_I2CWI 68
6249#define PI_CMD_I2CPC 69
6250#define PI_CMD_I2CPK 70
6252#define PI_CMD_SPIO 71
6253#define PI_CMD_SPIC 72
6254#define PI_CMD_SPIR 73
6255#define PI_CMD_SPIW 74
6256#define PI_CMD_SPIX 75
6258#define PI_CMD_SERO 76
6259#define PI_CMD_SERC 77
6260#define PI_CMD_SERRB 78
6261#define PI_CMD_SERWB 79
6262#define PI_CMD_SERR 80
6263#define PI_CMD_SERW 81
6264#define PI_CMD_SERDA 82
6266#define PI_CMD_GDC 83
6267#define PI_CMD_GPW 84
6272#define PI_CMD_CF1 87
6273#define PI_CMD_CF2 88
6275#define PI_CMD_BI2CC 89
6276#define PI_CMD_BI2CO 90
6277#define PI_CMD_BI2CZ 91
6279#define PI_CMD_I2CZ 92
6281#define PI_CMD_WVCHA 93
6283#define PI_CMD_SLRI 94
6285#define PI_CMD_CGI 95
6286#define PI_CMD_CSI 96
6291#define PI_CMD_NOIB 99
6293#define PI_CMD_WVTXM 100
6294#define PI_CMD_WVTAT 101
6296#define PI_CMD_PADS 102
6297#define PI_CMD_PADG 103
6299#define PI_CMD_FO 104
6300#define PI_CMD_FC 105
6301#define PI_CMD_FR 106
6302#define PI_CMD_FW 107
6303#define PI_CMD_FS 108
6304#define PI_CMD_FL 109
6306#define PI_CMD_SHELL 110
6308#define PI_CMD_BSPIC 111
6309#define PI_CMD_BSPIO 112
6310#define PI_CMD_BSPIX 113
6312#define PI_CMD_BSCX 114
6314#define PI_CMD_EVM 115
6315#define PI_CMD_EVT 116
6317#define PI_CMD_PROCU 117
6318#define PI_CMD_WVCAP 118
6334#define PI_CMD_SCRIPT 800
6336#define PI_CMD_ADD 800
6337#define PI_CMD_AND 801
6338#define PI_CMD_CALL 802
6339#define PI_CMD_CMDR 803
6340#define PI_CMD_CMDW 804
6341#define PI_CMD_CMP 805
6342#define PI_CMD_DCR 806
6343#define PI_CMD_DCRA 807
6344#define PI_CMD_DIV 808
6345#define PI_CMD_HALT 809
6346#define PI_CMD_INR 810
6347#define PI_CMD_INRA 811
6348#define PI_CMD_JM 812
6349#define PI_CMD_JMP 813
6350#define PI_CMD_JNZ 814
6351#define PI_CMD_JP 815
6352#define PI_CMD_JZ 816
6353#define PI_CMD_TAG 817
6354#define PI_CMD_LD 818
6355#define PI_CMD_LDA 819
6356#define PI_CMD_LDAB 820
6357#define PI_CMD_MLT 821
6358#define PI_CMD_MOD 822
6359#define PI_CMD_NOP 823
6360#define PI_CMD_OR 824
6361#define PI_CMD_POP 825
6362#define PI_CMD_POPA 826
6363#define PI_CMD_PUSH 827
6364#define PI_CMD_PUSHA 828
6365#define PI_CMD_RET 829
6366#define PI_CMD_RL 830
6367#define PI_CMD_RLA 831
6368#define PI_CMD_RR 832
6369#define PI_CMD_RRA 833
6370#define PI_CMD_STA 834
6371#define PI_CMD_STAB 835
6372#define PI_CMD_SUB 836
6373#define PI_CMD_SYS 837
6374#define PI_CMD_WAIT 838
6376#define PI_CMD_XA 840
6377#define PI_CMD_XOR 841
6378#define PI_CMD_EVTWT 842
6382#define PI_INIT_FAILED -1
6383#define PI_BAD_USER_GPIO -2
6384#define PI_BAD_GPIO -3
6385#define PI_BAD_MODE -4
6386#define PI_BAD_LEVEL -5
6387#define PI_BAD_PUD -6
6388#define PI_BAD_PULSEWIDTH -7
6389#define PI_BAD_DUTYCYCLE -8
6390#define PI_BAD_TIMER -9
6391#define PI_BAD_MS -10
6392#define PI_BAD_TIMETYPE -11
6393#define PI_BAD_SECONDS -12
6394#define PI_BAD_MICROS -13
6395#define PI_TIMER_FAILED -14
6396#define PI_BAD_WDOG_TIMEOUT -15
6397#define PI_NO_ALERT_FUNC -16
6398#define PI_BAD_CLK_PERIPH -17
6399#define PI_BAD_CLK_SOURCE -18
6400#define PI_BAD_CLK_MICROS -19
6401#define PI_BAD_BUF_MILLIS -20
6402#define PI_BAD_DUTYRANGE -21
6403#define PI_BAD_DUTY_RANGE -21
6404#define PI_BAD_SIGNUM -22
6405#define PI_BAD_PATHNAME -23
6406#define PI_NO_HANDLE -24
6407#define PI_BAD_HANDLE -25
6408#define PI_BAD_IF_FLAGS -26
6409#define PI_BAD_CHANNEL -27
6410#define PI_BAD_PRIM_CHANNEL -27
6411#define PI_BAD_SOCKET_PORT -28
6412#define PI_BAD_FIFO_COMMAND -29
6413#define PI_BAD_SECO_CHANNEL -30
6414#define PI_NOT_INITIALISED -31
6415#define PI_INITIALISED -32
6416#define PI_BAD_WAVE_MODE -33
6417#define PI_BAD_CFG_INTERNAL -34
6418#define PI_BAD_WAVE_BAUD -35
6419#define PI_TOO_MANY_PULSES -36
6420#define PI_TOO_MANY_CHARS -37
6421#define PI_NOT_SERIAL_GPIO -38
6422#define PI_BAD_SERIAL_STRUC -39
6423#define PI_BAD_SERIAL_BUF -40
6424#define PI_NOT_PERMITTED -41
6425#define PI_SOME_PERMITTED -42
6426#define PI_BAD_WVSC_COMMND -43
6427#define PI_BAD_WVSM_COMMND -44
6428#define PI_BAD_WVSP_COMMND -45
6429#define PI_BAD_PULSELEN -46
6430#define PI_BAD_SCRIPT -47
6431#define PI_BAD_SCRIPT_ID -48
6432#define PI_BAD_SER_OFFSET -49
6433#define PI_GPIO_IN_USE -50
6434#define PI_BAD_SERIAL_COUNT -51
6435#define PI_BAD_PARAM_NUM -52
6436#define PI_DUP_TAG -53
6437#define PI_TOO_MANY_TAGS -54
6438#define PI_BAD_SCRIPT_CMD -55
6439#define PI_BAD_VAR_NUM -56
6440#define PI_NO_SCRIPT_ROOM -57
6441#define PI_NO_MEMORY -58
6442#define PI_SOCK_READ_FAILED -59
6443#define PI_SOCK_WRIT_FAILED -60
6444#define PI_TOO_MANY_PARAM -61
6445#define PI_NOT_HALTED -62
6446#define PI_SCRIPT_NOT_READY -62
6447#define PI_BAD_TAG -63
6448#define PI_BAD_MICS_DELAY -64
6449#define PI_BAD_MILS_DELAY -65
6450#define PI_BAD_WAVE_ID -66
6451#define PI_TOO_MANY_CBS -67
6452#define PI_TOO_MANY_OOL -68
6453#define PI_EMPTY_WAVEFORM -69
6454#define PI_NO_WAVEFORM_ID -70
6455#define PI_I2C_OPEN_FAILED -71
6456#define PI_SER_OPEN_FAILED -72
6457#define PI_SPI_OPEN_FAILED -73
6458#define PI_BAD_I2C_BUS -74
6459#define PI_BAD_I2C_ADDR -75
6460#define PI_BAD_SPI_CHANNEL -76
6461#define PI_BAD_FLAGS -77
6462#define PI_BAD_SPI_SPEED -78
6463#define PI_BAD_SER_DEVICE -79
6464#define PI_BAD_SER_SPEED -80
6465#define PI_BAD_PARAM -81
6466#define PI_I2C_WRITE_FAILED -82
6467#define PI_I2C_READ_FAILED -83
6468#define PI_BAD_SPI_COUNT -84
6469#define PI_SER_WRITE_FAILED -85
6470#define PI_SER_READ_FAILED -86
6471#define PI_SER_READ_NO_DATA -87
6472#define PI_UNKNOWN_COMMAND -88
6473#define PI_SPI_XFER_FAILED -89
6474#define PI_BAD_POINTER -90
6475#define PI_NO_AUX_SPI -91
6476#define PI_NOT_PWM_GPIO -92
6477#define PI_NOT_SERVO_GPIO -93
6478#define PI_NOT_HCLK_GPIO -94
6479#define PI_NOT_HPWM_GPIO -95
6480#define PI_BAD_HPWM_FREQ -96
6481#define PI_BAD_HPWM_DUTY -97
6482#define PI_BAD_HCLK_FREQ -98
6483#define PI_BAD_HCLK_PASS -99
6484#define PI_HPWM_ILLEGAL -100
6485#define PI_BAD_DATABITS -101
6486#define PI_BAD_STOPBITS -102
6487#define PI_MSG_TOOBIG -103
6488#define PI_BAD_MALLOC_MODE -104
6489#define PI_TOO_MANY_SEGS -105
6490#define PI_BAD_I2C_SEG -106
6491#define PI_BAD_SMBUS_CMD -107
6492#define PI_NOT_I2C_GPIO -108
6493#define PI_BAD_I2C_WLEN -109
6494#define PI_BAD_I2C_RLEN -110
6495#define PI_BAD_I2C_CMD -111
6496#define PI_BAD_I2C_BAUD -112
6497#define PI_CHAIN_LOOP_CNT -113
6498#define PI_BAD_CHAIN_LOOP -114
6499#define PI_CHAIN_COUNTER -115
6500#define PI_BAD_CHAIN_CMD -116
6501#define PI_BAD_CHAIN_DELAY -117
6502#define PI_CHAIN_NESTING -118
6503#define PI_CHAIN_TOO_BIG -119
6504#define PI_DEPRECATED -120
6505#define PI_BAD_SER_INVERT -121
6506#define PI_BAD_EDGE -122
6507#define PI_BAD_ISR_INIT -123
6508#define PI_BAD_FOREVER -124
6509#define PI_BAD_FILTER -125
6510#define PI_BAD_PAD -126
6511#define PI_BAD_STRENGTH -127
6512#define PI_FIL_OPEN_FAILED -128
6513#define PI_BAD_FILE_MODE -129
6514#define PI_BAD_FILE_FLAG -130
6515#define PI_BAD_FILE_READ -131
6516#define PI_BAD_FILE_WRITE -132
6517#define PI_FILE_NOT_ROPEN -133
6518#define PI_FILE_NOT_WOPEN -134
6519#define PI_BAD_FILE_SEEK -135
6520#define PI_NO_FILE_MATCH -136
6521#define PI_NO_FILE_ACCESS -137
6522#define PI_FILE_IS_A_DIR -138
6523#define PI_BAD_SHELL_STATUS -139
6524#define PI_BAD_SCRIPT_NAME -140
6525#define PI_BAD_SPI_BAUD -141
6526#define PI_NOT_SPI_GPIO -142
6527#define PI_BAD_EVENT_ID -143
6528#define PI_CMD_INTERRUPTED -144
6529#define PI_NOT_ON_BCM2711 -145
6530#define PI_ONLY_ON_BCM2711 -146
6532#define PI_PIGIF_ERR_0 -2000
6533#define PI_PIGIF_ERR_99 -2099
6535#define PI_CUSTOM_ERR_0 -3000
6536#define PI_CUSTOM_ERR_999 -3999
6542#define PI_DEFAULT_BUFFER_MILLIS 120
6543#define PI_DEFAULT_CLK_MICROS 5
6544#define PI_DEFAULT_CLK_PERIPHERAL PI_CLOCK_PCM
6545#define PI_DEFAULT_IF_FLAGS 0
6546#define PI_DEFAULT_FOREGROUND 0
6547#define PI_DEFAULT_DMA_CHANNEL 14
6548#define PI_DEFAULT_DMA_PRIMARY_CHANNEL 14
6549#define PI_DEFAULT_DMA_SECONDARY_CHANNEL 6
6550#define PI_DEFAULT_DMA_PRIMARY_CH_2711 7
6551#define PI_DEFAULT_DMA_SECONDARY_CH_2711 6
6552#define PI_DEFAULT_DMA_NOT_SET 15
6553#define PI_DEFAULT_SOCKET_PORT 8888
6554#define PI_DEFAULT_SOCKET_PORT_STR "8888"
6555#define PI_DEFAULT_SOCKET_ADDR_STR "localhost"
6556#define PI_DEFAULT_UPDATE_MASK_UNKNOWN 0x0000000FFFFFFCLL
6557#define PI_DEFAULT_UPDATE_MASK_B1 0x03E7CF93
6558#define PI_DEFAULT_UPDATE_MASK_A_B2 0xFBC7CF9C
6559#define PI_DEFAULT_UPDATE_MASK_APLUS_BPLUS 0x0080480FFFFFFCLL
6560#define PI_DEFAULT_UPDATE_MASK_ZERO 0x0080000FFFFFFCLL
6561#define PI_DEFAULT_UPDATE_MASK_PI2B 0x0080480FFFFFFCLL
6562#define PI_DEFAULT_UPDATE_MASK_PI3B 0x0000000FFFFFFCLL
6563#define PI_DEFAULT_UPDATE_MASK_PI4B 0x0000000FFFFFFCLL
6564#define PI_DEFAULT_UPDATE_MASK_COMPUTE 0x00FFFFFFFFFFFFLL
6565#define PI_DEFAULT_MEM_ALLOC_MODE PI_MEM_ALLOC_AUTO
6567#define PI_DEFAULT_CFG_INTERNALS 0
void * gpioThreadFunc_t(void *)
Definition pigpio.h:584
int gpioSetPWMfrequency(unsigned user_gpio, unsigned frequency)
int gpioSetISRFunc(unsigned gpio, unsigned edge, int timeout, gpioISRFunc_t f)
int gpioSleep(unsigned timetype, int seconds, int micros)
int i2cWriteQuick(unsigned handle, unsigned bit)
int serWrite(unsigned handle, char *buf, unsigned count)
void(* gpioISRFuncEx_t)(int gpio, int level, uint32_t tick, void *userdata)
Definition pigpio.h:563
int i2cSegments(unsigned handle, pi_i2c_msg_t *segs, unsigned numSegs)
int gpioWaveGetMaxCbs(void)
int gpioSetISRFuncEx(unsigned gpio, unsigned edge, int timeout, gpioISRFuncEx_t f, void *userdata)
rawWaveInfo_t rawWaveInfo(int wave_id)
uint32_t rawWaveGetOOL(int pos)
int gpioTrigger(unsigned user_gpio, unsigned pulseLen, unsigned level)
int gpioNotifyBegin(unsigned handle, uint32_t bits)
int gpioGetPWMrealRange(unsigned user_gpio)
int gpioNotifyClose(unsigned handle)
unsigned gpioVersion(void)
int gpioGlitchFilter(unsigned user_gpio, unsigned steady)
int gpioWrite(unsigned gpio, unsigned level)
int gpioCustom2(unsigned arg1, char *argx, unsigned argc, char *retBuf, unsigned retMax)
int i2cWriteBlockData(unsigned handle, unsigned i2cReg, char *buf, unsigned count)
uint32_t rawWaveGetOut(int pos)
void(* gpioAlertFuncEx_t)(int gpio, int level, uint32_t tick, void *userdata)
Definition pigpio.h:547
int gpioSetSignalFuncEx(unsigned signum, gpioSignalFuncEx_t f, void *userdata)
void(* eventFunc_t)(int event, uint32_t tick)
Definition pigpio.h:552
int gpioSerialReadOpen(unsigned user_gpio, unsigned baud, unsigned data_bits)
int gpioCfgDMAchannels(unsigned primaryChannel, unsigned secondaryChannel)
void rawWaveSetIn(int pos, uint32_t lVal)
void time_sleep(double seconds)
int rawWaveAddGeneric(unsigned numPulses, rawWave_t *pulses)
int gpioSetWatchdog(unsigned user_gpio, unsigned timeout)
int gpioNotifyOpenWithSize(int bufSize)
int rawWaveAddSPI(rawSPI_t *spi, unsigned offset, unsigned spiSS, char *buf, unsigned spiTxBits, unsigned spiBitFirst, unsigned spiBitLast, unsigned spiBits)
int i2cWriteByteData(unsigned handle, unsigned i2cReg, unsigned bVal)
uint32_t rawWaveGetIn(int pos)
int gpioRunScript(unsigned script_id, unsigned numPar, uint32_t *param)
void rawWaveSetOut(int pos, uint32_t lVal)
int i2cWriteDevice(unsigned handle, char *buf, unsigned count)
int serRead(unsigned handle, char *buf, unsigned count)
void(* gpioTimerFuncEx_t)(void *userdata)
Definition pigpio.h:570
int gpioSetPad(unsigned pad, unsigned padStrength)
int spiOpen(unsigned spiChan, unsigned baud, unsigned spiFlags)
int gpioWaveGetHighCbs(void)
int serClose(unsigned handle)
int i2cOpen(unsigned i2cBus, unsigned i2cAddr, unsigned i2cFlags)
int gpioWaveGetMaxMicros(void)
int gpioDeleteScript(unsigned script_id)
int gpioCustom1(unsigned arg1, unsigned arg2, char *argx, unsigned argc)
int gpioWaveChain(char *buf, unsigned bufSize)
int serWriteByte(unsigned handle, unsigned bVal)
int gpioWaveDelete(unsigned wave_id)
int bbSPIXfer(unsigned CS, char *inBuf, char *outBuf, unsigned count)
void(* gpioGetSamplesFunc_t)(const gpioSample_t *samples, int numSamples)
Definition pigpio.h:577
uint32_t gpioDelay(uint32_t micros)
void(* eventFuncEx_t)(int event, uint32_t tick, void *userdata)
Definition pigpio.h:555
int gpioCfgClock(unsigned cfgMicros, unsigned cfgPeripheral, unsigned cfgSource)
int gpioSerialReadInvert(unsigned user_gpio, unsigned invert)
int gpioScriptStatus(unsigned script_id, uint32_t *param)
int i2cWriteWordData(unsigned handle, unsigned i2cReg, unsigned wVal)
int gpioCfgSetInternals(uint32_t cfgVal)
int spiRead(unsigned handle, char *buf, unsigned count)
void(* gpioSignalFuncEx_t)(int signum, void *userdata)
Definition pigpio.h:574
void rawWaveSetOOL(int pos, uint32_t lVal)
void gpioStopThread(pthread_t *pth)
int i2cWriteI2CBlockData(unsigned handle, unsigned i2cReg, char *buf, unsigned count)
int i2cReadDevice(unsigned handle, char *buf, unsigned count)
int i2cReadBlockData(unsigned handle, unsigned i2cReg, char *buf)
int gpioCfgNetAddr(int numSockAddr, uint32_t *sockAddr)
void(* gpioSignalFunc_t)(int signum)
Definition pigpio.h:572
int fileList(char *fpat, char *buf, unsigned count)
int gpioSetTimerFuncEx(unsigned timer, unsigned millis, gpioTimerFuncEx_t f, void *userdata)
int gpioRead(unsigned gpio)
int gpioGetPad(unsigned pad)
int gpioWaveGetHighMicros(void)
void(* gpioTimerFunc_t)(void)
Definition pigpio.h:568
int gpioNoiseFilter(unsigned user_gpio, unsigned steady, unsigned active)
int bbSPIClose(unsigned CS)
int i2cReadI2CBlockData(unsigned handle, unsigned i2cReg, char *buf, unsigned count)
void rawDumpScript(unsigned script_id)
int i2cReadByteData(unsigned handle, unsigned i2cReg)
int gpioTime(unsigned timetype, int *seconds, int *micros)
int gpioGetPWMfrequency(unsigned user_gpio)
int i2cBlockProcessCall(unsigned handle, unsigned i2cReg, char *buf, unsigned count)
uint32_t gpioRead_Bits_32_53(void)
rawCbs_t * rawWaveCBAdr(int cbNum)
int gpioWrite_Bits_32_53_Set(uint32_t bits)
int gpioSetPullUpDown(unsigned gpio, unsigned pud)
int getBitInBytes(int bitPos, char *buf, int numBits)
int spiXfer(unsigned handle, char *txBuf, char *rxBuf, unsigned count)
int gpioWaveGetMicros(void)
int gpioSetGetSamplesFuncEx(gpioGetSamplesFuncEx_t f, uint32_t bits, void *userdata)
int gpioUpdateScript(unsigned script_id, unsigned numPar, uint32_t *param)
int gpioCfgInterfaces(unsigned ifFlags)
int i2cReadByte(unsigned handle)
void(* gpioISRFunc_t)(int gpio, int level, uint32_t tick)
Definition pigpio.h:559
int fileRead(unsigned handle, char *buf, unsigned count)
int gpioSetTimerFunc(unsigned timer, unsigned millis, gpioTimerFunc_t f)
int serReadByte(unsigned handle)
int spiClose(unsigned handle)
int gpioPWM(unsigned user_gpio, unsigned dutycycle)
int fileSeek(unsigned handle, int32_t seekOffset, int seekFrom)
int gpioGetMode(unsigned gpio)
int i2cWriteByte(unsigned handle, unsigned bVal)
int gpioWaveAddSerial(unsigned user_gpio, unsigned baud, unsigned data_bits, unsigned stop_bits, unsigned offset, unsigned numBytes, char *str)
int gpioSetAlertFuncEx(unsigned user_gpio, gpioAlertFuncEx_t f, void *userdata)
int fileWrite(unsigned handle, char *buf, unsigned count)
int gpioGetPWMrange(unsigned user_gpio)
void putBitInBytes(int bitPos, char *buf, int bit)
int i2cClose(unsigned handle)
unsigned gpioHardwareRevision(void)
int gpioSerialReadClose(unsigned user_gpio)
int bbI2CClose(unsigned SDA)
int gpioSetMode(unsigned gpio, unsigned mode)
int spiWrite(unsigned handle, char *buf, unsigned count)
int serOpen(char *sertty, unsigned baud, unsigned serFlags)
int gpioWaveGetMaxPulses(void)
int gpioHardwarePWM(unsigned gpio, unsigned PWMfreq, unsigned PWMduty)
int gpioWrite_Bits_0_31_Clear(uint32_t bits)
int gpioCfgBufferSize(unsigned cfgMillis)
int gpioSerialRead(unsigned user_gpio, void *buf, size_t bufSize)
int eventSetFuncEx(unsigned event, eventFuncEx_t f, void *userdata)
int gpioWrite_Bits_0_31_Set(uint32_t bits)
int bbI2COpen(unsigned SDA, unsigned SCL, unsigned baud)
int gpioServo(unsigned user_gpio, unsigned pulsewidth)
int gpioGetServoPulsewidth(unsigned user_gpio)
int gpioGetPWMdutycycle(unsigned user_gpio)
int gpioHardwareClock(unsigned gpio, unsigned clkfreq)
int eventSetFunc(unsigned event, eventFunc_t f)
int fileOpen(char *file, unsigned mode)
int i2cZip(unsigned handle, char *inBuf, unsigned inLen, char *outBuf, unsigned outLen)
int gpioCfgMemAlloc(unsigned memAllocMode)
int shell(char *scriptName, char *scriptString)
int bbSPIOpen(unsigned CS, unsigned MISO, unsigned MOSI, unsigned SCLK, unsigned baud, unsigned spiFlags)
int gpioSetSignalFunc(unsigned signum, gpioSignalFunc_t f)
int gpioStoreScript(char *script)
int i2cProcessCall(unsigned handle, unsigned i2cReg, unsigned wVal)
int gpioSetPWMrange(unsigned user_gpio, unsigned range)
int gpioWaveGetHighPulses(void)
void(* gpioAlertFunc_t)(int gpio, int level, uint32_t tick)
Definition pigpio.h:543
int serDataAvailable(unsigned handle)
int gpioWaveGetPulses(void)
int i2cReadWordData(unsigned handle, unsigned i2cReg)
int gpioCfgDMAchannel(unsigned DMAchannel)
uint32_t gpioRead_Bits_0_31(void)
int fileClose(unsigned handle)
int gpioWaveAddGeneric(unsigned numPulses, gpioPulse_t *pulses)
int eventTrigger(unsigned event)
void(* gpioGetSamplesFuncEx_t)(const gpioSample_t *samples, int numSamples, void *userdata)
Definition pigpio.h:580
int gpioWaveTxSend(unsigned wave_id, unsigned wave_mode)
int gpioWaveCreatePad(int pctCB, int pctBOOL, int pctTOOL)
void i2cSwitchCombined(int setting)
int gpioNotifyPause(unsigned handle)
int gpioSetAlertFunc(unsigned user_gpio, gpioAlertFunc_t f)
int gpioCfgPermissions(uint64_t updateMask)
int gpioCfgSocketPort(unsigned port)
pthread_t * gpioStartThread(gpioThreadFunc_t f, void *userdata)
int gpioSetGetSamplesFunc(gpioGetSamplesFunc_t f, uint32_t bits)
int bbI2CZip(unsigned SDA, char *inBuf, unsigned inLen, char *outBuf, unsigned outLen)
int bscXfer(bsc_xfer_t *bsc_xfer)
#define BSC_FIFO_SIZE
Definition pigpio.h:531
int eventMonitor(unsigned handle, uint32_t bits)
int gpioWrite_Bits_32_53_Clear(uint32_t bits)
int gpioStopScript(unsigned script_id)
uint32_t gpioCfgGetInternals(void)
int txCnt
Definition pigpio.h:538
uint32_t control
Definition pigpio.h:535
int rxCnt
Definition pigpio.h:536
uint32_t data
Definition pigpio.h:437
void * ptr
Definition pigpio.h:436
size_t size
Definition pigpio.h:435
uint32_t usDelay
Definition pigpio.h:458
uint32_t gpioOn
Definition pigpio.h:456
uint32_t gpioOff
Definition pigpio.h:457
uint16_t seqno
Definition pigpio.h:448
uint32_t level
Definition pigpio.h:451
uint16_t flags
Definition pigpio.h:449
uint32_t tick
Definition pigpio.h:450
uint32_t level
Definition pigpio.h:443
uint32_t tick
Definition pigpio.h:442
uint16_t flags
Definition pigpio.h:524
uint8_t * buf
Definition pigpio.h:526
uint16_t addr
Definition pigpio.h:523
uint16_t len
Definition pigpio.h:525
uint32_t stride
Definition pigpio.h:516
uint32_t next
Definition pigpio.h:517
uint32_t src
Definition pigpio.h:513
uint32_t info
Definition pigpio.h:512
uint32_t length
Definition pigpio.h:515
uint32_t dst
Definition pigpio.h:514
int clk_us
Definition pigpio.h:508
int mosi
Definition pigpio.h:502
int ss_pol
Definition pigpio.h:504
int miso
Definition pigpio.h:503
int clk
Definition pigpio.h:501
int ss_us
Definition pigpio.h:505
int clk_pol
Definition pigpio.h:506
int clk_pha
Definition pigpio.h:507
uint16_t botCB
Definition pigpio.h:487
uint16_t topOOL
Definition pigpio.h:491
uint16_t topCB
Definition pigpio.h:488
uint16_t numCB
Definition pigpio.h:494
uint16_t numTOOL
Definition pigpio.h:496
uint16_t numBOOL
Definition pigpio.h:495
uint16_t botOOL
Definition pigpio.h:489
uint16_t deleted
Definition pigpio.h:493
uint32_t usDelay
Definition pigpio.h:468
uint32_t flags
Definition pigpio.h:469
uint32_t gpioOff
Definition pigpio.h:467
uint32_t gpioOn
Definition pigpio.h:466