Пример #1
0
void lirc_send(const char *key) {
  if (key != NULL) {
    last_key = key;
    if (key != brake)
      last = millis();
  }
  if (last + 2000 < millis())
    return;
  if (last_key != NULL) {
    printf("%s\n", last_key);
    if (lirc < 0)
      lirc = lirc_get_local_socket("/var/run/lirc/lircd", 0);
    if (lirc < 0)
      printf("Could not init lirc.\n");
    else if (lirc_send_one(lirc, "duplo", last_key) == -1) {
      close(lirc);
      lirc = -1;
    }
  }
}
Пример #2
0
int main(int argc, char* argv[])
{
	int fd_io;
	int fd_cmd;
	const char* socketpath;
	char path[128];
	int c;

	while ((c = getopt_long(argc, argv, "hl:p:t:v", opts, NULL)) != EOF) {
		switch (c) {
		case 'l':
			opt_lircrc = optarg;
			break;
		case 'p':
			opt_prog = optarg;
			break;
		case 't':
			opt_testdata = optarg;
			break;
		case 'h':
			puts(USAGE);
			return EXIT_SUCCESS;
		case 'v':
			printf("%s\n", "irtestcase " VERSION);
			return EXIT_SUCCESS;
		case '?':
			fprintf(stderr, "unrecognized option: -%c\n", optopt);
			fputs("Try `irtestcase --help'.\n", stderr);
			return EXIT_FAILURE;
		}
	}
	if (argc > optind + 1) {
		fputs("irtestcase: Too many arguments (max one).\n", stderr);
		fputs("Try `irtestcase --help'.\n", stderr);
		return EXIT_FAILURE;
	}
	if (strcmp(opt_prog, DEFAULT_PROG) != 0 && opt_lircrc == NULL) {
		fputs("--prog requires --lircrc/-l. Giving up.\n", stderr);
		return EXIT_FAILURE;
	}
	if (opt_lircrc != NULL && strcmp(opt_prog, DEFAULT_PROG) == 0) {
		fputs("--lircrc requires --prog/-p. Giving up.\n", stderr);
		return EXIT_FAILURE;
	}

	init_testdir();
	fd_cmd = lirc_get_local_socket(NULL, 1);
	if (fd_cmd < 0) {
		fputs("Cannot open lircd socket.\n", stderr);
		exit(3);
	}
	set_devicelog(fd_cmd, DEVICE_LOG);
	if (opt_testdata != NULL)
		send_later(fd_cmd, opt_testdata);

	lirc_log_get_clientlog("irtestcase", path, sizeof(path));
	lirc_log_set_file(path);
	lirc_log_open("irtestcase", 1, LIRC_NOTICE);

	socketpath = argc == optind + 1 ? argv[optind] : LIRCD;
	setenv("LIRC_SOCKET_PATH", socketpath, 0);
	fd_io = lirc_init(opt_prog, 1);
	if (fd_io < 0) {
		fputs("Cannot run lirc_init.\n", stderr);
		exit(3);
	}

	return irtestcase(fd_io, fd_cmd);
}