wiring_lmk 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +7 -0
  2. data/ext/wiringpi/WiringPi/devLib/ds1302.c +254 -0
  3. data/ext/wiringpi/WiringPi/devLib/ds1302.h +44 -0
  4. data/ext/wiringpi/WiringPi/devLib/font.h +2577 -0
  5. data/ext/wiringpi/WiringPi/devLib/gertboard.c +164 -0
  6. data/ext/wiringpi/WiringPi/devLib/gertboard.h +45 -0
  7. data/ext/wiringpi/WiringPi/devLib/lcd.c +507 -0
  8. data/ext/wiringpi/WiringPi/devLib/lcd.h +52 -0
  9. data/ext/wiringpi/WiringPi/devLib/lcd128x64.c +684 -0
  10. data/ext/wiringpi/WiringPi/devLib/lcd128x64.h +39 -0
  11. data/ext/wiringpi/WiringPi/devLib/maxdetect.c +167 -0
  12. data/ext/wiringpi/WiringPi/devLib/maxdetect.h +40 -0
  13. data/ext/wiringpi/WiringPi/devLib/piFace.c +112 -0
  14. data/ext/wiringpi/WiringPi/devLib/piFace.h +32 -0
  15. data/ext/wiringpi/WiringPi/devLib/piFaceOld.c +178 -0
  16. data/ext/wiringpi/WiringPi/devLib/piGlow.c +118 -0
  17. data/ext/wiringpi/WiringPi/devLib/piGlow.h +45 -0
  18. data/ext/wiringpi/WiringPi/devLib/piNes.c +117 -0
  19. data/ext/wiringpi/WiringPi/devLib/piNes.h +45 -0
  20. data/ext/wiringpi/WiringPi/gpio/extensions.c +700 -0
  21. data/ext/wiringpi/WiringPi/gpio/extensions.h +26 -0
  22. data/ext/wiringpi/WiringPi/gpio/gpio.c +1280 -0
  23. data/ext/wiringpi/WiringPi/gpio/pins.c +33 -0
  24. data/ext/wiringpi/WiringPi/gpio/readall.c +337 -0
  25. data/ext/wiringpi/WiringPi/wiringPi/drcSerial.c +201 -0
  26. data/ext/wiringpi/WiringPi/wiringPi/drcSerial.h +33 -0
  27. data/ext/wiringpi/WiringPi/wiringPi/max31855.c +99 -0
  28. data/ext/wiringpi/WiringPi/wiringPi/max31855.h +33 -0
  29. data/ext/wiringpi/WiringPi/wiringPi/max5322.c +84 -0
  30. data/ext/wiringpi/WiringPi/wiringPi/max5322.h +33 -0
  31. data/ext/wiringpi/WiringPi/wiringPi/mcp23008.c +149 -0
  32. data/ext/wiringpi/WiringPi/wiringPi/mcp23008.h +33 -0
  33. data/ext/wiringpi/WiringPi/wiringPi/mcp23016.c +164 -0
  34. data/ext/wiringpi/WiringPi/wiringPi/mcp23016.h +33 -0
  35. data/ext/wiringpi/WiringPi/wiringPi/mcp23016reg.h +48 -0
  36. data/ext/wiringpi/WiringPi/wiringPi/mcp23017.c +195 -0
  37. data/ext/wiringpi/WiringPi/wiringPi/mcp23017.h +33 -0
  38. data/ext/wiringpi/WiringPi/wiringPi/mcp23s08.c +189 -0
  39. data/ext/wiringpi/WiringPi/wiringPi/mcp23s08.h +33 -0
  40. data/ext/wiringpi/WiringPi/wiringPi/mcp23s17.c +234 -0
  41. data/ext/wiringpi/WiringPi/wiringPi/mcp23s17.h +33 -0
  42. data/ext/wiringpi/WiringPi/wiringPi/mcp23x08.h +73 -0
  43. data/ext/wiringpi/WiringPi/wiringPi/mcp23x0817.h +87 -0
  44. data/ext/wiringpi/WiringPi/wiringPi/mcp3002.c +76 -0
  45. data/ext/wiringpi/WiringPi/wiringPi/mcp3002.h +33 -0
  46. data/ext/wiringpi/WiringPi/wiringPi/mcp3004.c +76 -0
  47. data/ext/wiringpi/WiringPi/wiringPi/mcp3004.h +33 -0
  48. data/ext/wiringpi/WiringPi/wiringPi/mcp3422.c +113 -0
  49. data/ext/wiringpi/WiringPi/wiringPi/mcp3422.h +43 -0
  50. data/ext/wiringpi/WiringPi/wiringPi/mcp4802.c +76 -0
  51. data/ext/wiringpi/WiringPi/wiringPi/mcp4802.h +33 -0
  52. data/ext/wiringpi/WiringPi/wiringPi/pcf8574.c +126 -0
  53. data/ext/wiringpi/WiringPi/wiringPi/pcf8574.h +33 -0
  54. data/ext/wiringpi/WiringPi/wiringPi/pcf8591.c +92 -0
  55. data/ext/wiringpi/WiringPi/wiringPi/pcf8591.h +33 -0
  56. data/ext/wiringpi/WiringPi/wiringPi/piHiPri.c +51 -0
  57. data/ext/wiringpi/WiringPi/wiringPi/piThread.c +63 -0
  58. data/ext/wiringpi/WiringPi/wiringPi/sn3218.c +75 -0
  59. data/ext/wiringpi/WiringPi/wiringPi/sn3218.h +33 -0
  60. data/ext/wiringpi/WiringPi/wiringPi/softPwm.c +168 -0
  61. data/ext/wiringpi/WiringPi/wiringPi/softPwm.h +35 -0
  62. data/ext/wiringpi/WiringPi/wiringPi/softServo.c +247 -0
  63. data/ext/wiringpi/WiringPi/wiringPi/softServo.h +35 -0
  64. data/ext/wiringpi/WiringPi/wiringPi/softTone.c +150 -0
  65. data/ext/wiringpi/WiringPi/wiringPi/softTone.h +39 -0
  66. data/ext/wiringpi/WiringPi/wiringPi/sr595.c +113 -0
  67. data/ext/wiringpi/WiringPi/wiringPi/sr595.h +34 -0
  68. data/ext/wiringpi/WiringPi/wiringPi/wiringPi.c +3688 -0
  69. data/ext/wiringpi/WiringPi/wiringPi/wiringPi.h +229 -0
  70. data/ext/wiringpi/WiringPi/wiringPi/wiringPiI2C.c +236 -0
  71. data/ext/wiringpi/WiringPi/wiringPi/wiringPiI2C.h +42 -0
  72. data/ext/wiringpi/WiringPi/wiringPi/wiringPiSPI.c +121 -0
  73. data/ext/wiringpi/WiringPi/wiringPi/wiringPiSPI.h +35 -0
  74. data/ext/wiringpi/WiringPi/wiringPi/wiringSerial.c +253 -0
  75. data/ext/wiringpi/WiringPi/wiringPi/wiringSerial.h +38 -0
  76. data/ext/wiringpi/WiringPi/wiringPi/wiringShift.c +83 -0
  77. data/ext/wiringpi/WiringPi/wiringPi/wiringShift.h +41 -0
  78. data/ext/wiringpi/extconf.rb +8 -0
  79. data/ext/wiringpi/wiringpi_wrap.c +4396 -0
  80. data/lib/wiring_lmk.rb +42 -0
  81. data/lib/wiring_lmk/event.rb +21 -0
  82. data/lib/wiring_lmk/gpio.rb +139 -0
  83. data/lib/wiring_lmk/i2c.rb +26 -0
  84. data/lib/wiring_lmk/mcp23x17.rb +31 -0
  85. data/lib/wiring_lmk/serial.rb +49 -0
  86. data/lib/wiring_lmk/spi.rb +15 -0
  87. metadata +136 -0
@@ -0,0 +1,43 @@
1
+ /*
2
+ * mcp3422.c:
3
+ * Extend wiringPi with the MCP3422 I2C ADC chip
4
+ ***********************************************************************
5
+ * This file is part of wiringPi:
6
+ * https://projects.drogon.net/raspberry-pi/wiringpi/
7
+ *
8
+ * wiringPi is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU Lesser General Public License as
10
+ * published by the Free Software Foundation, either version 3 of the
11
+ * License, or (at your option) any later version.
12
+ *
13
+ * wiringPi is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ * GNU Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with wiringPi.
20
+ * If not, see <http://www.gnu.org/licenses/>.
21
+ ***********************************************************************
22
+ */
23
+
24
+ #define MCP3422_SR_3_75 0
25
+ #define MCP3422_SR_15 1
26
+ #define MCP3422_SR_60 2
27
+ #define MCP3422_SR_240 3
28
+
29
+ #define MCP3422_GAIN_1 0
30
+ #define MCP3422_GAIN_2 1
31
+ #define MCP3422_GAIN_4 2
32
+ #define MCP3422_GAIN_8 3
33
+
34
+
35
+ #ifdef __cplusplus
36
+ extern "C" {
37
+ #endif
38
+
39
+ extern int mcp3422Setup (int pinBase, int i2cAddress, int sampleRate, int gain) ;
40
+
41
+ #ifdef __cplusplus
42
+ }
43
+ #endif
@@ -0,0 +1,76 @@
1
+ /*
2
+ * mcp4802.c:
3
+ * Extend wiringPi with the MCP4802 SPI Digital to Analog convertor
4
+ * Copyright (c) 2012-2013 Gordon Henderson
5
+ ***********************************************************************
6
+ * This file is part of wiringPi:
7
+ * https://projects.drogon.net/raspberry-pi/wiringpi/
8
+ *
9
+ * wiringPi is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU Lesser General Public License as
11
+ * published by the Free Software Foundation, either version 3 of the
12
+ * License, or (at your option) any later version.
13
+ *
14
+ * wiringPi is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with wiringPi.
21
+ * If not, see <http://www.gnu.org/licenses/>.
22
+ ***********************************************************************
23
+ */
24
+
25
+ #include "wiringPi.h"
26
+ #include "wiringPiSPI.h"
27
+
28
+ #include "mcp4802.h"
29
+
30
+ /*
31
+ * myAnalogWrite:
32
+ * Write analog value on the given pin
33
+ *********************************************************************************
34
+ */
35
+
36
+ static void myAnalogWrite (struct wiringPiNodeStruct *node, int pin, int value)
37
+ {
38
+ unsigned char spiData [2] ;
39
+ unsigned char chanBits, dataBits ;
40
+ int chan = pin - node->pinBase ;
41
+
42
+ if (chan == 0)
43
+ chanBits = 0x30 ;
44
+ else
45
+ chanBits = 0xB0 ;
46
+
47
+ chanBits |= ((value >> 4) & 0x0F) ;
48
+ dataBits = ((value << 4) & 0xF0) ;
49
+
50
+ spiData [0] = chanBits ;
51
+ spiData [1] = dataBits ;
52
+
53
+ wiringPiSPIDataRW (node->fd, spiData, 2) ;
54
+ }
55
+
56
+ /*
57
+ * mcp4802Setup:
58
+ * Create a new wiringPi device node for an mcp4802 on the Pi's
59
+ * SPI interface.
60
+ *********************************************************************************
61
+ */
62
+
63
+ int mcp4802Setup (const int pinBase, int spiChannel)
64
+ {
65
+ struct wiringPiNodeStruct *node ;
66
+
67
+ if (wiringPiSPISetup (spiChannel, 1000000) < 0)
68
+ return -1 ;
69
+
70
+ node = wiringPiNewNode (pinBase, 2) ;
71
+
72
+ node->fd = spiChannel ;
73
+ node->analogWrite = myAnalogWrite ;
74
+
75
+ return 0 ;
76
+ }
@@ -0,0 +1,33 @@
1
+ /*
2
+ * mcp4802.c:
3
+ * Extend wiringPi with the MCP4802 SPI Digital to Analog convertor
4
+ * Copyright (c) 2012-2013 Gordon Henderson
5
+ ***********************************************************************
6
+ * This file is part of wiringPi:
7
+ * https://projects.drogon.net/raspberry-pi/wiringpi/
8
+ *
9
+ * wiringPi is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU Lesser General Public License as
11
+ * published by the Free Software Foundation, either version 3 of the
12
+ * License, or (at your option) any later version.
13
+ *
14
+ * wiringPi is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with wiringPi.
21
+ * If not, see <http://www.gnu.org/licenses/>.
22
+ ***********************************************************************
23
+ */
24
+
25
+ #ifdef __cplusplus
26
+ extern "C" {
27
+ #endif
28
+
29
+ extern int mcp4802Setup (int pinBase, int spiChannel) ;
30
+
31
+ #ifdef __cplusplus
32
+ }
33
+ #endif
@@ -0,0 +1,126 @@
1
+ /*
2
+ * pcf8574.c:
3
+ * Extend wiringPi with the PCF8574 I2C GPIO expander chip
4
+ * Copyright (c) 2013 Gordon Henderson
5
+ ***********************************************************************
6
+ * This file is part of wiringPi:
7
+ * https://projects.drogon.net/raspberry-pi/wiringpi/
8
+ *
9
+ * wiringPi is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU Lesser General Public License as
11
+ * published by the Free Software Foundation, either version 3 of the
12
+ * License, or (at your option) any later version.
13
+ *
14
+ * wiringPi is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with wiringPi.
21
+ * If not, see <http://www.gnu.org/licenses/>.
22
+ ***********************************************************************
23
+ */
24
+
25
+ #include <stdio.h>
26
+ #include <pthread.h>
27
+
28
+ #include "wiringPi.h"
29
+ #include "wiringPiI2C.h"
30
+
31
+ #include "pcf8574.h"
32
+
33
+
34
+ /*
35
+ * myPinMode:
36
+ * The PCF8574 is an odd chip - the pins are effectively bi-directional,
37
+ * however the pins should be drven high when used as an input pin...
38
+ * So, we're effectively copying digitalWrite...
39
+ *********************************************************************************
40
+ */
41
+
42
+ static void myPinMode (struct wiringPiNodeStruct *node, int pin, int mode)
43
+ {
44
+ int bit, old ;
45
+
46
+ bit = 1 << ((pin - node->pinBase) & 7) ;
47
+
48
+ old = node->data2 ;
49
+ if (mode == OUTPUT)
50
+ old &= (~bit) ; // Write bit to 0
51
+ else
52
+ old |= bit ; // Write bit to 1
53
+
54
+ wiringPiI2CWrite (node->fd, old) ;
55
+ node->data2 = old ;
56
+ }
57
+
58
+
59
+
60
+ /*
61
+ * myDigitalWrite:
62
+ *********************************************************************************
63
+ */
64
+
65
+ static void myDigitalWrite (struct wiringPiNodeStruct *node, int pin, int value)
66
+ {
67
+ int bit, old ;
68
+
69
+ bit = 1 << ((pin - node->pinBase) & 7) ;
70
+
71
+ old = node->data2 ;
72
+ if (value == LOW)
73
+ old &= (~bit) ;
74
+ else
75
+ old |= bit ;
76
+
77
+ wiringPiI2CWrite (node->fd, old) ;
78
+ node->data2 = old ;
79
+ }
80
+
81
+
82
+ /*
83
+ * myDigitalRead:
84
+ *********************************************************************************
85
+ */
86
+
87
+ static int myDigitalRead (struct wiringPiNodeStruct *node, int pin)
88
+ {
89
+ int mask, value ;
90
+
91
+ mask = 1 << ((pin - node->pinBase) & 7) ;
92
+ value = wiringPiI2CRead (node->fd) ;
93
+
94
+ if ((value & mask) == 0)
95
+ return LOW ;
96
+ else
97
+ return HIGH ;
98
+ }
99
+
100
+
101
+ /*
102
+ * pcf8574Setup:
103
+ * Create a new instance of a PCF8574 I2C GPIO interface. We know it
104
+ * has 8 pins, so all we need to know here is the I2C address and the
105
+ * user-defined pin base.
106
+ *********************************************************************************
107
+ */
108
+
109
+ int pcf8574Setup (const int pinBase, const int i2cAddress)
110
+ {
111
+ int fd ;
112
+ struct wiringPiNodeStruct *node ;
113
+
114
+ if ((fd = wiringPiI2CSetup (i2cAddress)) < 0)
115
+ return fd ;
116
+
117
+ node = wiringPiNewNode (pinBase, 8) ;
118
+
119
+ node->fd = fd ;
120
+ node->pinMode = myPinMode ;
121
+ node->digitalRead = myDigitalRead ;
122
+ node->digitalWrite = myDigitalWrite ;
123
+ node->data2 = wiringPiI2CRead (fd) ;
124
+
125
+ return 0 ;
126
+ }
@@ -0,0 +1,33 @@
1
+ /*
2
+ * pcf8574.h:
3
+ * Extend wiringPi with the PCF8574 I2C GPIO expander chip
4
+ * Copyright (c) 2013 Gordon Henderson
5
+ ***********************************************************************
6
+ * This file is part of wiringPi:
7
+ * https://projects.drogon.net/raspberry-pi/wiringpi/
8
+ *
9
+ * wiringPi is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU Lesser General Public License as
11
+ * published by the Free Software Foundation, either version 3 of the
12
+ * License, or (at your option) any later version.
13
+ *
14
+ * wiringPi is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with wiringPi.
21
+ * If not, see <http://www.gnu.org/licenses/>.
22
+ ***********************************************************************
23
+ */
24
+
25
+ #ifdef __cplusplus
26
+ extern "C" {
27
+ #endif
28
+
29
+ extern int pcf8574Setup (const int pinBase, const int i2cAddress) ;
30
+
31
+ #ifdef __cplusplus
32
+ }
33
+ #endif
@@ -0,0 +1,92 @@
1
+ /*
2
+ * pcf8591.c:
3
+ * Extend wiringPi with the PCF8591 I2C GPIO Analog expander chip
4
+ * The chip has 1 8-bit DAC and 4 x 8-bit ADCs
5
+ * Copyright (c) 2013 Gordon Henderson
6
+ ***********************************************************************
7
+ * This file is part of wiringPi:
8
+ * https://projects.drogon.net/raspberry-pi/wiringpi/
9
+ *
10
+ * wiringPi is free software: you can redistribute it and/or modify
11
+ * it under the terms of the GNU Lesser General Public License as
12
+ * published by the Free Software Foundation, either version 3 of the
13
+ * License, or (at your option) any later version.
14
+ *
15
+ * wiringPi is distributed in the hope that it will be useful,
16
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+ * GNU Lesser General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU Lesser General Public
21
+ * License along with wiringPi.
22
+ * If not, see <http://www.gnu.org/licenses/>.
23
+ ***********************************************************************
24
+ */
25
+
26
+ #include <unistd.h>
27
+
28
+ #include "wiringPi.h"
29
+ #include "wiringPiI2C.h"
30
+
31
+ #include "pcf8591.h"
32
+
33
+
34
+ /*
35
+ * myAnalogWrite:
36
+ *********************************************************************************
37
+ */
38
+
39
+ static void myAnalogWrite (struct wiringPiNodeStruct *node, int pin, int value)
40
+ {
41
+ unsigned char b [2] ;
42
+ int ret = -1;
43
+ b [0] = 0x40 ;
44
+ b [1] = value & 0xFF ;
45
+ ret = write (node->fd, b, 2) ;
46
+ ret = ret;
47
+ }
48
+
49
+
50
+ /*
51
+ * myAnalogRead:
52
+ *********************************************************************************
53
+ */
54
+
55
+ static int myAnalogRead (struct wiringPiNodeStruct *node, int pin)
56
+ {
57
+ int x ;
58
+
59
+ wiringPiI2CWrite (node->fd, 0x40 | ((pin - node->pinBase) & 3)) ;
60
+
61
+ x = wiringPiI2CRead (node->fd) ; // Throw away the first read
62
+ x = wiringPiI2CRead (node->fd) ;
63
+
64
+ return x ;
65
+ }
66
+
67
+
68
+ /*
69
+ * pcf8591Setup:
70
+ * Create a new instance of a PCF8591 I2C GPIO interface. We know it
71
+ * has 4 pins, (4 analog inputs and 1 analog output which we'll shadow
72
+ * input 0) so all we need to know here is the I2C address and the
73
+ * user-defined pin base.
74
+ *********************************************************************************
75
+ */
76
+
77
+ int pcf8591Setup (const int pinBase, const int i2cAddress)
78
+ {
79
+ int fd ;
80
+ struct wiringPiNodeStruct *node ;
81
+
82
+ if ((fd = wiringPiI2CSetup (i2cAddress)) < 0)
83
+ return fd ;
84
+
85
+ node = wiringPiNewNode (pinBase, 4) ;
86
+
87
+ node->fd = fd ;
88
+ node->analogRead = myAnalogRead ;
89
+ node->analogWrite = myAnalogWrite ;
90
+
91
+ return 0 ;
92
+ }
@@ -0,0 +1,33 @@
1
+ /*
2
+ * pcf8591.h:
3
+ * Extend wiringPi with the PCF8591 I2C GPIO Analog expander chip
4
+ * Copyright (c) 2013 Gordon Henderson
5
+ ***********************************************************************
6
+ * This file is part of wiringPi:
7
+ * https://projects.drogon.net/raspberry-pi/wiringpi/
8
+ *
9
+ * wiringPi is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU Lesser General Public License as
11
+ * published by the Free Software Foundation, either version 3 of the
12
+ * License, or (at your option) any later version.
13
+ *
14
+ * wiringPi is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with wiringPi.
21
+ * If not, see <http://www.gnu.org/licenses/>.
22
+ ***********************************************************************
23
+ */
24
+
25
+ #ifdef __cplusplus
26
+ extern "C" {
27
+ #endif
28
+
29
+ extern int pcf8591Setup (const int pinBase, const int i2cAddress) ;
30
+
31
+ #ifdef __cplusplus
32
+ }
33
+ #endif
@@ -0,0 +1,51 @@
1
+ /*
2
+ * piHiPri:
3
+ * Simple way to get your program running at high priority
4
+ * with realtime schedulling.
5
+ *
6
+ * Copyright (c) 2012 Gordon Henderson
7
+ ***********************************************************************
8
+ * This file is part of wiringPi:
9
+ * https://projects.drogon.net/raspberry-pi/wiringpi/
10
+ *
11
+ * wiringPi is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as
13
+ * published by the Free Software Foundation, either version 3 of the
14
+ * License, or (at your option) any later version.
15
+ *
16
+ * wiringPi is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public
22
+ * License along with wiringPi.
23
+ * If not, see <http://www.gnu.org/licenses/>.
24
+ ***********************************************************************
25
+ */
26
+
27
+ #include <sched.h>
28
+ #include <string.h>
29
+
30
+ #include "wiringPi.h"
31
+
32
+
33
+ /*
34
+ * piHiPri:
35
+ * Attempt to set a high priority schedulling for the running program
36
+ *********************************************************************************
37
+ */
38
+
39
+ int piHiPri (const int pri)
40
+ {
41
+ struct sched_param sched ;
42
+
43
+ memset (&sched, 0, sizeof(sched)) ;
44
+
45
+ if (pri > sched_get_priority_max (SCHED_RR))
46
+ sched.sched_priority = sched_get_priority_max (SCHED_RR) ;
47
+ else
48
+ sched.sched_priority = pri ;
49
+
50
+ return sched_setscheduler (0, SCHED_RR, &sched) ;
51
+ }