Пример #1
0
int main(int argc, char *argv [])
try
{
	int id_robot;
	if (argc < 3) {
		Log::crit(
			"Insuficientes parametros para scanner, se esperaba (directorio_de_trabajo, config_file, id)\n");
		return (1);
	}

	id_robot = atoi(argv [3]); // de 1 a N

	if (id_robot < 1) {
		Log::crit("ID de robot_scanner incorrecto %d\n", id_robot);
		exit(1);
	}

	CintaScanner<Equipaje> cinta_scanner(std::string("escaner").append(intToString(id_robot)).c_str(), argv [1],
		id_robot, id_robot);
	ApiScanner api_escaner_cinta_central(argv [1], argv [2], id_robot);

	Log::info("Iniciando scanner(%s), %s\n", argv [3], argv [4]);

	for (;;) {
		Log::info("Tomando equipaje de Cinta Scanner\n");
		Equipaje equipaje = cinta_scanner.sacar_equipaje();
		Log::info("Equipaje (%s) extraido de Cinta Scanner\n", equipaje.toString().c_str());

		Log::info("Escaneando equipaje %s\n", equipaje.toString().c_str());
		equipaje.set_sospechoso((rand() % CANT_SOSPECHOSOS) == 0);

		sleep(rand() % SLEEP_ROBOT_SCANNER);

		if (equipaje.es_sospechoso()) {
			Log::info("Equipaje sospechoso (%s)\n", equipaje.toString().c_str());
		} else {
			Log::info("Equipaje limpio (%s)\n", equipaje.toString().c_str());
		}

		Log::info("Coloco Equipaje (%s) en Cinta Principal\n", equipaje.toString().c_str());
		api_escaner_cinta_central.colocar_equipaje_en_cinta_principal(equipaje);
		Log::info("Equipaje (%s) colocado en Cinta Principal\n", equipaje.toString().c_str());
	}

}
catch (const std::exception &e) {
	std::cerr << e.what() << std::endl;
	Log::crit("%s", e.what());
}
catch (...) {
	Log::crit("Critical error. Unknow exception at the end of the 'main' function.");
}