From: Ian Jackson Date: Sat, 8 Jan 2011 20:37:45 +0000 (+0000) Subject: realtime: actually do initial queueing of speedmanager's retransmit nodes (!) X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=28edf356d951b98ff1022138899d29c236118fa5;p=trains.git realtime: actually do initial queueing of speedmanager's retransmit nodes (!) --- 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); + } +}