NavModeAutoTest () { system("gpsd -n -S 3001 /dev/ttyS4 /dev/ttyACM0"); mode = NavModeBase::factory(me, NavModeEnum::AUTONOMOUS); rcchannels->at(Conf::get()->RCchannelMap().at("auto")) = Conf::get()->RClimits().at("min"); start = std::chrono::system_clock::now(); me.health = &health; health.setADCdevice(&adc); me.rudder = &rudder; me.throttle = &throttle; me.rc = &rc; me.adc = &adc; me.gps = &gps; me.orient = &orient; me.relays = RelayMap::instance(); adc.init(); me.relays->init(); harness.accessADC(&adc, &adcraw, &adcvalid); harness.accessRC(&rc, NULL, NULL, &rcfailsafe, &rcvalid, &rcchannels, NULL, NULL, NULL); harness.accessGPSd(&gps, &fix, NULL); harness.accessOrientation(&orient, &orientvalue, &orientvalid); for (auto r: *me.relays->getmap()) { Pin *drive; Pin *fault; harness.accessRelay(r.second, &drive, &fault); fault->setDir(true); fault->init(); fault->clear(); } fix->fixValid = true; fix->speed = 0; fix->track = 0; fix->fix.lat = 48.0; fix->fix.lon = -114.0; me.lastFix = *fix; me.rudder->attach(Conf::get()->rudderPort(), Conf::get()->rudderPin()); me.disarmInput.setDir(true); me.disarmInput.init(); me.disarmInput.set(); me.armInput.setDir(true); me.armInput.init(); me.armInput.clear(); *adcvalid = true; *rcvalid = true; *rcfailsafe = false; *orientvalid = true; adcraw->at(Conf::get()->batmonName()) = 3000; health.readHealth(); }