From 28edf356d951b98ff1022138899d29c236118fa5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 8 Jan 2011 20:37:45 +0000 Subject: [PATCH] realtime: actually do initial queueing of speedmanager's retransmit nodes (!) --- hostside/realtime.c | 1 + hostside/safety.h | 2 ++ hostside/speed.c | 9 +++++++++ 3 files changed, 12 insertions(+) diff --git a/hostside/realtime.c b/hostside/realtime.c index 131d377..20e7535 100644 --- a/hostside/realtime.c +++ b/hostside/realtime.c @@ -523,6 +523,7 @@ int main(int argc, const char **argv) { persist_entrails_interpret(); records_parse(argv); realtime_priority(); + speedmanager_init(); sta_startup(); if (!simulate) oop_sys_run(sys_events); diff --git a/hostside/safety.h b/hostside/safety.h index 46ef44f..2e4fc85 100644 --- a/hostside/safety.h +++ b/hostside/safety.h @@ -265,6 +265,8 @@ int speedmanager_stopped(Train *tra); void actual_speed(Train *tra, int step); +void speedmanager_init(void); + /*========== actual.c ==========*/ /* actual.c should only be called from safety.c. * It is responsible for communicating with the PICs, including diff --git a/hostside/speed.c b/hostside/speed.c index 44f21ac..e80aad2 100644 --- a/hostside/speed.c +++ b/hostside/speed.c @@ -199,3 +199,12 @@ void speedmanager_reset_train(Train *tra) { actual_speed(tra, 0); } + +void speedmanager_init(void) { + Nmra n; + TRA_IV; + FOR_TRA { + enco_nmra_idle(&n); + retransmit_urgent_queue_relaxed(&tra->speed.rn, &n); + } +} -- 2.30.2