wiringpi 1.0.0-armv6l-linux → 1.0.1-armv6l-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/wiringpi/serial.c +20 -0
- data/ext/wiringpi/serial.h +1 -0
- data/ext/wiringpi/wiringPi.c +0 -3
- data/ext/wiringpi/wiringpi_wrap.c +34 -0
- metadata +1 -1
data/ext/wiringpi/serial.c
CHANGED
@@ -23,6 +23,7 @@
|
|
23
23
|
#include <stdio.h>
|
24
24
|
#include <stdlib.h>
|
25
25
|
#include <stdint.h>
|
26
|
+
#include <stdarg.h>
|
26
27
|
#include <string.h>
|
27
28
|
#include <termios.h>
|
28
29
|
#include <unistd.h>
|
@@ -148,6 +149,25 @@ void serialPuts (int fd, char *s)
|
|
148
149
|
write (fd, s, strlen (s)) ;
|
149
150
|
}
|
150
151
|
|
152
|
+
/*
|
153
|
+
* serialPrintf:
|
154
|
+
* Printf over Serial
|
155
|
+
*********************************************************************************
|
156
|
+
*/
|
157
|
+
|
158
|
+
void serialPrintf (int fd, char *message, ...)
|
159
|
+
{
|
160
|
+
va_list argp ;
|
161
|
+
char buffer [1024] ;
|
162
|
+
|
163
|
+
va_start (argp, message) ;
|
164
|
+
vsnprintf (buffer, 1023, message, argp) ;
|
165
|
+
va_end (argp) ;
|
166
|
+
|
167
|
+
serialPuts (fd, buffer) ;
|
168
|
+
}
|
169
|
+
|
170
|
+
|
151
171
|
/*
|
152
172
|
* serialDataAvail:
|
153
173
|
* Return the number of bytes of data avalable to be read in the serial port
|
data/ext/wiringpi/serial.h
CHANGED
@@ -32,6 +32,7 @@ extern int serialOpen (char *device, int baud) ;
|
|
32
32
|
extern void serialClose (int fd) ;
|
33
33
|
extern void serialPutchar (int fd, uint8_t c) ;
|
34
34
|
extern void serialPuts (int fd, char *s) ;
|
35
|
+
extern void serialPrintf (int fd, char *message, ...) ;
|
35
36
|
extern int serialDataAvail (int fd) ;
|
36
37
|
extern int serialGetchar (int fd) ;
|
37
38
|
|
data/ext/wiringpi/wiringPi.c
CHANGED
@@ -2427,6 +2427,39 @@ fail:
|
|
2427
2427
|
}
|
2428
2428
|
|
2429
2429
|
|
2430
|
+
SWIGINTERN VALUE
|
2431
|
+
_wrap_serialPrintf(int argc, VALUE *argv, VALUE self) {
|
2432
|
+
int arg1 ;
|
2433
|
+
char *arg2 = (char *) 0 ;
|
2434
|
+
void *arg3 = 0 ;
|
2435
|
+
int val1 ;
|
2436
|
+
int ecode1 = 0 ;
|
2437
|
+
int res2 ;
|
2438
|
+
char *buf2 = 0 ;
|
2439
|
+
int alloc2 = 0 ;
|
2440
|
+
|
2441
|
+
if (argc < 2) {
|
2442
|
+
rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
|
2443
|
+
}
|
2444
|
+
ecode1 = SWIG_AsVal_int(argv[0], &val1);
|
2445
|
+
if (!SWIG_IsOK(ecode1)) {
|
2446
|
+
SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","serialPrintf", 1, argv[0] ));
|
2447
|
+
}
|
2448
|
+
arg1 = (int)(val1);
|
2449
|
+
res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
|
2450
|
+
if (!SWIG_IsOK(res2)) {
|
2451
|
+
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","serialPrintf", 2, argv[1] ));
|
2452
|
+
}
|
2453
|
+
arg2 = (char *)(buf2);
|
2454
|
+
serialPrintf(arg1,arg2,arg3);
|
2455
|
+
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
|
2456
|
+
return Qnil;
|
2457
|
+
fail:
|
2458
|
+
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
|
2459
|
+
return Qnil;
|
2460
|
+
}
|
2461
|
+
|
2462
|
+
|
2430
2463
|
|
2431
2464
|
/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
|
2432
2465
|
|
@@ -2715,5 +2748,6 @@ SWIGEXPORT void Init_wiringpi(void) {
|
|
2715
2748
|
rb_define_module_function(mWiringpi, "serialPuts", _wrap_serialPuts, -1);
|
2716
2749
|
rb_define_module_function(mWiringpi, "serialDataAvail", _wrap_serialDataAvail, -1);
|
2717
2750
|
rb_define_module_function(mWiringpi, "serialGetchar", _wrap_serialGetchar, -1);
|
2751
|
+
rb_define_module_function(mWiringpi, "serialPrintf", _wrap_serialPrintf, -1);
|
2718
2752
|
}
|
2719
2753
|
|