Esempio n. 1
0
int main(int argc, char **argv)
{
  // Make sure to initialize
  struct main_loop_arg marg = {
    .usb_present = 0,
    .script_cmds_file = NULL
  };
  pthread_t main_loop_t;
  usb_init();

  // If the user passed the filename of the 'script' to execute, get it
  if (argc > 1 && argv[1])
  {
    marg.script_cmds_file = argv[1];
  }

  if (!OpenProxmark(1)) {
    fprintf(stderr,"PROXMARK3: NOT FOUND!\n");
    marg.usb_present = 0;
    offline = 1;
  } else {
    marg.usb_present = 1;
    offline = 0;
  }

  pthread_create(&main_loop_t, NULL, &main_loop, &marg);
  InitGraphics(argc, argv);

  MainGraphics();

  pthread_join(main_loop_t, NULL);

  if (marg.usb_present == 1) {
    CloseProxmark();
  }
  return 0;
}
Esempio n. 2
0
int main(int argc, char* argv[]) {
	srand(time(0));
  
	if (argc < 2) {
		printf("syntax: %s <port>\n\n",argv[0]);
		printf("\tLinux example:'%s /dev/ttyACM0'\n\n", argv[0]);
		printf("help:   %s -h\n\n", argv[0]);
		printf("\tDump all interactive help at once\n");
		printf("markdown:   %s -m\n\n", argv[0]);
		printf("\tDump all interactive help at once in markdown syntax\n");
		return 1;
	}
	if (strcmp(argv[1], "-h") == 0) {
		printf("syntax: %s <port>\n\n",argv[0]);
		printf("\tLinux example:'%s /dev/ttyACM0'\n\n", argv[0]);
		dumpAllHelp(0);
		return 0;
	}
	if (strcmp(argv[1], "-m") == 0) {
		dumpAllHelp(1);
		return 0;
	}
	// Make sure to initialize
	struct main_loop_arg marg = {
		.usb_present = 0,
		.script_cmds_file = NULL
	};
	pthread_t main_loop_t;

/*
  usb_init();
  if (!OpenProxmark(1)) {
    fprintf(stderr,"PROXMARK3: NOT FOUND!\n");
    marg.usb_present = 0;
    offline = 1;
  } else {
    marg.usb_present = 1;
    offline = 0;
  }
*/
  
	sp = uart_open(argv[1]);
	if (sp == INVALID_SERIAL_PORT) {
		printf("ERROR: invalid serial port\n");
		marg.usb_present = 0;
		offline = 1;
	} else if (sp == CLAIMED_SERIAL_PORT) {
		printf("ERROR: serial port is claimed by another process\n");
		marg.usb_present = 0;
		offline = 1;
	} else {
		marg.usb_present = 1;
		offline = 0;
	}

	// If the user passed the filename of the 'script' to execute, get it
	if (argc > 2 && argv[2]) {
		if (argv[2][0] == 'f' &&  //buzzy, if a word 'flush' passed, flush the output after every log entry.
			argv[2][1] == 'l' &&
			argv[2][2] == 'u' &&
			argv[2][3] == 's' &&
			argv[2][4] == 'h')
		{
			printf("Output will be flushed after every print.\n");
			flushAfterWrite = 1;
		}
		else
		marg.script_cmds_file = argv[2];
	}

	// create a mutex to avoid interlacing print commands from our different threads
	pthread_mutex_init(&print_lock, NULL);

	pthread_create(&main_loop_t, NULL, &main_loop, &marg);
	InitGraphics(argc, argv);

	MainGraphics();

	pthread_join(main_loop_t, NULL);

//  if (marg.usb_present == 1) {
//    CloseProxmark();
//  }

	// Clean up the port
	uart_close(sp);
  
	// clean up mutex
	pthread_mutex_destroy(&print_lock);
  
  return 0;
}