- switch(type)
- {
- case GOTO_SENSOR:
- return format("set route to sensor %d", get_param<unsigned>(0));
- case GOTO_ZONE:
- return "set route to "+get_param<string>(0);
- case TRAVEL_TO:
- return format("travel to sensor %d", get_param<unsigned>(0));
- case TRAVEL_PAST:
- return format("travel past turnout %d", get_param<unsigned>(0));
- case WAIT_TIME:
- return format("wait for %d seconds", get_param<unsigned>(0));
- case WAIT_UNTIL:
- return format("wait until %d mod %d seconds", get_param<unsigned>(0), get_param<unsigned>(1));
- case WAIT_TRAIN:
- return format("wait for train %d at sensor %d", get_param<unsigned>(0), get_param<unsigned>(1));
- case ARRIVE:
- return "travel until arrival";
- case SPEED:
- return format("set speed %d km/h", get_param<unsigned>(0));
- case REVERSE:
- return "reverse";
- case ROUTE:
- return "set route "+get_param<string>(0);
- default:
- return "invalid row";
- }
-}
-
-DataFile::Statement Timetable::Row::save() const
-{
- switch(type)
- {
- case GOTO_SENSOR:
- return DataFile::Statement("goto_sensor"), get_param<unsigned>(0);
- case GOTO_ZONE:
- return DataFile::Statement("goto_zone"), get_param<string>(0);
- case TRAVEL_TO:
- return DataFile::Statement("travel_to"), get_param<unsigned>(0);
- case TRAVEL_PAST:
- return DataFile::Statement("travel_past"), get_param<unsigned>(0);
- case WAIT_TIME:
- return DataFile::Statement("wait"), get_param<unsigned>(0);
- case WAIT_UNTIL:
- return DataFile::Statement("wait_until"), get_param<unsigned>(0), get_param<unsigned>(1);
- case WAIT_TRAIN:
- return DataFile::Statement("wait_train"), get_param<unsigned>(0), get_param<unsigned>(1);
- case ARRIVE:
- return DataFile::Statement("arrive");
- case SPEED:
- return DataFile::Statement("speed"), get_param<unsigned>(0);
- case REVERSE:
- return DataFile::Statement("reverse");
- case ROUTE:
- return DataFile::Statement("route"), get_param<string>(0);
- default:
- return DataFile::Statement();
- }
-}