blob: c5e07d6d291b9067ff6613bc4c2feacc6c961e62 [file] [log] [blame]
Daniel Pettiaece37f2014-10-25 17:13:44 -07001#include <stdio.h>
Austin Schuhf2a50ba2016-12-24 16:16:26 -08002#include <chrono>
Austin Schuh47017412013-03-10 11:50:46 -07003
Austin Schuhf2a50ba2016-12-24 16:16:26 -08004#include "aos/common/logging/logging.h"
Austin Schuh47017412013-03-10 11:50:46 -07005#include "aos/common/time.h"
Brian Silverman14fd0fb2014-01-14 21:42:01 -08006#include "aos/linux_code/init.h"
Austin Schuh47017412013-03-10 11:50:46 -07007#include "frc971/autonomous/auto.q.h"
Brian Silvermanb691f5e2015-08-02 11:37:55 -07008#include "y2015/autonomous/auto.h"
Austin Schuh47017412013-03-10 11:50:46 -07009
Austin Schuh47017412013-03-10 11:50:46 -070010int main(int /*argc*/, char * /*argv*/[]) {
Brian Silverman5090c432016-01-02 14:44:26 -080011 ::aos::Init(-1);
Austin Schuh47017412013-03-10 11:50:46 -070012
Austin Schuha4faacc2014-03-09 00:50:50 -080013 LOG(INFO, "Auto main started\n");
Austin Schuh47017412013-03-10 11:50:46 -070014 ::frc971::autonomous::autonomous.FetchLatest();
15 while (!::frc971::autonomous::autonomous.get()) {
Austin Schuh6be011a2013-03-19 10:07:02 +000016 ::frc971::autonomous::autonomous.FetchNextBlocking();
17 LOG(INFO, "Got another auto packet\n");
Austin Schuh47017412013-03-10 11:50:46 -070018 }
19
20 while (true) {
21 while (!::frc971::autonomous::autonomous->run_auto) {
22 ::frc971::autonomous::autonomous.FetchNextBlocking();
Austin Schuh6be011a2013-03-19 10:07:02 +000023 LOG(INFO, "Got another auto packet\n");
Austin Schuh47017412013-03-10 11:50:46 -070024 }
Austin Schuh6be011a2013-03-19 10:07:02 +000025 LOG(INFO, "Starting auto mode\n");
Austin Schuhf2a50ba2016-12-24 16:16:26 -080026 ::aos::monotonic_clock::time_point start_time =
27 ::aos::monotonic_clock::now();
Austin Schuh88af0852016-12-04 20:31:32 -080028 ::y2015::autonomous::HandleAuto();
Austin Schuh47017412013-03-10 11:50:46 -070029
Austin Schuhf2a50ba2016-12-24 16:16:26 -080030 auto elapsed_time = ::aos::monotonic_clock::now() - start_time;
Austin Schuha4faacc2014-03-09 00:50:50 -080031 LOG(INFO, "Auto mode exited in %f, waiting for it to finish.\n",
Austin Schuhf2a50ba2016-12-24 16:16:26 -080032 ::std::chrono::duration_cast<::std::chrono::duration<double>>(
33 elapsed_time)
34 .count());
Austin Schuh47017412013-03-10 11:50:46 -070035 while (::frc971::autonomous::autonomous->run_auto) {
36 ::frc971::autonomous::autonomous.FetchNextBlocking();
Austin Schuh6be011a2013-03-19 10:07:02 +000037 LOG(INFO, "Got another auto packet\n");
Austin Schuh47017412013-03-10 11:50:46 -070038 }
Austin Schuh6be011a2013-03-19 10:07:02 +000039 LOG(INFO, "Waiting for auto to start back up.\n");
Austin Schuh47017412013-03-10 11:50:46 -070040 }
41 ::aos::Cleanup();
42 return 0;
43}
44