Esempio n. 1
0
boolean Camera::begin(uint32_t baud) {
	hwSerial->begin(38400);
	delay(15);
	if (baud != 38400) {
		changeBaudRate();
		hwSerial->begin(115200);
		delay(15);
		return true;
	}
	return reset();
}
Esempio n. 2
0
// Load settings into gps module
bool MAXM8interface::config() {
	// Check to see if GPS is configured by sending request for data
	Serial3.begin(115200);
	if (sendUntilAck(g::ubx_cfg_ant, 8))  {
		//Serial.println("GPS already configured.");
		return true; // Good to go!
	}
	
	//Serial.println("GPS is not configured.");
	// GPS did not respond at pre-configured baud rate, so try default
	Serial3.begin(9600);
	if (!sendUntilAck(g::ubx_cfg_ant, 8)) {
		//Serial.println("GPS not responding.");
		return false; // Comm error?
	}

	// GPS responded at default comm rate, so it needs configuring
	if (!changeBaudRate()) {
		//Serial.println("GPS baud rate could not be configured.");
		return false;
	}
	
	int cfgFailure = 0;

	// Start sending settings en masse
	if (!sendUntilAck(g::ubx_cfg_gnss,			48)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_itfm,			12)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_logfilt, 	16)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_nav5,			40)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_navx5, 		44)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_nmea,			24)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_odo,				24)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_pm2,				48)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_rate,			10)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_rinv,			28)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_sbas,			12)) cfgFailure++;
	if (!sendUntilAck(g::ubx_cfg_usb,			 112)) cfgFailure++;
	for (int i = 0; i < 3; i++) {
		if (!sendUntilAck(g::ubx_cfg_inf[i],	14))	cfgFailure++;
	}
	for (int i = 0; i < 50; i++) {
		if (!sendUntilAck(g::ubx_cfg_msg[i],	12))	cfgFailure++;
	}
	for (int i = 0; i < 4; i++) {
		if (i != 1) // UART1 cfg already sent and confirmed
			if (!sendUntilAck(g::ubx_cfg_prt[i], 24)) cfgFailure++;
	}
	for (int i = 0; i < 2; i++) {
		if (!sendUntilAck(g::ubx_cfg_tp5[i],	 36))	cfgFailure++;
	}

	if (cfgFailure == 0) return true;
	else  return false;
}