initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 1) /* BlinkenLib
BlinkenLib/BlinkenDeviceOutput.c 2) Copyright 2004-2014 Stefan Schuermans <stefan@schuermans.info>
BlinkenLib/BlinkenDeviceOutput.c 3) Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
BlinkenLib/BlinkenDeviceOutput.c 4) a blinkenarea.org project */
BlinkenLib/BlinkenDeviceOutput.c 5) /* OS X support by Manfred Wuits
BlinkenLib/BlinkenDeviceOutput.c 6) <manfred@werkzeugH.at> */
BlinkenLib/BlinkenDeviceOutput.c 7)
BlinkenLib/BlinkenDeviceOutput.c 8) #include <errno.h>
BlinkenLib/BlinkenDeviceOutput.c 9) #include <fcntl.h>
BlinkenLib/BlinkenDeviceOutput.c 10) #include <stdio.h>
BlinkenLib/BlinkenDeviceOutput.c 11) #include <stdlib.h>
BlinkenLib/BlinkenDeviceOutput.c 12) #include <string.h>
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 13) #include <sys/time.h>
tools/BlinkenDeviceOutput.c 14) #include <sys/types.h>
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 15) #include <termios.h>
BlinkenLib/BlinkenDeviceOutput.c 16) #include <time.h>
BlinkenLib/BlinkenDeviceOutput.c 17) #include <unistd.h>
BlinkenLib/BlinkenDeviceOutput.c 18)
BlinkenLib/BlinkenDeviceOutput.c 19) #include <BlinkenLib/BlinkenLib.h>
BlinkenLib/BlinkenDeviceOutput.c 20)
BlinkenLib/BlinkenDeviceOutput.c 21) // get serial settings from text
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 22) static int serial_settings_parse(char *str, int *settings, int *speed) {
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 23) int baud, data, stop;
BlinkenLib/BlinkenDeviceOutput.c 24) char parity;
BlinkenLib/BlinkenDeviceOutput.c 25) int set = 0, sp = 0;
BlinkenLib/BlinkenDeviceOutput.c 26)
BlinkenLib/BlinkenDeviceOutput.c 27) // split and parse settings string
BlinkenLib/BlinkenDeviceOutput.c 28) if (sscanf(str, "%i,%c,%i,%i", &baud, &parity, &data, &stop) != 4)
BlinkenLib/BlinkenDeviceOutput.c 29) return 0;
BlinkenLib/BlinkenDeviceOutput.c 30)
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 31) // baud rate
tools/BlinkenDeviceOutput.c 32) #define BAUD(rate) else if (baud == rate) sp = B##rate;
tools/BlinkenDeviceOutput.c 33) if (0) {
tools/BlinkenDeviceOutput.c 34) }
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 35) BAUD(300)
BlinkenLib/BlinkenDeviceOutput.c 36) BAUD(600)
BlinkenLib/BlinkenDeviceOutput.c 37) BAUD(1200)
BlinkenLib/BlinkenDeviceOutput.c 38) BAUD(2400)
BlinkenLib/BlinkenDeviceOutput.c 39) BAUD(4800)
BlinkenLib/BlinkenDeviceOutput.c 40) BAUD(9600)
BlinkenLib/BlinkenDeviceOutput.c 41) BAUD(19200)
BlinkenLib/BlinkenDeviceOutput.c 42) BAUD(38400)
BlinkenLib/BlinkenDeviceOutput.c 43) BAUD(57600)
BlinkenLib/BlinkenDeviceOutput.c 44) BAUD(115200)
BlinkenLib/BlinkenDeviceOutput.c 45) #ifdef B230400
BlinkenLib/BlinkenDeviceOutput.c 46) BAUD(230400)
BlinkenLib/BlinkenDeviceOutput.c 47) #endif
BlinkenLib/BlinkenDeviceOutput.c 48) #ifdef B460800
BlinkenLib/BlinkenDeviceOutput.c 49) BAUD(460800)
BlinkenLib/BlinkenDeviceOutput.c 50) #endif
BlinkenLib/BlinkenDeviceOutput.c 51) #ifdef B576000
BlinkenLib/BlinkenDeviceOutput.c 52) BAUD(576000)
BlinkenLib/BlinkenDeviceOutput.c 53) #endif
BlinkenLib/BlinkenDeviceOutput.c 54) #ifdef B921600
BlinkenLib/BlinkenDeviceOutput.c 55) BAUD(921600)
BlinkenLib/BlinkenDeviceOutput.c 56) #endif
BlinkenLib/BlinkenDeviceOutput.c 57) #ifdef B1000000
BlinkenLib/BlinkenDeviceOutput.c 58) BAUD(1000000)
BlinkenLib/BlinkenDeviceOutput.c 59) #endif
BlinkenLib/BlinkenDeviceOutput.c 60) #ifdef B1152000
BlinkenLib/BlinkenDeviceOutput.c 61) BAUD(1152000)
BlinkenLib/BlinkenDeviceOutput.c 62) #endif
BlinkenLib/BlinkenDeviceOutput.c 63) #ifdef B1500000
BlinkenLib/BlinkenDeviceOutput.c 64) BAUD(1500000)
BlinkenLib/BlinkenDeviceOutput.c 65) #endif
BlinkenLib/BlinkenDeviceOutput.c 66) #ifdef B2000000
BlinkenLib/BlinkenDeviceOutput.c 67) BAUD(2000000)
BlinkenLib/BlinkenDeviceOutput.c 68) #endif
BlinkenLib/BlinkenDeviceOutput.c 69) #ifdef B2500000
BlinkenLib/BlinkenDeviceOutput.c 70) BAUD(2500000)
BlinkenLib/BlinkenDeviceOutput.c 71) #endif
BlinkenLib/BlinkenDeviceOutput.c 72) #ifdef B3000000
BlinkenLib/BlinkenDeviceOutput.c 73) BAUD(3000000)
BlinkenLib/BlinkenDeviceOutput.c 74) #endif
BlinkenLib/BlinkenDeviceOutput.c 75) #ifdef B3500000
BlinkenLib/BlinkenDeviceOutput.c 76) BAUD(3500000)
BlinkenLib/BlinkenDeviceOutput.c 77) #endif
BlinkenLib/BlinkenDeviceOutput.c 78) #ifdef B4000000
BlinkenLib/BlinkenDeviceOutput.c 79) BAUD(4000000)
BlinkenLib/BlinkenDeviceOutput.c 80) #endif
BlinkenLib/BlinkenDeviceOutput.c 81) else {
BlinkenLib/BlinkenDeviceOutput.c 82) printf("illegal baudrate: %d\n", baud);
BlinkenLib/BlinkenDeviceOutput.c 83) return 0;
BlinkenLib/BlinkenDeviceOutput.c 84) }
BlinkenLib/BlinkenDeviceOutput.c 85)
BlinkenLib/BlinkenDeviceOutput.c 86) // parity
BlinkenLib/BlinkenDeviceOutput.c 87) if (parity == 'n' || parity == 'N')
BlinkenLib/BlinkenDeviceOutput.c 88) set |= 0;
BlinkenLib/BlinkenDeviceOutput.c 89) else if (parity == 'e' || parity == 'E')
BlinkenLib/BlinkenDeviceOutput.c 90) set |= PARENB;
BlinkenLib/BlinkenDeviceOutput.c 91) else if (parity == 'o' || parity == 'O')
BlinkenLib/BlinkenDeviceOutput.c 92) set |= PARENB | PARODD;
BlinkenLib/BlinkenDeviceOutput.c 93) else {
BlinkenLib/BlinkenDeviceOutput.c 94) printf("invalid parity: %c\n", parity);
BlinkenLib/BlinkenDeviceOutput.c 95) return 0;
BlinkenLib/BlinkenDeviceOutput.c 96) }
BlinkenLib/BlinkenDeviceOutput.c 97)
BlinkenLib/BlinkenDeviceOutput.c 98) // data bits
BlinkenLib/BlinkenDeviceOutput.c 99) if (data == 5)
BlinkenLib/BlinkenDeviceOutput.c 100) set |= CS5;
BlinkenLib/BlinkenDeviceOutput.c 101) else if (data == 6)
BlinkenLib/BlinkenDeviceOutput.c 102) set |= CS6;
BlinkenLib/BlinkenDeviceOutput.c 103) else if (data == 7)
BlinkenLib/BlinkenDeviceOutput.c 104) set |= CS7;
BlinkenLib/BlinkenDeviceOutput.c 105) else if (data == 8)
BlinkenLib/BlinkenDeviceOutput.c 106) set |= CS8;
BlinkenLib/BlinkenDeviceOutput.c 107) else {
BlinkenLib/BlinkenDeviceOutput.c 108) printf("illegal number of data bits: %d\n", data);
BlinkenLib/BlinkenDeviceOutput.c 109) return 0;
BlinkenLib/BlinkenDeviceOutput.c 110) }
BlinkenLib/BlinkenDeviceOutput.c 111)
BlinkenLib/BlinkenDeviceOutput.c 112) // stop bits
BlinkenLib/BlinkenDeviceOutput.c 113) if (stop == 1)
BlinkenLib/BlinkenDeviceOutput.c 114) set |= 0;
BlinkenLib/BlinkenDeviceOutput.c 115) else if (stop == 2)
BlinkenLib/BlinkenDeviceOutput.c 116) set |= CSTOPB;
BlinkenLib/BlinkenDeviceOutput.c 117) else {
BlinkenLib/BlinkenDeviceOutput.c 118) printf("illegal number of stop bits: %d\n", stop);
BlinkenLib/BlinkenDeviceOutput.c 119) return 0;
BlinkenLib/BlinkenDeviceOutput.c 120) }
BlinkenLib/BlinkenDeviceOutput.c 121)
BlinkenLib/BlinkenDeviceOutput.c 122) // success
BlinkenLib/BlinkenDeviceOutput.c 123) *settings = set;
BlinkenLib/BlinkenDeviceOutput.c 124) *speed = sp;
BlinkenLib/BlinkenDeviceOutput.c 125) return 1;
BlinkenLib/BlinkenDeviceOutput.c 126) }
BlinkenLib/BlinkenDeviceOutput.c 127)
BlinkenLib/BlinkenDeviceOutput.c 128) // convert serial settings to text
BlinkenLib/BlinkenDeviceOutput.c 129) static void serial_settings_to_str(int settings, char *buf,
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 130) unsigned int maxlen) {
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 131) int baud, data, stop;
BlinkenLib/BlinkenDeviceOutput.c 132) char parity;
BlinkenLib/BlinkenDeviceOutput.c 133)
BlinkenLib/BlinkenDeviceOutput.c 134) // baud rate
BlinkenLib/BlinkenDeviceOutput.c 135) if (settings & B300)
BlinkenLib/BlinkenDeviceOutput.c 136) baud = 300;
BlinkenLib/BlinkenDeviceOutput.c 137) else if (settings & B600)
BlinkenLib/BlinkenDeviceOutput.c 138) baud = 600;
BlinkenLib/BlinkenDeviceOutput.c 139) else if (settings & B1200)
BlinkenLib/BlinkenDeviceOutput.c 140) baud = 1200;
BlinkenLib/BlinkenDeviceOutput.c 141) else if (settings & B2400)
BlinkenLib/BlinkenDeviceOutput.c 142) baud = 2400;
BlinkenLib/BlinkenDeviceOutput.c 143) else if (settings & B4800)
BlinkenLib/BlinkenDeviceOutput.c 144) baud = 4800;
BlinkenLib/BlinkenDeviceOutput.c 145) else if (settings & B9600)
BlinkenLib/BlinkenDeviceOutput.c 146) baud = 9600;
BlinkenLib/BlinkenDeviceOutput.c 147) else if (settings & B19200)
BlinkenLib/BlinkenDeviceOutput.c 148) baud = 19200;
BlinkenLib/BlinkenDeviceOutput.c 149) else if (settings & B38400)
BlinkenLib/BlinkenDeviceOutput.c 150) baud = 38400;
BlinkenLib/BlinkenDeviceOutput.c 151) else if (settings & B57600)
BlinkenLib/BlinkenDeviceOutput.c 152) baud = 57600;
BlinkenLib/BlinkenDeviceOutput.c 153) else if (settings & B115200)
BlinkenLib/BlinkenDeviceOutput.c 154) baud = 115200;
BlinkenLib/BlinkenDeviceOutput.c 155) else
BlinkenLib/BlinkenDeviceOutput.c 156) baud = 0;
BlinkenLib/BlinkenDeviceOutput.c 157)
BlinkenLib/BlinkenDeviceOutput.c 158) // parity
BlinkenLib/BlinkenDeviceOutput.c 159) if (settings & PARENB)
BlinkenLib/BlinkenDeviceOutput.c 160) if (settings & PARODD)
BlinkenLib/BlinkenDeviceOutput.c 161) parity = 'O';
BlinkenLib/BlinkenDeviceOutput.c 162) else
BlinkenLib/BlinkenDeviceOutput.c 163) parity = 'E';
BlinkenLib/BlinkenDeviceOutput.c 164) else
BlinkenLib/BlinkenDeviceOutput.c 165) parity = 'N';
BlinkenLib/BlinkenDeviceOutput.c 166)
BlinkenLib/BlinkenDeviceOutput.c 167) // data bits
BlinkenLib/BlinkenDeviceOutput.c 168) if (settings & CS5)
BlinkenLib/BlinkenDeviceOutput.c 169) data = 5;
BlinkenLib/BlinkenDeviceOutput.c 170) else if (settings & CS6)
BlinkenLib/BlinkenDeviceOutput.c 171) data = 6;
BlinkenLib/BlinkenDeviceOutput.c 172) else if (settings & CS7)
BlinkenLib/BlinkenDeviceOutput.c 173) data = 7;
BlinkenLib/BlinkenDeviceOutput.c 174) else if (settings & CS8)
BlinkenLib/BlinkenDeviceOutput.c 175) data = 8;
BlinkenLib/BlinkenDeviceOutput.c 176) else
BlinkenLib/BlinkenDeviceOutput.c 177) data = 0;
BlinkenLib/BlinkenDeviceOutput.c 178)
BlinkenLib/BlinkenDeviceOutput.c 179) // stop bits
BlinkenLib/BlinkenDeviceOutput.c 180) if (settings & CSTOPB)
BlinkenLib/BlinkenDeviceOutput.c 181) stop = 2;
BlinkenLib/BlinkenDeviceOutput.c 182) else
BlinkenLib/BlinkenDeviceOutput.c 183) stop = 1;
BlinkenLib/BlinkenDeviceOutput.c 184)
BlinkenLib/BlinkenDeviceOutput.c 185) snprintf(buf, maxlen, "%d,%c,%d,%d", baud, parity, data, stop);
BlinkenLib/BlinkenDeviceOutput.c 186) }
BlinkenLib/BlinkenDeviceOutput.c 187)
BlinkenLib/BlinkenDeviceOutput.c 188) // set serial settings for fd
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 189) static int serial_settings_set(int fd, int settings, int speed) {
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 190) struct termios tio;
BlinkenLib/BlinkenDeviceOutput.c 191)
BlinkenLib/BlinkenDeviceOutput.c 192) // set port settings
BlinkenLib/BlinkenDeviceOutput.c 193) bzero(&tio, sizeof(tio));
BlinkenLib/BlinkenDeviceOutput.c 194) tio.c_cflag = CLOCAL | HUPCL | CREAD | settings;
BlinkenLib/BlinkenDeviceOutput.c 195) tio.c_iflag = IGNBRK | IGNPAR;
BlinkenLib/BlinkenDeviceOutput.c 196) tio.c_oflag = 0;
BlinkenLib/BlinkenDeviceOutput.c 197) tio.c_lflag = 0;
BlinkenLib/BlinkenDeviceOutput.c 198) tio.c_cc[VTIME] = 10; // 1 sec timeout
BlinkenLib/BlinkenDeviceOutput.c 199) tio.c_cc[VMIN] = 0; // return on single char read
BlinkenLib/BlinkenDeviceOutput.c 200)
BlinkenLib/BlinkenDeviceOutput.c 201) #ifdef BLINKENLIB_CFG_OSX
BlinkenLib/BlinkenDeviceOutput.c 202) if (cfsetspeed(&tio, speed) == -1) {
BlinkenLib/BlinkenDeviceOutput.c 203) printf("cfsetspeed: error: %s\n", strerror(errno));
BlinkenLib/BlinkenDeviceOutput.c 204) return 0;
BlinkenLib/BlinkenDeviceOutput.c 205) }
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 206) #else // #ifdef BLINKENLIB_CFG_OSX
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 207) tio.c_cflag |= speed;
BlinkenLib/BlinkenDeviceOutput.c 208) #endif // #ifdef BLINKENLIB_CFG_OSX
BlinkenLib/BlinkenDeviceOutput.c 209)
BlinkenLib/BlinkenDeviceOutput.c 210) if (tcsetattr(fd, TCSANOW, &tio) == -1) {
BlinkenLib/BlinkenDeviceOutput.c 211) printf("tcsetattr: error: %s\n", strerror(errno));
BlinkenLib/BlinkenDeviceOutput.c 212) return 0;
BlinkenLib/BlinkenDeviceOutput.c 213) }
BlinkenLib/BlinkenDeviceOutput.c 214) // success
BlinkenLib/BlinkenDeviceOutput.c 215) return 1;
BlinkenLib/BlinkenDeviceOutput.c 216) }
BlinkenLib/BlinkenDeviceOutput.c 217)
BlinkenLib/BlinkenDeviceOutput.c 218) // output movie
BlinkenLib/BlinkenDeviceOutput.c 219) // dev_fd may be -1 for not doing anything with device
BlinkenLib/BlinkenDeviceOutput.c 220) // returns error code (not for device-errors, 0 for success)
BlinkenLib/BlinkenDeviceOutput.c 221) static int out_movie(stBlinkenMovie *pMovie, int dev_fd,
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 222) unsigned int format_change, unsigned int format_height,
tools/BlinkenDeviceOutput.c 223) unsigned int format_width, unsigned int format_channels,
tools/BlinkenDeviceOutput.c 224) unsigned int format_colors, etBlinkenProto proto) {
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 225) int frame_cnt, frame;
BlinkenLib/BlinkenDeviceOutput.c 226) stBlinkenFrame *pFrame;
BlinkenLib/BlinkenDeviceOutput.c 227) fd_set readFds, errFds;
BlinkenLib/BlinkenDeviceOutput.c 228) char buffer[65536]; // 64kB is more than maximum UDP size
BlinkenLib/BlinkenDeviceOutput.c 229) int maxFd, len, dev_eof, duration, borrow, ret;
BlinkenLib/BlinkenDeviceOutput.c 230) struct timeval next, cur, timeout;
BlinkenLib/BlinkenDeviceOutput.c 231)
BlinkenLib/BlinkenDeviceOutput.c 232) dev_eof = 0;
BlinkenLib/BlinkenDeviceOutput.c 233) gettimeofday(&next, NULL);
BlinkenLib/BlinkenDeviceOutput.c 234)
BlinkenLib/BlinkenDeviceOutput.c 235) frame_cnt = BlinkenMovieGetFrameCnt(pMovie);
BlinkenLib/BlinkenDeviceOutput.c 236) for (frame = 0; frame < frame_cnt; ++frame) {
BlinkenLib/BlinkenDeviceOutput.c 237) pFrame = BlinkenMovieGetFrame(pMovie, frame);
BlinkenLib/BlinkenDeviceOutput.c 238) if (pFrame == NULL)
BlinkenLib/BlinkenDeviceOutput.c 239) continue;
BlinkenLib/BlinkenDeviceOutput.c 240) pFrame = BlinkenFrameClone(pFrame); // clone frame, will be changed
BlinkenLib/BlinkenDeviceOutput.c 241) if (pFrame == NULL)
BlinkenLib/BlinkenDeviceOutput.c 242) continue;
BlinkenLib/BlinkenDeviceOutput.c 243) duration = BlinkenFrameGetDuration(pFrame);
BlinkenLib/BlinkenDeviceOutput.c 244) next.tv_usec += (duration % 1000) * 1000;
BlinkenLib/BlinkenDeviceOutput.c 245) next.tv_sec += duration / 1000;
BlinkenLib/BlinkenDeviceOutput.c 246) if (next.tv_usec >= 1000000) {
BlinkenLib/BlinkenDeviceOutput.c 247) next.tv_usec -= 1000000;
BlinkenLib/BlinkenDeviceOutput.c 248) next.tv_sec += 1;
BlinkenLib/BlinkenDeviceOutput.c 249) }
BlinkenLib/BlinkenDeviceOutput.c 250)
BlinkenLib/BlinkenDeviceOutput.c 251) // change format
BlinkenLib/BlinkenDeviceOutput.c 252) if (format_change)
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 253) BlinkenFrameResize(pFrame, format_height, format_width, format_channels,
tools/BlinkenDeviceOutput.c 254) format_colors - 1);
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 255)
BlinkenLib/BlinkenDeviceOutput.c 256) // create output data from frame
BlinkenLib/BlinkenDeviceOutput.c 257) len = BlinkenFrameToNetwork(pFrame, proto, buffer, sizeof(buffer));
BlinkenLib/BlinkenDeviceOutput.c 258)
BlinkenLib/BlinkenDeviceOutput.c 259) // free frame
BlinkenLib/BlinkenDeviceOutput.c 260) BlinkenFrameFree(pFrame);
BlinkenLib/BlinkenDeviceOutput.c 261)
BlinkenLib/BlinkenDeviceOutput.c 262) // output data to device
BlinkenLib/BlinkenDeviceOutput.c 263) if (dev_fd != -1 && len > 0) {
BlinkenLib/BlinkenDeviceOutput.c 264) if (write(dev_fd, buffer, len) != len) {
BlinkenLib/BlinkenDeviceOutput.c 265) printf("error writing to device\n");
BlinkenLib/BlinkenDeviceOutput.c 266) break;
BlinkenLib/BlinkenDeviceOutput.c 267) }
BlinkenLib/BlinkenDeviceOutput.c 268) }
BlinkenLib/BlinkenDeviceOutput.c 269)
BlinkenLib/BlinkenDeviceOutput.c 270) // check for data from device or error on device
BlinkenLib/BlinkenDeviceOutput.c 271) do {
BlinkenLib/BlinkenDeviceOutput.c 272)
BlinkenLib/BlinkenDeviceOutput.c 273) FD_ZERO(&readFds);
BlinkenLib/BlinkenDeviceOutput.c 274) if (dev_fd != -1 && !dev_eof)
BlinkenLib/BlinkenDeviceOutput.c 275) FD_SET(dev_fd, &readFds);
BlinkenLib/BlinkenDeviceOutput.c 276) FD_ZERO(&errFds);
BlinkenLib/BlinkenDeviceOutput.c 277) if (dev_fd != -1)
BlinkenLib/BlinkenDeviceOutput.c 278) FD_SET(dev_fd, &errFds);
BlinkenLib/BlinkenDeviceOutput.c 279) maxFd = 0;
BlinkenLib/BlinkenDeviceOutput.c 280) if (dev_fd != -1 && dev_fd > maxFd)
BlinkenLib/BlinkenDeviceOutput.c 281) maxFd = dev_fd;
BlinkenLib/BlinkenDeviceOutput.c 282) gettimeofday(&cur, NULL);
BlinkenLib/BlinkenDeviceOutput.c 283) if (next.tv_usec >= cur.tv_usec) {
BlinkenLib/BlinkenDeviceOutput.c 284) timeout.tv_usec = next.tv_usec - cur.tv_usec;
BlinkenLib/BlinkenDeviceOutput.c 285) borrow = 0;
BlinkenLib/BlinkenDeviceOutput.c 286) } else {
BlinkenLib/BlinkenDeviceOutput.c 287) borrow = 1;
BlinkenLib/BlinkenDeviceOutput.c 288) timeout.tv_usec = 1000000 + next.tv_usec - cur.tv_usec;
BlinkenLib/BlinkenDeviceOutput.c 289) }
BlinkenLib/BlinkenDeviceOutput.c 290) if (next.tv_sec >= cur.tv_sec + borrow) {
BlinkenLib/BlinkenDeviceOutput.c 291) timeout.tv_sec = next.tv_sec - (cur.tv_sec + borrow);
BlinkenLib/BlinkenDeviceOutput.c 292) } else {
BlinkenLib/BlinkenDeviceOutput.c 293) timeout.tv_usec = 0;
BlinkenLib/BlinkenDeviceOutput.c 294) timeout.tv_sec = 0;
BlinkenLib/BlinkenDeviceOutput.c 295) }
BlinkenLib/BlinkenDeviceOutput.c 296) ret = select(maxFd + 1, &readFds, NULL, &errFds, &timeout);
BlinkenLib/BlinkenDeviceOutput.c 297) if (ret < 0) { // error
BlinkenLib/BlinkenDeviceOutput.c 298) printf("error during select: %s\n", strerror(errno));
BlinkenLib/BlinkenDeviceOutput.c 299) BlinkenFrameFree(pFrame);
BlinkenLib/BlinkenDeviceOutput.c 300) break;
BlinkenLib/BlinkenDeviceOutput.c 301) }
BlinkenLib/BlinkenDeviceOutput.c 302) // error on device
BlinkenLib/BlinkenDeviceOutput.c 303) if (dev_fd != -1 && FD_ISSET(dev_fd, &errFds)) {
BlinkenLib/BlinkenDeviceOutput.c 304) printf("error on device\n");
BlinkenLib/BlinkenDeviceOutput.c 305) BlinkenFrameFree(pFrame);
BlinkenLib/BlinkenDeviceOutput.c 306) break;
BlinkenLib/BlinkenDeviceOutput.c 307) }
BlinkenLib/BlinkenDeviceOutput.c 308)
BlinkenLib/BlinkenDeviceOutput.c 309) // received data from device
BlinkenLib/BlinkenDeviceOutput.c 310) if (dev_fd != -1 && FD_ISSET(dev_fd, &readFds)) {
BlinkenLib/BlinkenDeviceOutput.c 311) // read data
BlinkenLib/BlinkenDeviceOutput.c 312) len = read(dev_fd, buffer, sizeof(buffer));
BlinkenLib/BlinkenDeviceOutput.c 313) if (len < 0) {
BlinkenLib/BlinkenDeviceOutput.c 314) printf("error reading from device\n");
BlinkenLib/BlinkenDeviceOutput.c 315) break;
BlinkenLib/BlinkenDeviceOutput.c 316) }
BlinkenLib/BlinkenDeviceOutput.c 317) if (len == 0)
BlinkenLib/BlinkenDeviceOutput.c 318) dev_eof = 1;
BlinkenLib/BlinkenDeviceOutput.c 319) }
BlinkenLib/BlinkenDeviceOutput.c 320)
BlinkenLib/BlinkenDeviceOutput.c 321) } while (ret != 0);
BlinkenLib/BlinkenDeviceOutput.c 322)
BlinkenLib/BlinkenDeviceOutput.c 323) } // for frame
BlinkenLib/BlinkenDeviceOutput.c 324)
BlinkenLib/BlinkenDeviceOutput.c 325) return 0;
BlinkenLib/BlinkenDeviceOutput.c 326) }
BlinkenLib/BlinkenDeviceOutput.c 327)
BlinkenLib/BlinkenDeviceOutput.c 328) // open device and output movie
BlinkenLib/BlinkenDeviceOutput.c 329) // returns error code (not for device-errors, 0 for success)
BlinkenLib/BlinkenDeviceOutput.c 330) static int open_and_output(stBlinkenMovie *pMovie, char *device,
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 331) int serial_settings_change, int serial_settings,
tools/BlinkenDeviceOutput.c 332) int serial_speed, unsigned int format_change,
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 333) unsigned int format_height,
BlinkenLib/BlinkenDeviceOutput.c 334) unsigned int format_width,
BlinkenLib/BlinkenDeviceOutput.c 335) unsigned int format_channels,
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 336) unsigned int format_colors, etBlinkenProto proto) {
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 337) int dev_fd, err;
BlinkenLib/BlinkenDeviceOutput.c 338) char txt[64];
BlinkenLib/BlinkenDeviceOutput.c 339)
BlinkenLib/BlinkenDeviceOutput.c 340) printf("outputting movie to \"%s\"...\n", device);
BlinkenLib/BlinkenDeviceOutput.c 341)
BlinkenLib/BlinkenDeviceOutput.c 342) // open device
BlinkenLib/BlinkenDeviceOutput.c 343) dev_fd = open(device, O_RDWR | O_NOCTTY | O_NONBLOCK);
BlinkenLib/BlinkenDeviceOutput.c 344) if (dev_fd == -1) {
BlinkenLib/BlinkenDeviceOutput.c 345) printf("could not open \"%s\": error: %s\n", device, strerror(errno));
BlinkenLib/BlinkenDeviceOutput.c 346) return 1;
BlinkenLib/BlinkenDeviceOutput.c 347) }
BlinkenLib/BlinkenDeviceOutput.c 348) // setup serial port
BlinkenLib/BlinkenDeviceOutput.c 349) if (serial_settings_change) {
BlinkenLib/BlinkenDeviceOutput.c 350) if (!serial_settings_set(dev_fd, serial_settings, serial_speed)) {
BlinkenLib/BlinkenDeviceOutput.c 351) serial_settings_to_str(serial_settings, txt, sizeof(txt));
BlinkenLib/BlinkenDeviceOutput.c 352) printf("could not set serial port to \"%s\"\n", txt);
BlinkenLib/BlinkenDeviceOutput.c 353) close(dev_fd);
BlinkenLib/BlinkenDeviceOutput.c 354) return 1;
BlinkenLib/BlinkenDeviceOutput.c 355) }
BlinkenLib/BlinkenDeviceOutput.c 356) }
BlinkenLib/BlinkenDeviceOutput.c 357) // output movie to device
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 358) err = out_movie(pMovie, dev_fd, format_change, format_height, format_width,
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 359) format_channels, format_colors, proto);
BlinkenLib/BlinkenDeviceOutput.c 360)
BlinkenLib/BlinkenDeviceOutput.c 361) // close device
BlinkenLib/BlinkenDeviceOutput.c 362) close(dev_fd);
BlinkenLib/BlinkenDeviceOutput.c 363)
BlinkenLib/BlinkenDeviceOutput.c 364) printf("output to device finished...\n");
BlinkenLib/BlinkenDeviceOutput.c 365)
BlinkenLib/BlinkenDeviceOutput.c 366) return err;
BlinkenLib/BlinkenDeviceOutput.c 367) }
BlinkenLib/BlinkenDeviceOutput.c 368)
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 369) int main(int argCnt, char **args) {
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 370) int i, serial_settings, serial_speed;
BlinkenLib/BlinkenDeviceOutput.c 371) char *device;
BlinkenLib/BlinkenDeviceOutput.c 372) etBlinkenProto proto;
BlinkenLib/BlinkenDeviceOutput.c 373) unsigned int format_change, format_height, format_width, format_channels,
BlinkenLib/BlinkenDeviceOutput.c 374) format_colors;
BlinkenLib/BlinkenDeviceOutput.c 375) unsigned int height, width, channels, colors;
BlinkenLib/BlinkenDeviceOutput.c 376) unsigned int send_cnt, loop_cnt, loop, ui;
BlinkenLib/BlinkenDeviceOutput.c 377) int serial_settings_change;
BlinkenLib/BlinkenDeviceOutput.c 378) stBlinkenMovie *pMovie;
BlinkenLib/BlinkenDeviceOutput.c 379)
BlinkenLib/BlinkenDeviceOutput.c 380) // print info
BlinkenLib/BlinkenDeviceOutput.c 381) printf("BlinkenLib - BlinkenDeviceOutput\n"
BlinkenLib/BlinkenDeviceOutput.c 382) "version %d.%d.%d\n"
BlinkenLib/BlinkenDeviceOutput.c 383) "config " BLINKENLIB_CONFIG "\n"
BlinkenLib/BlinkenDeviceOutput.c 384) "Copyright 2004-2014 Stefan Schuermans <stefan@schuermans.info>\n"
BlinkenLib/BlinkenDeviceOutput.c 385) "Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html\n"
BlinkenLib/BlinkenDeviceOutput.c 386) "a blinkenarea.org project\n\n",
BlinkenLib/BlinkenDeviceOutput.c 387) BLINKENLIB_VERSION_MAJOR, BLINKENLIB_VERSION_MINOR,
BlinkenLib/BlinkenDeviceOutput.c 388) BLINKENLIB_VERSION_REVISION);
BlinkenLib/BlinkenDeviceOutput.c 389)
BlinkenLib/BlinkenDeviceOutput.c 390) // print syntax
BlinkenLib/BlinkenDeviceOutput.c 391) if (argCnt <= 1) {
BlinkenLib/BlinkenDeviceOutput.c 392) #ifdef BLINKENLIB_CFG_MNG
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 393) #define MNGEXT ", *.mng"
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 394) #else
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 395) #define MNGEXT
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 396) #endif
BlinkenLib/BlinkenDeviceOutput.c 397) #ifdef BLINKENLIB_CFG_GIF
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 398) #define GIFEXT ", *.gif"
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 399) #else
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 400) #define GIFEXT
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 401) #endif
BlinkenLib/BlinkenDeviceOutput.c 402) printf("syntax: %s <parameter> [...]\n\n"
BlinkenLib/BlinkenDeviceOutput.c 403) "parameters:\n"
BlinkenLib/BlinkenDeviceOutput.c 404) " -p [BLP|EBLP|MCUF]\n"
BlinkenLib/BlinkenDeviceOutput.c 405) " protocol to output frames in (defaults to MCUF)\n"
BlinkenLib/BlinkenDeviceOutput.c 406) " -f <width>x<height>-<channels>/<colors>\n"
BlinkenLib/BlinkenDeviceOutput.c 407) " format to output frames in (defaults to no change)\n"
BlinkenLib/BlinkenDeviceOutput.c 408) " -d <device>\n"
BlinkenLib/BlinkenDeviceOutput.c 409) " device to output frames to (defaults to \"/dev/null\")\n"
BlinkenLib/BlinkenDeviceOutput.c 410) " -s <baud-rate>,<parity>,<data-bits>,<stop-bits>\n"
BlinkenLib/BlinkenDeviceOutput.c 411) " settings to use for serial devices (defaults to no change)\n"
BlinkenLib/BlinkenDeviceOutput.c 412) " -n <number>\n"
BlinkenLib/BlinkenDeviceOutput.c 413) " set number of times to send movies (defaults to 1)\n"
BlinkenLib/BlinkenDeviceOutput.c 414) " -i <file>\n"
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 415) " read movie from file (*.blm, *.bmm, *.bml, *.bbm" MNGEXT GIFEXT
tools/BlinkenDeviceOutput.c 416) ") and send it\n"
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 417) " -l <number>\n"
BlinkenLib/BlinkenDeviceOutput.c 418) " loop number of times (defaults to 1, use 0 for forever)\n\n",
BlinkenLib/BlinkenDeviceOutput.c 419) args[0]);
BlinkenLib/BlinkenDeviceOutput.c 420) return 0;
BlinkenLib/BlinkenDeviceOutput.c 421) }
BlinkenLib/BlinkenDeviceOutput.c 422)
BlinkenLib/BlinkenDeviceOutput.c 423) // loop
BlinkenLib/BlinkenDeviceOutput.c 424) loop_cnt = 1;
BlinkenLib/BlinkenDeviceOutput.c 425) for (loop = 0; loop < loop_cnt || loop_cnt == 0; loop++) {
BlinkenLib/BlinkenDeviceOutput.c 426)
BlinkenLib/BlinkenDeviceOutput.c 427) // print loop message
BlinkenLib/BlinkenDeviceOutput.c 428) if (loop_cnt > 1)
BlinkenLib/BlinkenDeviceOutput.c 429) printf("--- loop %u/%u ---\n", loop + 1, loop_cnt);
BlinkenLib/BlinkenDeviceOutput.c 430) if (loop_cnt == 0)
BlinkenLib/BlinkenDeviceOutput.c 431) printf("--- loop %u ---\n", loop + 1);
BlinkenLib/BlinkenDeviceOutput.c 432)
BlinkenLib/BlinkenDeviceOutput.c 433) // process parameters
BlinkenLib/BlinkenDeviceOutput.c 434) proto = BlinkenProtoMcuf;
BlinkenLib/BlinkenDeviceOutput.c 435) format_change = 0;
BlinkenLib/BlinkenDeviceOutput.c 436) format_height = 0;
BlinkenLib/BlinkenDeviceOutput.c 437) format_width = 0;
BlinkenLib/BlinkenDeviceOutput.c 438) format_channels = 0;
BlinkenLib/BlinkenDeviceOutput.c 439) format_colors = 0;
BlinkenLib/BlinkenDeviceOutput.c 440) device = "/dev/null";
BlinkenLib/BlinkenDeviceOutput.c 441) serial_settings = 0;
BlinkenLib/BlinkenDeviceOutput.c 442) serial_speed = 0;
BlinkenLib/BlinkenDeviceOutput.c 443) serial_settings_change = 0;
BlinkenLib/BlinkenDeviceOutput.c 444) send_cnt = 1;
BlinkenLib/BlinkenDeviceOutput.c 445) for (i = 1; i < argCnt; i++) {
BlinkenLib/BlinkenDeviceOutput.c 446)
BlinkenLib/BlinkenDeviceOutput.c 447) // protocol to output frames in
BlinkenLib/BlinkenDeviceOutput.c 448) if (strcmp(args[i], "-p") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 449) if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 450) i++;
BlinkenLib/BlinkenDeviceOutput.c 451) if (strcasecmp(args[i], "BLP") == 0)
BlinkenLib/BlinkenDeviceOutput.c 452) proto = BlinkenProtoBlp;
BlinkenLib/BlinkenDeviceOutput.c 453) else if (strcasecmp(args[i], "EBLP") == 0)
BlinkenLib/BlinkenDeviceOutput.c 454) proto = BlinkenProtoEblp;
BlinkenLib/BlinkenDeviceOutput.c 455) else if (strcasecmp(args[i], "MCUF") == 0)
BlinkenLib/BlinkenDeviceOutput.c 456) proto = BlinkenProtoMcuf;
BlinkenLib/BlinkenDeviceOutput.c 457) else
BlinkenLib/BlinkenDeviceOutput.c 458) printf("unknown protocol \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 459) } else
BlinkenLib/BlinkenDeviceOutput.c 460) printf("missing protocol for \"-p\"\n");
BlinkenLib/BlinkenDeviceOutput.c 461) }
BlinkenLib/BlinkenDeviceOutput.c 462) // format to output frames in
BlinkenLib/BlinkenDeviceOutput.c 463) else if (strcmp(args[i], "-f") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 464) if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 465) i++;
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 466) if (sscanf(args[i], "%ux%u-%u/%u", &width, &height, &channels,
tools/BlinkenDeviceOutput.c 467) &colors) == 4 &&
tools/BlinkenDeviceOutput.c 468) width > 0 && width < 1000 && height > 0 && height < 1000 &&
tools/BlinkenDeviceOutput.c 469) channels > 0 && channels < 20 && colors > 1 && colors <= 256) {
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 470) format_change = 1;
BlinkenLib/BlinkenDeviceOutput.c 471) format_height = height;
BlinkenLib/BlinkenDeviceOutput.c 472) format_width = width;
BlinkenLib/BlinkenDeviceOutput.c 473) format_channels = channels;
BlinkenLib/BlinkenDeviceOutput.c 474) format_colors = colors;
BlinkenLib/BlinkenDeviceOutput.c 475) } else
BlinkenLib/BlinkenDeviceOutput.c 476) printf("invalid frame format \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 477) } else
BlinkenLib/BlinkenDeviceOutput.c 478) printf("missing frame format for \"-r\"\n");
BlinkenLib/BlinkenDeviceOutput.c 479) }
BlinkenLib/BlinkenDeviceOutput.c 480) // device to output frames to
BlinkenLib/BlinkenDeviceOutput.c 481) else if (strcmp(args[i], "-d") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 482) if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 483) i++;
BlinkenLib/BlinkenDeviceOutput.c 484) device = args[i];
BlinkenLib/BlinkenDeviceOutput.c 485) } else
BlinkenLib/BlinkenDeviceOutput.c 486) printf("missing device name for \"-d\"\n");
BlinkenLib/BlinkenDeviceOutput.c 487) }
BlinkenLib/BlinkenDeviceOutput.c 488) // settings for serial output devices
BlinkenLib/BlinkenDeviceOutput.c 489) else if (strcmp(args[i], "-s") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 490) if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 491) i++;
BlinkenLib/BlinkenDeviceOutput.c 492) if (serial_settings_parse(args[i], &serial_settings, &serial_speed)) {
BlinkenLib/BlinkenDeviceOutput.c 493) serial_settings_change = 1;
BlinkenLib/BlinkenDeviceOutput.c 494) } else
BlinkenLib/BlinkenDeviceOutput.c 495) printf("invalid serial settings \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 496) } else
BlinkenLib/BlinkenDeviceOutput.c 497) printf("missing serial settings for \"-s\"\n");
BlinkenLib/BlinkenDeviceOutput.c 498) }
BlinkenLib/BlinkenDeviceOutput.c 499) // number of times to send movies
BlinkenLib/BlinkenDeviceOutput.c 500) else if (strcmp(args[i], "-n") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 501) if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 502) i++;
BlinkenLib/BlinkenDeviceOutput.c 503) if (sscanf(args[i], "%u", &ui) == 1 && ui > 0)
BlinkenLib/BlinkenDeviceOutput.c 504) send_cnt = ui;
BlinkenLib/BlinkenDeviceOutput.c 505) else
BlinkenLib/BlinkenDeviceOutput.c 506) printf("invalid number \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 507) } else
BlinkenLib/BlinkenDeviceOutput.c 508) printf("missing number for \"-n\"\n");
BlinkenLib/BlinkenDeviceOutput.c 509) }
BlinkenLib/BlinkenDeviceOutput.c 510) // read movie and send it
BlinkenLib/BlinkenDeviceOutput.c 511) else if (strcmp(args[i], "-i") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 512) if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 513) i++;
BlinkenLib/BlinkenDeviceOutput.c 514) pMovie = BlinkenMovieLoad(args[i]);
BlinkenLib/BlinkenDeviceOutput.c 515) if (pMovie == NULL)
BlinkenLib/BlinkenDeviceOutput.c 516) printf("could not read movie \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 517) else {
BlinkenLib/BlinkenDeviceOutput.c 518) printf("movie \"%s\" read\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 519) for (ui = 0; ui < send_cnt; ui++) {
BlinkenLib/BlinkenDeviceOutput.c 520) printf("outputting movie \"%s\" (%u/%u)...\n", args[i], ui + 1,
BlinkenLib/BlinkenDeviceOutput.c 521) send_cnt);
BlinkenLib/BlinkenDeviceOutput.c 522) if (open_and_output(pMovie, device, serial_settings_change,
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 523) serial_settings, serial_speed, format_change,
tools/BlinkenDeviceOutput.c 524) format_height, format_width, format_channels,
tools/BlinkenDeviceOutput.c 525) format_colors, proto) == 0) {
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 526) printf("movie \"%s\" output successful\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 527) } else {
BlinkenLib/BlinkenDeviceOutput.c 528) printf("movie \"%s\" output failed\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 529) break;
BlinkenLib/BlinkenDeviceOutput.c 530) }
BlinkenLib/BlinkenDeviceOutput.c 531) }
BlinkenLib/BlinkenDeviceOutput.c 532) BlinkenMovieFree(pMovie);
BlinkenLib/BlinkenDeviceOutput.c 533) }
BlinkenLib/BlinkenDeviceOutput.c 534) } else
BlinkenLib/BlinkenDeviceOutput.c 535) printf("missing input filename for \"-i\"\n");
BlinkenLib/BlinkenDeviceOutput.c 536) }
BlinkenLib/BlinkenDeviceOutput.c 537) // number of times to loop
BlinkenLib/BlinkenDeviceOutput.c 538) else if (strcmp(args[i], "-l") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 539) if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 540) i++;
BlinkenLib/BlinkenDeviceOutput.c 541) if (sscanf(args[i], "%u", &ui) == 1)
BlinkenLib/BlinkenDeviceOutput.c 542) loop_cnt = ui;
BlinkenLib/BlinkenDeviceOutput.c 543) else
BlinkenLib/BlinkenDeviceOutput.c 544) printf("invalid number \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 545) } else
BlinkenLib/BlinkenDeviceOutput.c 546) printf("missing number for \"-l\"\n");
BlinkenLib/BlinkenDeviceOutput.c 547) }
BlinkenLib/BlinkenDeviceOutput.c 548) // unknown parameter
BlinkenLib/BlinkenDeviceOutput.c 549) else
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 550) printf(
tools/BlinkenDeviceOutput.c 551) "unknown parameter \"%s\", call without parameters to get help\n",
tools/BlinkenDeviceOutput.c 552) args[i]);
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 553)
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 554) } // for( i ...
|
initial version of BlinkenD...
Stefan Schuermans authored 7 years ago
|
BlinkenLib/BlinkenDeviceOutput.c 555)
|
format
Stefan Schuermans authored 1 year ago
|
tools/BlinkenDeviceOutput.c 556) } // for( loop ...
|