summaryrefslogtreecommitdiff
path: root/radiotools.c
diff options
context:
space:
mode:
Diffstat (limited to 'radiotools.c')
-rw-r--r--radiotools.c1659
1 files changed, 0 insertions, 1659 deletions
diff --git a/radiotools.c b/radiotools.c
index e67e985..edccd2d 100644
--- a/radiotools.c
+++ b/radiotools.c
@@ -249,1665 +249,6 @@ char *audiobitrate(const unsigned char *data)
return temp;
}
-/* ----------------------------------------------------------------------------------------------------------- */
-
-const char *tmc_duration[8] = {
- "none",
- "15 minutes",
- "30 minutes",
- "1 hour",
- "2 hours",
- "3 hours",
- "4 hours",
- "all day",
-};
-
-const char *tmc_direction[2] = { "+", "-" };
-
-const char *tmc_event[2048] = {
- "---", // 0
- "traffic problem",
- "queuing traffic (with average speeds Q). Danger of stationary traffic",
- "..", "..", "..", "..", "..", "..", "..", "..", // 10
- "overheight warning system triggered",
- "(Q) accident(s), traffic being directed around accident area",
- "..", "..", "..",
- "closed, rescue and recovery work in progress",
- "..", "..", "..",
- "service area overcrowded, drive to another service area", // 20
- "..",
- "service area, fuel station closed",
- "service area, restaurant closed",
- "bridge closed",
- "tunnel closed",
- "bridge blocked",
- "tunnel blocked",
- "road closed intermittently",
- "..", "..", // 30
- "..", "..", "..", "..", "..",
- "fuel station reopened",
- "restaurant reopened",
- "..", "..",
- "smog alert ended", // 40
- "(Q) overtaking lane(s) closed",
- "(Q) overtaking lane(s) blocked",
- "..", "..", "..", "..", "..", "..", "..", "..", // 50
- "roadworks, (Q) overtaking lane(s) closed",
- "(Q sets of) roadworks on the hard shoulder",
- "(Q sets of) roadworks in the emergency lane",
- "..",
- "traffic problem expected",
- "traffic congestion expected",
- "normal traffic expected",
- "..", "..", "..", // 60
- "(Q) object(s) on roadway {something that does not neccessarily block the road}",
- "(Q) burst pipe(s)",
- "(Q) object(s) on the road. Danger",
- "burst pipe. Danger",
- "..", "..", "..", "..", "..",
- "traffic congestion, average speed of ?? km/h", // 70
- "traffic congestion, average speed of ?? km/h",
- "traffic congestion, average speed of ?? km/h",
- "traffic congestion, average speed of ?? km/h",
- "traffic congestion, average speed of ?? km/h",
- "traffic congestion, average speed of ?? km/h",
- "traffic congestion, average speed of ?? km/h",
- "..", "..", "..", "..", // 80
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 90
- "delays (Q) for cars",
- "..", "..", "..", "..", "..", "..", "..", "..", "..", // 100
- "stationary traffic",
- "stationary traffic for 1 km",
- "stationary traffic for 2 km",
- "stationary traffic for 4 km",
- "stationary traffic for 6 km",
- "stationary traffic for 10 km",
- "stationary traffic expected",
- "queuing traffic (with average speeds Q)",
- "queuing traffic for 1 km (with average speeds Q)",
- "queuing traffic for 2 km (with average speeds Q)", // 110
- "queuing traffic for 4 km (with average speeds Q)",
- "queuing traffic for 6 km (with average speeds Q)",
- "queuing traffic for 10 km (with average speeds Q)",
- "queuing traffic expected",
- "slow traffic (with average speeds Q)",
- "slow traffic for 1 km (with average speeds Q)",
- "slow traffic for 2 km (with average speeds Q)",
- "slow traffic for 4 km (with average speeds Q)",
- "slow traffic for 6 km (with average speeds Q)",
- "slow traffic for 10 km (with average speeds Q)", // 120
- "slow traffic expected",
- "heavy traffic (with average speeds Q)",
- "heavy traffic expected",
- "traffic flowing freely (with average speeds Q)",
- "traffic building up (with average speeds Q)",
- "no problems to report",
- "traffic congestion cleared",
- "message cancelled",
- "stationary traffic for 3 km",
- "danger of stationary traffic", // 130
- "queuing traffic for 3 km (with average speeds Q)",
- "danger of queuing traffic (with average speeds Q)",
- "long queues (with average speeds Q)",
- "slow traffic for 3 km (with average speeds Q)",
- "traffic easing",
- "traffic congestion (with average speeds Q)",
- "traffic lighter than normal (with average speeds Q)",
- "queuing traffic (with average speeds Q). Approach with care",
- "queuing traffic around a bend in the road",
- "queuing traffic over the crest of a hill", // 140
- "all accidents cleared, no problems to report",
- "traffic heavier than normal (with average speeds Q)",
- "traffic very much heavier than normal (with average speeds Q)",
- "..", "..", "..", "..", "..", "..", "..", // 150
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 160
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 170
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 180
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 190
- "..", "..", "..", "..", "..", "..", "..", "..", "..",
- "multi vehicle pile up. Delays (Q)", // 200
- "(Q) accident(s)",
- "(Q) serious accident(s)",
- "multi-vehicle accident (involving Q vehicles)",
- "accident involving (a/Q) heavy lorr(y/ies)",
- "(Q) accident(s) involving hazardous materials",
- "(Q) fuel spillage accident(s)",
- "(Q) chemical spillage accident(s)",
- "vehicles slowing to look at (Q) accident(s)",
- "(Q) accident(s) in the opposing lanes",
- "(Q) shed load(s)", // 210
- "(Q) broken down vehicle(s)",
- "(Q) broken down heavy lorr(y/ies)",
- "(Q) vehicle fire(s)",
- "(Q) incident(s)",
- "(Q) accident(s). Stationary traffic",
- "(Q) accident(s). Stationary traffic for 1 km",
- "(Q) accident(s). Stationary traffic for 2 km",
- "(Q) accident(s). Stationary traffic for 4 km",
- "(Q) accident(s). Stationary traffic for 6 km",
- "(Q) accident(s). Stationary traffic for 10 km", // 220
- "(Q) accident(s). Danger of stationary traffic",
- "(Q) accident(s). Queuing traffic",
- "(Q) accident(s). Queuing traffic for 1 km",
- "(Q) accident(s). Queuing traffic for 2 km",
- "(Q) accident(s). Queuing traffic for 4 km",
- "(Q) accident(s). Queuing traffic for 6 km",
- "(Q) accident(s). Queuing traffic for 10 km",
- "(Q) accident(s). Danger of queuing traffic",
- "(Q) accident(s). Slow traffic",
- "(Q) accident(s). Slow traffic for 1 km", // 230
- "(Q) accident(s). Slow traffic for 2 km",
- "(Q) accident(s). Slow traffic for 4 km",
- "(Q) accident(s). Slow traffic for 6 km",
- "(Q) accident(s). Slow traffic for 10 km",
- "(Q) accident(s). Slow traffic expected",
- "(Q) accident(s). Heavy traffic",
- "(Q) accident(s). Heavy traffic expected",
- "(Q) accident(s). Traffic flowing freely",
- "(Q) accident(s). Traffic building up",
- "road closed due to (Q) accident(s)", // 240
- "(Q) accident(s). Right lane blocked",
- "(Q) accident(s). Centre lane blocked",
- "(Q) accident(s). Left lane blocked",
- "(Q) accident(s). Hard shoulder blocked",
- "(Q) accident(s). Two lanes blocked",
- "(Q) accident(s). Three lanes blocked",
- "accident. Delays (Q)",
- "accident. Delays (Q) expected",
- "accident. Long delays (Q)",
- "vehicles slowing to look at (Q) accident(s). Stationary traffic", // 250
- "vehicles slowing to look at (Q) accident(s). Stationary traffic for 1 km",
- "vehicles slowing to look at (Q) accident(s). Stationary traffic for 2 km",
- "vehicles slowing to look at (Q) accident(s). Stationary traffic for 4 km",
- "vehicles slowing to look at (Q) accident(s). Stationary traffic for 6 km",
- "vehicles slowing to look at (Q) accident(s). Stationary traffic for 10 km",
- "vehicles slowing to look at (Q) accident(s). Danger of stationary traffic",
- "vehicles slowing to look at (Q) accident(s). Queuing traffic",
- "vehicles slowing to look at (Q) accident(s). Queuing traffic for 1 km",
- "vehicles slowing to look at (Q) accident(s). Queuing traffic for 2 km",
- "vehicles slowing to look at (Q) accident(s). Queuing traffic for 4 km", // 260
- "vehicles slowing to look at (Q) accident(s). Queuing traffic for 6 km",
- "vehicles slowing to look at (Q) accident(s). Queuing traffic for 10 km",
- "vehicles slowing to look at (Q) accident(s). Danger of queuing traffic",
- "vehicles slowing to look at (Q) accident(s). Slow traffic",
- "vehicles slowing to look at (Q) accident(s). Slow traffic for 1 km",
- "vehicles slowing to look at (Q) accident(s). Slow traffic for 2 km",
- "vehicles slowing to look at (Q) accident(s). Slow traffic for 4 km",
- "vehicles slowing to look at (Q) accident(s). Slow traffic for 6 km",
- "vehicles slowing to look at (Q) accident(s). Slow traffic for 10 km",
- "vehicles slowing to look at (Q) accident(s). Slow traffic expected", // 270
- "vehicles slowing to look at (Q) accident(s). Heavy traffic",
- "vehicles slowing to look at (Q) accident(s). Heavy traffic expected",
- "..",
- "vehicles slowing to look at (Q) accident(s). Traffic building up",
- "vehicles slowing to look at accident. Delays (Q)",
- "vehicles slowing to look at accident. Delays (Q) expected",
- "vehicles slowing to look at accident. Long delays (Q)",
- "(Q) shed load(s). Stationary traffic",
- "(Q) shed load(s). Stationary traffic for 1 km",
- "(Q) shed load(s). Stationary traffic for 2 km", // 280
- "(Q) shed load(s). Stationary traffic for 4 km",
- "(Q) shed load(s). Stationary traffic for 6 km",
- "(Q) shed load(s). Stationary traffic for 10 km",
- "(Q) shed load(s). Danger of stationary traffic",
- "(Q) shed load(s). Queuing traffic",
- "(Q) shed load(s). Queuing traffic for 1 km",
- "(Q) shed load(s). Queuing traffic for 2 km",
- "(Q) shed load(s). Queuing traffic for 4 km",
- "(Q) shed load(s). Queuing traffic for 6 km",
- "(Q) shed load(s). Queuing traffic for 10 km", // 290
- "(Q) shed load(s). Danger of queuing traffic",
- "(Q) shed load(s). Slow traffic",
- "(Q) shed load(s). Slow traffic for 1 km",
- "(Q) shed load(s). Slow traffic for 2 km",
- "(Q) shed load(s). Slow traffic for 4 km",
- "(Q) shed load(s). Slow traffic for 6 km",
- "(Q) shed load(s). Slow traffic for 10 km",
- "(Q) shed load(s). Slow traffic expected",
- "(Q) shed load(s). Heavy traffic",
- "(Q) shed load(s). Heavy traffic expected", // 300
- "(Q) shed load(s). Traffic flowing freely",
- "(Q) shed load(s). Traffic building up",
- "blocked by (Q) shed load(s)",
- "(Q) shed load(s). Right lane blocked",
- "(Q) shed load(s). Centre lane blocked",
- "(Q) shed load(s). Left lane blocked",
- "(Q) shed load(s). Hard shoulder blocked",
- "(Q) shed load(s). Two lanes blocked",
- "(Q) shed load(s). Three lanes blocked",
- "shed load. Delays (Q)", // 310
- "shed load. Delays (Q) expected",
- "shed load. Long delays (Q)",
- "(Q) broken down vehicle(s). Stationary traffic",
- "(Q) broken down vehicle(s). Danger of stationary traffic",
- "(Q) broken down vehicle(s). Queuing traffic",
- "(Q) broken down vehicle(s). Danger of queuing traffic",
- "(Q) broken down vehicle(s). Slow traffic",
- "(Q) broken down vehicle(s). Slow traffic expected",
- "(Q) broken down vehicle(s). Heavy traffic",
- "(Q) broken down vehicle(s). Heavy traffic expected", // 320
- "(Q) broken down vehicle(s). Traffic flowing freely",
- "(Q) broken down vehicle(s).Traffic building up",
- "blocked by (Q) broken down vehicle(s).",
- "(Q) broken down vehicle(s). Right lane blocked",
- "(Q) broken down vehicle(s). Centre lane blocked",
- "(Q) broken down vehicle(s). Left lane blocked",
- "(Q) broken down vehicle(s). Hard shoulder blocked",
- "(Q) broken down vehicle(s). Two lanes blocked",
- "(Q) broken down vehicle(s). Three lanes blocked",
- "broken down vehicle. Delays (Q)", // 330
- "broken down vehicle. Delays (Q) expected",
- "broken down vehicle. Long delays (Q)",
- "accident cleared",
- "message cancelled",
- "accident involving (a/Q) bus(es)",
- "(Q) oil spillage accident(s)",
- "(Q) overturned vehicle(s)",
- "(Q) overturned heavy lorr(y/ies)",
- "(Q) jackknifed trailer(s)",
- "(Q) jackknifed caravan(s)", // 340
- "(Q) jackknifed articulated lorr(y/ies)",
- "(Q) vehicle(s) spun around",
- "(Q) earlier accident(s)",
- "accident investigation work",
- "(Q) secondary accident(s)",
- "(Q) broken down bus(es)",
- "(Q) overheight vehicle(s)",
- "(Q) accident(s). Stationary traffic for 3 km",
- "(Q) accident(s). Queuing traffic for 3 km",
- "(Q) accident(s). Slow traffic for 3 km", // 350
- "(Q) accident(s) in roadworks area",
- "vehicles slowing to look at (Q) accident(s). Stationary traffic for 3 km",
- "vehicles slowing to look at (Q) accident(s). Queuing traffic for 3 km",
- "vehicles slowing to look at (Q) accident(s). Slow traffic for 3 km",
- "vehicles slowing to look at (Q) accident(s). Danger",
- "(Q) shed load(s). Stationary traffic for 3 km",
- "(Q) shed load(s). Queuing traffic for 3 km",
- "(Q) shed load(s). Slow traffic for 3 km",
- "(Q) shed load(s). Danger",
- "(Q) overturned vehicle(s). Stationary traffic", // 360
- "(Q) overturned vehicle(s). Danger of stationary traffic",
- "(Q) overturned vehicle(s). Queuing traffic",
- "(Q) overturned vehicle(s). Danger of queuing traffic",
- "(Q) overturned vehicle(s). Slow traffic",
- "(Q) overturned vehicle(s). Slow traffic expected",
- "(Q) overturned vehicle(s). Heavy traffic",
- "(Q) overturned vehicle(s). Heavy traffic expected",
- "(Q) overturned vehicle(s). Traffic building up",
- "blocked by (Q) overturned vehicle(s)",
- "(Q) overturned vehicle(s). Right lane blocked", // 370
- "(Q) overturned vehicle(s). Centre lane blocked",
- "(Q) overturned vehicle(s). Left lane blocked",
- "(Q) overturned vehicle(s). Two lanes blocked",
- "(Q) overturned vehicle(s). Three lanes blocked",
- "overturned vehicle. Delays (Q)",
- "overturned vehicle. Delays (Q) expected",
- "overturned vehicle. Long delays (Q)",
- "(Q) overturned vehicle(s). Danger",
- "Stationary traffic due to (Q) earlier accident(s)",
- "Danger of stationary traffic due to (Q) earlier accident(s)", // 380
- "Queuing traffic due to (Q) earlier accident(s)",
- "Danger of queuing traffic due to (Q) earlier accident(s)",
- "Slow traffic due to (Q) earlier accident(s)",
- "..",
- "Heavy traffic due to (Q) earlier accident(s)",
- "..",
- "Traffic building up due to (Q) earlier accident(s)",
- "Delays (Q) due to earlier accident",
- "..",
- "Long delays (Q) due to earlier accident", // 390
- "accident investigation work. Danger",
- "(Q) secondary accident(s). Danger",
- "(Q) broken down vehicle(s). Danger",
- "(Q) broken down heavy lorr(y/ies). Danger",
- "road cleared",
- "incident cleared",
- "rescue and recovery work in progress",
- "..",
- "message cancelled",
- "..", // 400
- "closed",
- "blocked",
- "closed for heavy vehicles (over Q)",
- "no through traffic for heavy lorries (over Q)",
- "no through traffic",
- "(Q th) entry slip road closed",
- "(Q th) exit slip road closed",
- "slip roads closed",
- "slip road restrictions",
- "closed ahead. Stationary traffic", // 410
- "closed ahead. Stationary traffic for 1 km",
- "closed ahead. Stationary traffic for 2 km",
- "closed ahead. Stationary traffic for 4 km",
- "closed ahead. Stationary traffic for 6 km",
- "closed ahead. Stationary traffic for 10 km",
- "closed ahead. Danger of stationary traffic",
- "closed ahead. Queuing traffic",
- "closed ahead. Queuing traffic for 1 km",
- "closed ahead. Queuing traffic for 2 km",
- "closed ahead. Queuing traffic for 4 km", // 420
- "closed ahead. Queuing traffic for 6 km",
- "closed ahead. Queuing traffic for 10 km",
- "closed ahead. Danger of queuing traffic",
- "closed ahead. Slow traffic",
- "closed ahead. Slow traffic for 1 km",
- "closed ahead. Slow traffic for 2 km",
- "closed ahead. Slow traffic for 4 km",
- "closed ahead. Slow traffic for 6 km",
- "closed ahead. Slow traffic for 10 km",
- "closed ahead. Slow traffic expected", // 430
- "closed ahead. Heavy traffic",
- "closed ahead. Heavy traffic expected",
- "closed ahead. Traffic flowing freely",
- "closed ahead. Traffic building up",
- "closed ahead. Delays (Q)",
- "closed ahead. Delays (Q) expected",
- "closed ahead. Long delays (Q)",
- "blocked ahead. Stationary traffic",
- "blocked ahead. Stationary traffic for 1 km",
- "blocked ahead. Stationary traffic for 2 km", // 440
- "blocked ahead. Stationary traffic for 4 km",
- "blocked ahead. Stationary traffic for 6 km",
- "blocked ahead. Stationary traffic for 10 km",
- "blocked ahead. Danger of stationary traffic",
- "blocked ahead. Queuing traffic",
- "blocked ahead. Queuing traffic for 1 km",
- "blocked ahead. Queuing traffic for 2 km",
- "blocked ahead. Queuing traffic for 4 km",
- "blocked ahead. Queuing traffic for 6 km",
- "blocked ahead. Queuing traffic for 10 km", // 450
- "blocked ahead. Danger of queuing traffic",
- "blocked ahead. Slow traffic",
- "blocked ahead. Slow traffic for 1 km",
- "blocked ahead. Slow traffic for 2 km",
- "blocked ahead. Slow traffic for 4 km",
- "blocked ahead. Slow traffic for 6 km",
- "blocked ahead. Slow traffic for 10 km",
- "blocked ahead. Slow traffic expected",
- "blocked ahead. Heavy traffic",
- "blocked ahead. Heavy traffic expected", // 460
- "blocked ahead. Traffic flowing freely",
- "blocked ahead. Traffic building up",
- "blocked ahead. Delays (Q)",
- "blocked ahead. Delays (Q) expected",
- "blocked ahead. Long delays (Q)",
- "slip roads reopened",
- "reopened",
- "message cancelled",
- "closed ahead",
- "blocked ahead", // 470
- "(Q) entry slip road(s) closed",
- "(Q th) entry slip road blocked",
- "entry blocked",
- "(Q) exit slip road(s) closed",
- "(Q th) exit slip road blocked",
- "exit blocked",
- "slip roads blocked",
- "connecting carriageway closed",
- "parallel carriageway closed",
- "right-hand parallel carriageway closed", // 480
- "left-hand parallel carriageway closed",
- "express lanes closed",
- "through traffic lanes closed",
- "local lanes closed",
- "connecting carriageway blocked",
- "parallel carriageway blocked",
- "right-hand parallel carriageway blocked",
- "left-hand parallel carriageway blocked",
- "express lanes blocked",
- "through traffic lanes blocked", // 490
- "local lanes blocked",
- "no motor vehicles",
- "restrictions",
- "closed for heavy lorries (over Q)",
- "closed ahead. Stationary traffic for 3 km",
- "closed ahead. Queuing traffic for 3 km",
- "closed ahead. Slow traffic for 3 km",
- "blocked ahead. Stationary traffic for 3 km",
- "blocked ahead. Queuing traffic for 3 km",
- "(Q) lane(s) closed", // 500
- "(Q) right lane(s) closed",
- "(Q) centre lane(s) closed",
- "(Q) left lane(s) closed",
- "hard shoulder closed",
- "two lanes closed",
- "three lanes closed",
- "(Q) right lane(s) blocked",
- "(Q) centre lane(s) blocked",
- "(Q) left lane(s) blocked",
- "hard shoulder blocked", // 510
- "two lanes blocked",
- "three lanes blocked",
- "single alternate line traffic",
- "carriageway reduced (from Q lanes) to one lane",
- "carriageway reduced (from Q lanes) to two lanes",
- "carriageway reduced (from Q lanes) to three lanes",
- "contraflow",
- "narrow lanes",
- "contraflow with narrow lanes",
- "(Q) lane(s) blocked", // 520
- "(Q) lanes closed. Stationary traffic",
- "(Q) lanes closed. Stationary traffic for 1 km",
- "(Q) lanes closed. Stationary traffic for 2 km",
- "(Q) lanes closed. Stationary traffic for 4 km",
- "(Q) lanes closed. Stationary traffic for 6 km",
- "(Q) lanes closed. Stationary traffic for 10 km",
- "(Q) lanes closed. Danger of stationary traffic",
- "(Q) lanes closed. Queuing traffic",
- "(Q) lanes closed. Queuing traffic for 1 km",
- "(Q) lanes closed. Queuing traffic for 2 km", // 530
- "(Q) lanes closed. Queuing traffic for 4 km",
- "(Q) lanes closed. Queuing traffic for 6 km",
- "(Q) lanes closed. Queuing traffic for 10 km",
- "(Q) lanes closed. Danger of queuing traffic",
- "(Q) lanes closed. Slow traffic",
- "(Q) lanes closed. Slow traffic for 1 km",
- "(Q) lanes closed. Slow traffic for 2 km",
- "(Q) lanes closed. Slow traffic for 4 km",
- "(Q) lanes closed. Slow traffic for 6 km",
- "(Q) lanes closed. Slow traffic for 10 km", // 540
- "(Q) lanes closed. Slow traffic expected",
- "(Q) lanes closed. Heavy traffic",
- "(Q) lanes closed. Heavy traffic expected",
- "(Q)lanes closed. Traffic flowing freely",
- "(Q)lanes closed. Traffic building up",
- "carriageway reduced (from Q lanes) to one lane. Stationary traffic",
- "carriageway reduced (from Q lanes) to one lane. Danger of stationary traffic",
- "carriageway reduced (from Q lanes) to one lane. Queuing traffic",
- "carriageway reduced (from Q lanes) to one lane. Danger of queuing traffic",
- "carriageway reduced (from Q lanes) to one lane. Slow traffic", // 550
- "carriageway reduced (from Q lanes) to one lane. Slow traffic expected",
- "carriageway reduced (from Q lanes) to one lane. Heavy traffic",
- "carriageway reduced (from Q lanes) to one lane. Heavy traffic expected",
- "carriageway reduced (from Q lanes) to one lane. Traffic flowing freely",
- "carriageway reduced (from Q lanes) to one lane. Traffic building up",
- "carriageway reduced (from Q lanes) to two lanes. Stationary traffic",
- "carriageway reduced (from Q lanes) to two lanes. Danger of stationary traffic",
- "carriageway reduced (from Q lanes) to two lanes. Queuing traffic",
- "carriageway reduced (from Q lanes) to two lanes. Danger of queuing traffic",
- "carriageway reduced (from Q lanes) to two lanes. Slow traffic", // 560
- "carriageway reduced (from Q lanes) to two lanes. Slow traffic expected",
- "carriageway reduced (from Q lanes) to two lanes. Heavy traffic",
- "carriageway reduced (from Q lanes) to two lanes. Heavy traffic expected",
- "carriageway reduced (from Q lanes) to two lanes. Traffic flowing freely",
- "carriageway reduced (from Q lanes) to two lanes. Traffic building up",
- "carriageway reduced (from Q lanes) to three lanes. Stationary traffic",
- "carriageway reduced (from Q lanes) to three lanes. Danger of stationary traffic",
- "carriageway reduced (from Q lanes) to three lanes. Queuing traffic",
- "carriageway reduced (from Q lanes) to three lanes. Danger of queuing traffic",
- "carriageway reduced (from Q lanes) to three lanes. Slow traffic", // 570
- "carriageway reduced (from Q lanes) to three lanes. Slow traffic expected",
- "carriageway reduced (from Q lanes) to three lanes. Heavy traffic",
- "carriageway reduced (from Q lanes) to three lanes. Heavy traffic expected",
- "carriageway reduced (from Q lanes) to three lanes. Traffic flowing freely",
- "carriageway reduced (from Q lanes) to three lanes. Traffic building up",
- "contraflow. Stationary traffic",
- "contraflow. Stationary traffic for 1 km",
- "contraflow. Stationary traffic for 2 km",
- "contraflow. Stationary traffic for 4 km",
- "contraflow. Stationary traffic for 6 km", // 580
- "contraflow. Stationary traffic for 10 km",
- "contraflow. Danger of stationary traffic",
- "contraflow. Queuing traffic",
- "contraflow. Queuing traffic for 1 km",
- "contraflow. Queuing traffic for 2 km",
- "contraflow. Queuing traffic for 4 km",
- "contraflow. Queuing traffic for 6 km",
- "contraflow. Queuing traffic for 10 km",
- "contraflow. Danger of queuing traffic",
- "contraflow. Slow traffic", // 590
- "contraflow. Slow traffic for 1 km",
- "contraflow. Slow traffic for 2 km",
- "contraflow. Slow traffic for 4 km",
- "contraflow. Slow traffic for 6 km",
- "contraflow. Slow traffic for 10 km",
- "contraflow. Slow traffic expected",
- "contraflow. Heavy traffic",
- "contraflow. Heavy traffic expected",
- "contraflow. Traffic flowing freely",
- "contraflow. Traffic building up", // 600
- "contraflow. Carriageway reduced (from Q lanes) to one lane",
- "contraflow. Carriageway reduced (from Q lanes) to two lanes",
- "contraflow. Carriageway reduced (from Q lanes) to three lanes",
- "narrow lanes. Stationary traffic",
- "narrow lanes. Danger of stationary traffic",
- "narrow lanes. Queuing traffic",
- "narrow lanes. Danger of queuing traffic",
- "narrow lanes. Slow traffic",
- "narrow lanes. Slow traffic expected",
- "narrow lanes. Heavy traffic", // 610
- "narrow lanes. Heavy traffic expected",
- "narrow lanes. Traffic flowing freely",
- "narrow lanes. Traffic building up",
- "contraflow with narrow lanes. Stationary traffic",
- "contraflow with narrow lanes. Stationary traffic. Danger of stationary traffic",
- "contraflow with narrow lanes. Queuing traffic",
- "contraflow with narrow lanes. Danger of queuing traffic",
- "contraflow with narrow lanes. Slow traffic",
- "contraflow with narrow lanes. Slow traffic expected",
- "contraflow with narrow lanes. Heavy traffic", // 620
- "contraflow with narrow lanes. Heavy traffic expected",
- "contraflow with narrow lanes. Traffic flowing freely",
- "contraflow with narrow lanes. Traffic building up",
- "lane closures removed",
- "message cancelled",
- "blocked ahead. Slow traffic for 3 km",
- "no motor vehicles without catalytic converters",
- "no motor vehicles with even-numbered registration plates",
- "no motor vehicles with odd-numbered registration plates",
- "open", // 630
- "road cleared",
- "entry reopened",
- "exit reopened",
- "all carriageways reopened",
- "motor vehicle restrictions lifted",
- "traffic restrictions lifted {reopened for all traffic}",
- "emergency lane closed",
- "turning lane closed",
- "crawler lane closed",
- "slow vehicle lane closed", // 640
- "one lane closed",
- "emergency lane blocked",
- "turning lane blocked",
- "crawler lane blocked",
- "slow vehicle lane blocked",
- "one lane blocked",
- "(Q person) carpool lane in operation",
- "(Q person) carpool lane closed",
- "(Q person) carpool lane blocked",
- "carpool restrictions changed (to Q persons per vehicle)", // 650
- "(Q) lanes closed. Stationary traffic for 3 km",
- "(Q) lanes closed. Queuing traffic for 3 km",
- "(Q) lanes closed. Slow traffic for 3 km",
- "contraflow. Stationary traffic for 3 km",
- "contraflow. Queuing traffic for 3 km",
- "contraflow. Slow traffic for 3 km",
- "lane blockages cleared",
- "contraflow removed",
- "(Q person) carpool restrictions lifted",
- "lane restrictions lifted", // 660
- "use of hard shoulder allowed",
- "normal lane regulations restored",
- "all carriageways cleared",
- "..", "..", "..", "..", "..", "..", "..", // 670
- "bus lane available for carpools (with at least Q occupants)",
- "message cancelled",
- "message cancelled",
- "..", "..",
- "bus lane blocked",
- "..",
- "heavy vehicle lane closed",
- "heavy vehicle lane blocked",
- "reopened for through traffic", // 680
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 690
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 700
- "(Q sets of) roadworks",
- "(Q sets of) major roadworks",
- "(Q sets of) maintenance work",
- "(Q sections of) resurfacing work",
- "(Q sets of) central reservation work",
- "(Q sets of) road marking work",
- "bridge maintenance work (at Q bridges)",
- "(Q sets of) temporary traffic lights",
- "(Q sections of) blasting work",
- "(Q sets of) roadworks. Stationary traffic", // 710
- "(Q sets of) roadworks. Stationary traffic for 1 km",
- "(Q sets of) roadworks. Stationary traffic for 2 km",
- "(Q sets of) roadworks. Stationary traffic for 4 km",
- "(Q sets of) roadworks. Stationary traffic for 6 km",
- "(Q sets of) roadworks. Stationary traffic for 10 km",
- "(Q sets of) roadworks. Danger of stationary traffic",
- "(Q sets of) roadworks. Queuing traffic",
- "(Q sets of) roadworks. Queuing traffic for 1 km",
- "(Q sets of) roadworks. Queuing traffic for 2 km",
- "(Q sets of) roadworks. Queuing traffic for 4 km", // 720
- "(Q sets of) roadworks. Queuing traffic for 6 km",
- "(Q sets of) roadworks. Queuing traffic for 10 km",
- "(Q sets of) roadworks. Danger of queuing traffic",
- "(Q sets of) roadworks. Slow traffic",
- "(Q sets of) roadworks. Slow traffic for 1 km",
- "(Q sets of) roadworks. Slow traffic for 2 km",
- "(Q sets of) roadworks. Slow traffic for 4 km",
- "(Q sets of) roadworks. Slow traffic for 6 km",
- "(Q sets of) roadworks. Slow traffic for 10 km",
- "(Q sets of) roadworks. Slow traffic expected", // 730
- "(Q sets of) roadworks. Heavy traffic",
- "(Q sets of) roadworks. Heavy traffic expected",
- "(Q sets of) roadworks. Traffic flowing freely",
- "(Q sets of) roadworks. Traffic building up",
- "closed due to (Q sets of) roadworks",
- "(Q sets of) roadworks. Right lane closed",
- "(Q sets of) roadworks. Centre lane closed",
- "(Q sets of) roadworks. Left lane closed",
- "(Q sets of) roadworks. Hard shoulder closed",
- "(Q sets of) roadworks. Two lanes closed", // 740
- "(Q sets of) roadworks. Three lanes closed",
- "(Q sets of) roadworks. Single alternate line traffic",
- "roadworks. Carriageway reduced (from Q lanes) to one lane",
- "roadworks. Carriageway reduced (from Q lanes) to two lanes",
- "roadworks. Carriageway reduced (from Q lanes) to three lanes",
- "(Q sets of) roadworks. Contraflow",
- "roadworks. Delays (Q)",
- "roadworks. Delays (Q) expected",
- "roadworks. Long delays (Q)",
- "(Q sections of) resurfacing work. Stationary traffic", // 750
- "(Q sections of) resurfacing work. Stationary traffic for 1 km",
- "(Q sections of) resurfacing work. Stationary traffic for 2 km",
- "(Q sections of) resurfacing work. Stationary traffic for 4 km",
- "(Q sections of) resurfacing work. Stationary traffic for 6 km",
- "(Q sections of) resurfacing work. Stationary traffic for 10 km",
- "(Q sections of) resurfacing work. Danger of stationary traffic",
- "(Q sections of) resurfacing work. Queuing traffic",
- "(Q sections of) resurfacing work. Queuing traffic for 1 km",
- "(Q sections of) resurfacing work. Queuing traffic for 2 km",
- "(Q sections of) resurfacing work. Queuing traffic for 4 km", // 760
- "(Q sections of) resurfacing work. Queuing traffic for 6 km",
- "(Q sections of) resurfacing work. Queuing traffic for 10 km",
- "(Q sections of) resurfacing work. Danger of queuing traffic",
- "(Q sections of) resurfacing work. Slow traffic",
- "(Q sections of) resurfacing work. Slow traffic for 1 km",
- "(Q sections of) resurfacing work. Slow traffic for 2 km",
- "(Q sections of) resurfacing work. Slow traffic for 4 km",
- "(Q sections of) resurfacing work. Slow traffic for 6 km",
- "(Q sections of) resurfacing work. Slow traffic for 10 km",
- "(Q sections of) resurfacing work. Slow traffic expected", // 770
- "(Q sections of) resurfacing work. Heavy traffic",
- "(Q sections of) resurfacing work. Heavy traffic expected",
- "(Q sections of) resurfacing work. Traffic flowing freely",
- "(Q sections of) resurfacing work. Traffic building up",
- "(Q sections of) resurfacing work. Single alternate line traffic",
- "resurfacing work. Carriageway reduced (from Q lanes) to one lane",
- "resurfacing work. Carriageway reduced (from Q lanes) to two lanes",
- "resurfacing work. Carriageway reduced (from Q lanes) to three lanes",
- "(Q sections of) resurfacing work. Contraflow",
- "resurfacing work. Delays (Q)", // 780
- "resurfacing work. Delays (Q) expected",
- "resurfacing work. Long delays (Q)",
- "(Q sets of) road marking work. Stationary traffic",
- "(Q sets of) road marking work. Danger of stationary traffic",
- "(Q sets of) road marking work. Queuing traffic",
- "(Q sets of) road marking work. Danger of queuing traffic",
- "(Q sets of) road marking work. Slow traffic",
- "(Q sets of) road marking work. Slow traffic expected",
- "(Q sets of) road marking work. Heavy traffic",
- "(Q sets of) road marking work. Heavy traffic expected", // 790
- "(Q sets of) road marking work. Traffic flowing freely",
- "(Q sets of) road marking work. Traffic building up",
- "(Q sets of) road marking work. Right lane closed",
- "(Q sets of) road marking work. Centre lane closed",
- "(Q sets of) road marking work. Left lane closed",
- "(Q sets of) road marking work. Hard shoulder closed",
- "(Q sets of) road marking work. Two lanes closed",
- "(Q sets of) road marking work. Three lanes closed",
- "closed for bridge demolition work (at Q bridges)",
- "roadworks cleared", // 800
- "message cancelled",
- "(Q sets of) long-term roadworks",
- "(Q sets of) construction work",
- "(Q sets of) slow moving maintenance vehicles",
- "bridge demolition work (at Q bridges)",
- "(Q sets of) water main work",
- "(Q sets of) gas main work",
- "(Q sets of) work on buried cables",
- "(Q sets of) work on buried services",
- "new roadworks layout", // 810
- "new road layout",
- "(Q sets of) roadworks. Stationary traffic for 3 km",
- "(Q sets of) roadworks. Queuing traffic for 3 km",
- "(Q sets of) roadworks. Slow traffic for 3 km",
- "(Q sets of) roadworks during the day time",
- "(Q sets of) roadworks during off-peak periods",
- "(Q sets of) roadworks during the night",
- "(Q sections of) resurfacing work. Stationary traffic for 3 km",
- "(Q sections of) resurfacing work. Queuing traffic for 3 km",
- "(Q sections of) resurfacing work. Slow traffic for 3 km", // 820
- "(Q sets of) resurfacing work during the day time",
- "(Q sets of) resurfacing work during off-peak periods",
- "(Q sets of) resurfacing work during the night",
- "(Q sets of) road marking work. Danger",
- "(Q sets of) slow moving maintenance vehicles. Stationary traffic",
- "(Q sets of) slow moving maintenance vehicles. Danger of stationary traffic",
- "(Q sets of) slow moving maintenance vehicles. Queuing traffic",
- "(Q sets of) slow moving maintenance vehicles. Danger of queuing traffic",
- "(Q sets of) slow moving maintenance vehicles. Slow traffic",
- "(Q sets of) slow moving maintenance vehicles. Slow traffic expected", // 830
- "(Q sets of) slow moving maintenance vehicles. Heavy traffic",
- "(Q sets of) slow moving maintenance vehicles. Heavy traffic expected",
- "(Q sets of) slow moving maintenance vehicles. Traffic flowing freely",
- "(Q sets of) slow moving maintenance vehicles. Traffic building up",
- "(Q sets of) slow moving maintenance vehicles. Right lane closed",
- "(Q sets of) slow moving maintenance vehicles. Centre lane closed",
- "(Q sets of) slow moving maintenance vehicles. Left lane closed",
- "(Q sets of) slow moving maintenance vehicles. Two lanes closed",
- "(Q sets of) slow moving maintenance vehicles. Three lanes closed",
- "water main work. Delays (Q)", // 840
- "water main work. Delays (Q) expected",
- "water main work. Long delays (Q)",
- "gas main work. Delays (Q)",
- "gas main work. Delays (Q) expected",
- "gas main work. Long delays (Q)",
- "work on buried cables. Delays (Q)",
- "work on buried cables. Delays (Q) expected",
- "work on buried cables. Long delays (Q)",
- "work on buried services. Delays (Q)",
- "work on buried services. Delays (Q) expected", // 850
- "work on buried services. Long delays (Q)",
- "construction traffic merging",
- "roadwork clearance in progress",
- "maintenance work cleared",
- "road layout unchanged",
- "construction traffic merging. Danger",
- "..", "..", "..", "..", // 860
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 870
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 880
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 890
- "..", "..", "..", "..", "..", "..", "..",
- "obstruction warning withdrawn",
- "clearance work in progress, road free again",
- "flooding expected", // 900
- "(Q) obstruction(s) on roadway {something that does block the road or part of",
- "(Q) obstructions on the road. Danger",
- "spillage on the road",
- "storm damage",
- "(Q) fallen trees",
- "(Q) fallen trees. Danger",
- "flooding",
- "flooding. Danger",
- "flash floods",
- "danger of flash floods", // 910
- "avalanches",
- "avalanche risk",
- "rockfalls",
- "landslips",
- "earthquake damage",
- "road surface in poor condition",
- "subsidence",
- "(Q) collapsed sewer(s)",
- "burst water main",
- "gas leak", // 920
- "serious fire",
- "animals on roadway",
- "animals on the road. Danger",
- "clearance work",
- "blocked by storm damage",
- "blocked by (Q) fallen trees",
- "(Q) fallen tree(s). Passable with care",
- "flooding. Stationary traffic",
- "flooding. Danger of stationary traffic",
- "flooding. Queuing traffic", // 930
- "flooding. Danger of queuing traffic",
- "flooding. Slow traffic",
- "flooding. Slow traffic expected",
- "flooding. Heavy traffic",
- "flooding. Heavy traffic expected",
- "flooding. Traffic flowing freely",
- "flooding. Traffic building up",
- "closed due to flooding",
- "flooding. Delays (Q)",
- "flooding. Delays (Q) expected", // 940
- "flooding. Long delays (Q)",
- "flooding. Passable with care",
- "closed due to avalanches",
- "avalanches. Passable with care (above Q hundred metres)",
- "closed due to rockfalls",
- "rockfalls. Passable with care",
- "road closed due to landslips",
- "landslips. Passable with care",
- "closed due to subsidence",
- "subsidence. Single alternate line traffic", // 950
- "subsidence. Carriageway reduced (from Q lanes) to one lane",
- "subsidence. Carriageway reduced (from Q lanes) to two lanes",
- "subsidence. Carriageway reduced (from Q lanes) to three lanes",
- "subsidence. Contraflow in operation",
- "subsidence. Passable with care",
- "closed due to sewer collapse",
- "road closed due to burst water main",
- "burst water main. Delays (Q)",
- "burst water main. Delays (Q) expected",
- "burst water main. Long delays (Q)", // 960
- "closed due to gas leak",
- "gas leak. Delays (Q)",
- "gas leak. Delays (Q) expected",
- "gas leak. Long delays (Q)",
- "closed due to serious fire",
- "serious fire. Delays (Q)",
- "serious fire. Delays (Q) expected",
- "serious fire. Long delays (Q)",
- "closed for clearance work",
- "road free again", // 970
- "message cancelled",
- "storm damage expected",
- "fallen power cables",
- "sewer overflow",
- "ice build-up",
- "mud slide",
- "grass fire",
- "air crash",
- "rail crash",
- "blocked by (Q) obstruction(s) on the road", // 980
- "(Q) obstructions on the road. Passable with care",
- "blocked due to spillage on roadway",
- "spillage on the road. Passable with care",
- "spillage on the road. Danger",
- "storm damage. Passable with care",
- "storm damage. Danger",
- "blocked by fallen power cables",
- "fallen power cables. Passable with care",
- "fallen power cables. Danger",
- "sewer overflow. Danger", // 990
- "flash floods. Danger",
- "avalanches. Danger",
- "closed due to avalanche risk",
- "avalanche risk. Danger",
- "closed due to ice build-up",
- "ice build-up. Passable with care (above Q hundred metres)",
- "ice build-up. Single alternate traffic",
- "rockfalls. Danger",
- "landslips. Danger",
- "earthquake damage. Danger", // 1000
- "hazardous driving conditions (above Q hundred metres)",
- "danger of aquaplaning",
- "slippery road (above Q hundred metres)",
- "mud on road",
- "leaves on road",
- "ice (above Q hundred metres)",
- "danger of ice (above Q hundred metres)",
- "black ice (above Q hundred metres)",
- "freezing rain (above Q hundred metres)",
- "wet and icy roads (above Q hundred metres)", // 1010
- "slush (above Q hundred metres)",
- "snow on the road (above Q hundred metres)",
- "packed snow (above Q hundred metres)",
- "fresh snow (above Q hundred metres)",
- "deep snow (above Q hundred metres)",
- "snow drifts (above Q hundred metres)",
- "slippery due to spillage on roadway",
- "slippery road (above Q hundred metres) due to snow",
- "slippery road (above Q hundred metres) due to frost",
- "road blocked by snow (above Q hundred metres)", // 1020
- "snow on the road. Carriageway reduced (from Q lanes) to one lane",
- "snow on the road. Carriageway reduced (from Q lanes) to two lanes",
- "snow on the road. Carriageway reduced (from Q lanes) to three lanes",
- "conditions of road surface improved",
- "message cancelled",
- "subsidence. Danger",
- "sewer collapse. Delays (Q)",
- "sewer collapse. Delays (Q) expected",
- "sewer collapse. Long delays (Q)",
- "sewer collapse. Danger", // 1030
- "burst water main. Danger",
- "gas leak. Danger",
- "serious fire. Danger",
- "clearance work. Danger",
- "impassable (above Q hundred metres)",
- "almost impassable (above Q hundred metres)",
- "extremely hazardous driving conditions (above Q hundred metres)",
- "difficult driving conditions (above Q hundred metres)",
- "passable with care (up to Q hundred metres)",
- "passable (up to Q hundred metres)", // 1040
- "surface water hazard",
- "loose sand on road",
- "loose chippings",
- "oil on road",
- "petrol on road",
- "icy patches (above Q hundred metres)",
- "danger of icy patches (above Q hundred metres)",
- "danger of black ice (above Q hundred metres)",
- "..", "..", // 1050
- "..", "..", "..",
- "slippery due to loose sand on roadway",
- "mud on road. Danger",
- "loose chippings. Danger",
- "oil on road. Danger",
- "petrol on road. Danger",
- "road surface in poor condition. Danger",
- "icy patches (above Q hundred metres) on bridges", // 1060
- "danger of icy patches (above Q hundred metres) on bridges",
- "icy patches (above Q hundred metres) on bridges, in shaded areas and on s",
- "impassable for heavy vehicles (over Q)",
- "impassable (above Q hundred metres) for vehicles with trailers",
- "driving conditions improved",
- "rescue and recovery work in progress. Danger",
- "large animals on roadway",
- "herds of animals on roadway",
- "skid hazard reduced",
- "snow cleared", // 1070
- "..", "..",
- "extremely hazardous driving conditions expected (above Q hundred meters",
- "freezing rain expected (above Q hundred metres)",
- "danger of road being blocked by snow (above Q hundred metres)",
- "..", "..", "..",
- "temperature falling rapidly (to Q)",
- "extreme heat (up to Q)", // 1080
- "extreme cold (of Q)",
- "less extreme temperatures",
- "current temperature (Q)",
- "..", "..", "..", "..", "..", "..", "..", // 1090
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1100
- "heavy snowfall (Q)",
- "heavy snowfall (Q). Visibility reduced to < ?? m",
- "heavy snowfall (Q). Visibility reduced to < ?? m",
- "snowfall (Q)",
- "snowfall (Q). Visibility reduced to < ?? m",
- "hail (visibility reduced to Q)",
- "sleet (visibility reduced to Q)",
- "thunderstorms (visibility reduced to Q)",
- "heavy rain (Q)",
- "heavy rain (Q). Visibility reduced to < ?? m", // 1110
- "heavy rain (Q). Visibility reduced to < ?? m",
- "rain (Q)",
- "rain (Q). Visibility reduced to < ?? m",
- "showers (visibility reduced to Q)",
- "heavy frost",
- "frost",
- "..", "..", "..", "..", // 1120
- "..", "..", "..", "..", "..",
- "weather situation improved",
- "message cancelled",
- "winter storm (visibility reduced to Q)",
- "..",
- "blizzard (visibility reduced to Q)", // 1130
- "..",
- "damaging hail (visibility reduced to Q)",
- "..",
- "heavy snowfall. Visibility reduced (to Q)",
- "snowfall. Visibility reduced (to Q)",
- "heavy rain. Visibility reduced (to Q)",
- "rain. Visibility reduced (to Q)",
- "..", "..", "..", // 1140
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1150
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1160
- "..", "..", "..", "..", "..", "..", "..", "..", "..",
- "heavy snowfall (Q) expected", // 1170
- "heavy rain (Q) expected",
- "weather expected to improve",
- "blizzard (with visibility reduced to Q) expected",
- "damaging hail (with visibility reduced to Q) expected",
- "reduced visibility (to Q) expected",
- "freezing fog expected (with visibility reduced to Q). Danger of slippery roads",
- "dense fog (with visibility reduced to Q) expected",
- "patchy fog (with visibility reduced to Q) expected",
- "visibility expected to improve",
- "adverse weather warning withdrawn", // 1180
- "..", "..", "..", "..", "..", "..", "..", "..", "..",
- "severe smog", // 1190
- "severe exhaust pollution",
- "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1200
- "tornadoes",
- "hurricane force winds (Q)",
- "gales (Q)",
- "storm force winds (Q)",
- "strong winds (Q)",
- "..", "..", "..",
- "gusty winds (Q)",
- "crosswinds (Q)", // 1210
- "strong winds (Q) affecting high-sided vehicles",
- "closed for high-sided vehicles due to strong winds (Q)",
- "strong winds easing",
- "message cancelled",
- "restrictions for high-sided vehicles lifted",
- "..",
- "tornado warning ended",
- "..", "..", "..", // 1220
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1230
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1240
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1250
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1260
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1270
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1280
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1290
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1300
- "dense fog (visibility reduced to Q)",
- "dense fog. Visibility reduced to < ?? m",
- "dense fog. Visibility reduced to < ?? m",
- "fog (visibility reduced to Q)",
- "fog. Visibility reduced to < ?? m",
- "..",
- "patchy fog (visibility reduced to Q)",
- "freezing fog (visibility reduced to Q)",
- "smoke hazard (visibility reduced to Q)",
- "blowing dust (visibility reduced to Q)", // 1310
- "..",
- "snowfall and fog (visibility reduced to Q)",
- "visibility improved",
- "message cancelled",
- "..", "..", "..",
- "visibility reduced (to Q)",
- "visibility reduced to < ?? m",
- "visibility reduced to < ?? m", // 1320
- "visibility reduced to < ?? m",
- "white out (visibility reduced to Q)",
- "blowing snow (visibility reduced to Q)",
- "spray hazard (visibility reduced to Q)",
- "low sun glare",
- "sandstorms (visibility reduced to Q)",
- "..", "..", "..", "..", // 1330
- "..",
- "smog alert",
- "..", "..", "..", "..",
- "freezing fog (visibility reduced to Q). Slippery roads",
- "no motor vehicles due to smog alert",
- "..",
- "swarms of insects (visibility reduced to Q)", // 1340
- "..", "..", "..", "..",
- "fog clearing",
- "fog forecast withdrawn",
- "..", "..", "..", "..", // 1350
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1360
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1370
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1380
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1390
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1400
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1410
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1420
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1430
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1440
- "..", "..", "..", "..", "..", "..", "..", "..", "..",
- "international sports meeting", // 1450
- "match",
- "tournament",
- "athletics meeting",
- "ball game",
- "boxing tournament",
- "bull fight",
- "cricket match",
- "cycle race",
- "football match",
- "golf tournament", // 1460
- "marathon",
- "race meeting",
- "rugby match",
- "show jumping",
- "tennis tournament",
- "water sports meeting",
- "winter sports meeting",
- "funfair",
- "trade fair",
- "procession", // 1470
- "sightseers obstructing access",
- "people on roadway",
- "children on roadway",
- "cyclists on roadway",
- "strike",
- "security incident",
- "police checkpoint",
- "terrorist incident",
- "gunfire on roadway, danger",
- "civil emergency", // 1480
- "air raid, danger",
- "people on roadway. Danger",
- "children on roadway. Danger",
- "cyclists on roadway. Danger",
- "closed due to security incident",
- "security incident. Delays (Q)",
- "security incident. Delays (Q) expected",
- "security incident. Long delays (Q)",
- "police checkpoint. Delays (Q)",
- "police checkpoint. Delays (Q) expected", // 1490
- "police checkpoint. Long delays (Q)",
- "security alert withdrawn",
- "sports traffic cleared",
- "evacuation",
- "evacuation. Heavy traffic",
- "traffic disruption cleared",
- "..", "..", "..", "..", // 1500
- "major event",
- "sports event meeting",
- "show",
- "festival",
- "exhibition",
- "fair",
- "market",
- "ceremonial event",
- "state occasion",
- "parade", // 1510
- "crowd",
- "march",
- "demonstration",
- "public disturbance",
- "security alert",
- "bomb alert",
- "major event. Stationary traffic",
- "major event. Danger of stationary traffic",
- "major event. Queuing traffic",
- "major event. Danger of queuing traffic", // 1520
- "major event. Slow traffic",
- "major event. Slow traffic expected",
- "major event. Heavy traffic",
- "major event. Heavy traffic expected",
- "major event. Traffic flowing freely",
- "major event. Traffic building up",
- "closed due to major event",
- "major event. Delays (Q)",
- "major event. Delays (Q) expected",
- "major event. Long delays (Q)", // 1530
- "sports meeting. Stationary traffic",
- "sports meeting. Danger of stationary traffic",
- "sports meeting. Queuing traffic",
- "sports meeting. Danger of queuing traffic",
- "sports meeting. Slow traffic",
- "sports meeting. Slow traffic expected",
- "sports meeting. Heavy traffic",
- "sports meeting. Heavy traffic expected",
- "sports meeting. Traffic flowing freely",
- "sports meeting. Traffic building up", // 1540
- "closed due to sports meeting",
- "sports meeting. Delays (Q)",
- "sports meeting. Delays (Q) expected",
- "sports meeting. Long delays (Q)",
- "fair. Stationary traffic",
- "fair. Danger of stationary traffic",
- "fair. Queuing traffic",
- "fair. Danger of queuing traffic",
- "fair. Slow traffic",
- "fair. Slow traffic expected", // 1550
- "fair. Heavy traffic",
- "fair. Heavy traffic expected",
- "fair. Traffic flowing freely",
- "fair. Traffic building up",
- "closed due to fair",
- "fair. Delays (Q)",
- "fair. Delays (Q) expected",
- "fair. Long delays (Q)",
- "closed due to parade",
- "parade. Delays (Q)", // 1560
- "parade. Delays (Q) expected",
- "parade. Long delays (Q)",
- "closed due to strike",
- "strike. Delays (Q)",
- "strike. Delays (Q) expected",
- "strike. Long delays (Q)",
- "closed due to demonstration",
- "demonstration. Delays (Q)",
- "demonstration. Delays (Q) expected",
- "demonstration. Long delays (Q)", // 1570
- "security alert. Stationary traffic",
- "security alert. Danger of stationary traffic",
- "security alert. Queuing traffic",
- "security alert. Danger of queuing traffic",
- "security alert. Slow traffic",
- "security alert. Slow traffic expected",
- "security alert. Heavy traffic",
- "security alert. Heavy traffic expected",
- "security alert. Traffic building up",
- "closed due to security alert", // 1580
- "security alert. Delays (Q)",
- "security alert. Delays (Q) expected",
- "security alert. Long delays (Q)",
- "traffic has returned to normal",
- "message cancelled",
- "security alert. Traffic flowing freely",
- "air raid warning cancelled",
- "civil emergency cancelled",
- "message cancelled",
- "several major events", // 1590
- "information about major event no longer valid",
- "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1600
- "delays (Q)",
- "delays up to ?? minutes",
- "delays up to ?? minutes",
- "delays up to one hour",
- "delays up to two hours",
- "delays of several hours",
- "delays (Q) expected",
- "long delays (Q)",
- "delays (Q) for heavy vehicles",
- "delays up to ?? minutes for heavy lorr(y/ies)", // 1610
- "delays up to ?? minutes for heavy lorr(y/ies)",
- "delays up to one hour for heavy lorr(y/ies)",
- "delays up to two hours for heavy lorr(y/ies)",
- "delays of several hours for heavy lorr(y/ies)",
- "service suspended (until Q)",
- "(Q) service withdrawn",
- "(Q) service(s) fully booked",
- "(Q) service(s) fully booked for heavy vehicles",
- "normal services resumed",
- "message cancelled", // 1620
- "delays up to ?? minutes",
- "delays up to ?? minutes",
- "delays up to ?? minutes",
- "delays up to ?? minutes",
- "delays up to ?? minutes",
- "delays up to ?? minutes",
- "delays up to ?? minutes",
- "delays up to three hours",
- "delays up to four hours",
- "delays up to five hours", // 1630
- "very long delays (Q)",
- "delays of uncertain duration",
- "delayed until further notice",
- "cancellations",
- "park and ride service not operating (until Q)",
- "special public transport services operating (until Q)",
- "normal services not operating (until Q)",
- "rail services not operating (until Q)",
- "bus services not operating (until Q)",
- "shuttle service operating (until Q)", // 1640
- "free shuttle service operating (until Q)",
- "delays (Q) for heavy lorr(y/ies)",
- "delays (Q) for buses",
- "(Q) service(s) fully booked for heavy lorr(y/ies)",
- "(Q) service(s) fully booked for buses",
- "next departure (Q) for heavy lorr(y/ies)",
- "next departure (Q) for buses",
- "delays cleared",
- "rapid transit service not operating (until Q)",
- "delays (Q) possible", // 1650
- "underground service not operating (until Q)",
- "cancellations expected",
- "long delays expected",
- "very long delays expected",
- "all services fully booked (until Q)",
- "next arrival (Q)",
- "rail services irregular. Delays (Q)",
- "bus services irregular. Delays (Q)",
- "underground services irregular",
- "normal public transport services resumed", // 1660
- "ferry service not operating (until Q)",
- "park and ride trip time (Q)",
- "delay expected to be cleared",
- "..", "..", "..", "..", "..", "..", "..", // 1670
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1680
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1690
- "..", "..", "..", "..",
- "current trip time (Q)",
- "expected trip time (Q)",
- "..", "..", "..",
- "(Q) slow moving maintenance vehicle(s)", // 1700
- "(Q) vehicle(s) on wrong carriageway",
- "dangerous vehicle warning cleared",
- "message cancelled",
- "(Q) reckless driver(s)",
- "(Q) prohibited vehicle(s) on the roadway",
- "(Q) emergency vehicles",
- "(Q) high-speed emergency vehicles",
- "high-speed chase (involving Q vehicles)",
- "spillage occurring from moving vehicle",
- "objects falling from moving vehicle", // 1710
- "emergency vehicle warning cleared",
- "road cleared",
- "..", "..", "..", "..", "..", "..", "..",
- "rail services irregular", // 1720
- "public transport services not operating",
- "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1730
- "(Q) abnormal load(s), danger",
- "(Q) wide load(s), danger",
- "(Q) long load(s), danger",
- "(Q) slow vehicle(s), danger",
- "(Q) track-laying vehicle(s), danger",
- "(Q) vehicle(s) carrying hazardous materials. Danger",
- "(Q) convoy(s), danger",
- "(Q) military convoy(s), danger",
- "(Q) overheight load(s), danger",
- "abnormal load causing slow traffic. Delays (Q)", // 1740
- "convoy causing slow traffic. Delays (Q)",
- "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1750
- "(Q) abnormal load(s)",
- "(Q) wide load(s)",
- "(Q) long load(s)",
- "(Q) slow vehicle(s)",
- "(Q) convoy(s)",
- "abnormal load. Delays (Q)",
- "abnormal load. Delays (Q) expected",
- "abnormal load. Long delays (Q)",
- "convoy causing delays (Q)",
- "convoy. Delays (Q) expected", // 1760
- "convoy causing long delays (Q)",
- "exceptional load warning cleared",
- "message cancelled",
- "(Q) track-laying vehicle(s)",
- "(Q) vehicle(s) carrying hazardous materials",
- "(Q) military convoy(s)",
- "(Q) abnormal load(s). No overtaking",
- "Vehicles carrying hazardous materials have to stop at next safe place!",
- "hazardous load warning cleared",
- "convoy cleared", // 1770
- "warning cleared",
- "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1780
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1790
- "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", // 1800
- "lane control signs not working",
- "emergency telephones not working",
- "emergency telephone number not working",
- "(Q sets of) traffic lights not working",
- "(Q sets of) traffic lights working incorrectly",
- "level crossing failure",
- "(Q sets of) traffic lights not working. Stationary traffic",
- "(Q sets of) traffic lights not working. Danger of stationary traffic",
- "(Q sets of) traffic lights not working. Queuing traffic",
- "(Q sets of) traffic lights not working. Danger of queuing traffic", // 1810
- "(Q sets of) traffic lights not working. Slow traffic",
- "(Q sets of) traffic lights not working. Slow traffic expected",
- "(Q sets of) traffic lights not working. Heavy traffic",
- "(Q sets of) traffic lights not working. Heavy traffic expected",
- "(Q sets of) traffic lights not working. Traffic flowing freely",
- "(Q sets of) traffic lights not working. Traffic building up",
- "traffic lights not working. Delays (Q)",
- "traffic lights not working. Delays (Q) expected",
- "traffic lights not working. Long delays (Q)",
- "level crossing failure. Stationary traffic", // 1820
- "level crossing failure. Danger of stationary traffic",
- "level crossing failure. Queuing traffic",
- "level crossing failure. Danger of queuing traffic",
- "level crossing failure. Slow traffic",
- "level crossing failure. Slow traffic expected",
- "level crossing failure. Heavy traffic",
- "level crossing failure. Heavy traffic expected",
- "level crossing failure. Traffic flowing freely",
- "level crossing failure. Traffic building up",
- "level crossing failure. Delays (Q)", // 1830
- "level crossing failure. Delays (Q) expected",
- "level crossing failure. Long delays (Q)",
- "electronic signs repaired",
- "emergency call facilities restored",
- "traffic signals repaired",
- "level crossing now working normally",
- "message cancelled",
- "lane control signs working incorrectly",
- "lane control signs operating",
- "variable message signs not working", // 1840
- "variable message signs working incorrectly",
- "variable message signs operating",
- "(Q sets of) ramp control signals not working",
- "(Q sets of) ramp control signals working incorrectly",
- "(Q sets of) temporary traffic lights not working",
- "(Q sets of) temporary traffic lights working incorrectly",
- "traffic signal control computer not working",
- "traffic signal timings changed",
- "tunnel ventilation not working",
- "lane control signs not working. Danger", // 1850
- "temporary width limit (Q)",
- "temporary width limit lifted",
- "..",
- "traffic regulations have been changed",
- "less than parking spaces available",
- "no parking information available (until Q)",
- "message cancelled",
- "..", "..", "..", // 1860
- "temporary height limit (Q)",
- "temporary height limit lifted",
- "..",
- "lane control signs working incorrectly. Danger",
- "emergency telephones out of order. Extra police patrols in operation",
- "emergency telephones out of order. In emergency, wait for police patrol",
- "(Q sets of) traffic lights not working. Danger",
- "traffic lights working incorrectly. Delays (Q)",
- "traffic lights working incorrectly. Delays (Q) expected",
- "traffic lights working incorrectly. Long delays (Q)", // 1870
- "temporary axle load limit (Q)",
- "temporary gross weight limit (Q)",
- "temporary gross weight limit lifted",
- "temporary axle weight limit lifted",
- "(Q sets of) traffic lights working incorrectly. Danger",
- "temporary traffic lights not working. Delays (Q)",
- "temporary traffic lights not working. Delays (Q) expected",
- "temporary traffic lights not working. Long delays (Q)",
- "(Q sets of) temporary traffic lights not working. Danger",
- "traffic signal control computer not working. Delays (Q)", // 1880
- "temporary length limit (Q)",
- "temporary length limit lifted",
- "message cancelled",
- "traffic signal control computer not working. Delays (Q) expected",
- "traffic signal control computer not working. Long delays (Q)",
- "normal parking restrictions lifted",
- "special parking restrictions in force",
- "10% full",
- "20% full",
- "30% full", // 1890
- "40% full",
- "50% full",
- "60% full",
- "70% full",
- "80% full",
- "90% full",
- "less than ?? parking spaces available",
- "less than ?? parking spaces available",
- "less than ?? parking spaces available",
- "less than ?? parking spaces available", // 1900
- "next departure (Q)",
- "next departure (Q) for heavy vehicles",
- "car park (Q) full",
- "all car parks (Q) full",
- "less than (Q) car parking spaces available",
- "park and ride service operating (until Q)",
- "(null event)",
- "switch your car radio (to Q)",
- "alarm call: important new information on this frequency follows now in normal",
- "alarm set: new information will be broadcast between these times in normal", // 1910
- "message cancelled",
- "..",
- "switch your car radio (to Q)",
- "no information available (until Q)",
- "this message is for test purposes only (number Q), please ignore",
- "no information available (until Q) due to technical problems",
- "..",
- "full",
- "..",
- "only a few parking spaces available", // 1920
- "(Q) parking spaces available",
- "expect car park to be full",
- "expect no parking spaces available",
- "multi story car parks full",
- "no problems to report with park and ride services",
- "no parking spaces available",
- "no parking (until Q)",
- "special parking restrictions lifted",
- "urgent information will be given (at Q) on normal programme broadcasts",
- "this TMC-service is not active (until Q)", // 1930
- "detailed information will be given (at Q) on normal programme broadcasts",
- "detailed information is provided by another TMC service",
- "..",
- "no park and ride information available (until Q)",
- "..", "..", "..",
- "park and ride information service resumed",
- "..",
- "additional regional information is provided by another TMC service", // 1940
- "additional local information is provided by another TMC service",
- "additional public transport information is provided by another TMC service",
- "national traffic information is provided by another TMC service",
- "this service provides major road information",
- "this service provides regional travel information",
- "this service provides local travel information",
- "no detailed regional information provided by this service",
- "no detailed local information provided by this service",
- "no cross-border information provided by this service",
- "information restricted to this area", // 1950
- "no new traffic information available (until Q)",
- "no public transport information available",
- "this TMC-service is being suspended (at Q)",
- "active TMC-service will resume (at Q)",
- "reference to audio programmes no longer valid",
- "reference to other TMC services no longer valid",
- "previous announcement about this or other TMC services no longer valid",
- "..", "..", "..", // 1960
- "allow emergency vehicles to pass in the carpool lane",
- "carpool lane available for all vehicles",
- "police directing traffic via the carpool lane",
- "..", "..", "..", "..", "..", "..", "..", // 1970
- "police directing traffic",
- "buslane available for all vehicles",
- "police directing traffic via the buslane",
- "allow emergency vehicles to pass",
- "..", "..",
- "allow emergency vehicles to pass in the heavy vehicle lane",
- "heavy vehicle lane available for all vehicles",
- "police directing traffic via the heavy vehicle lane",
- "..", // 1980
- "..",
- "buslane closed",
- "..", "..", "..", "..", "..", "..", "..", "..", // 1990
- "..", "..", "..", "..", "..", "..", "..", "..", "..",
- "closed due to smog alert (until Q)", // 2000
- "..", "..", "..", "..", "..",
- "closed for vehicles with less than three occupants {not valid for lorries}",
- "closed for vehicles with only one occupant {not valid for lorries}",
- "..", "..", "..", // 2010
- "..", "..",
- "service area busy",
- "..", "..", "..", "..", "..", "..", "..", // 2020
- "service not operating, substitute service available",
- "public transport strike",
- "..", "..", "..", "..", "..",
- "message cancelled",
- "message cancelled",
- "message cancelled", // 2030
- "..", "..",
- "message cancelled",
- "message cancelled",
- "message cancelled",
- "..", "..",
- "message cancelled",
- "message cancelled",
- "message cancelled", // 2040
- "..", "..", "..", "..", "..", "..",
- "(null message)", // last = 2047
-};
-
-const char *tmc_mglabel[16] = {
- "Duration",
- "Control code",
- "Length",
- "Speed limit",
- "Quantifier",
- "Quantifier",
- "Info code",
- "Start time",
- "Stop time",
- "Event",
- "Diversion",
- "Location",
- "unknown",
- "Location",
- "NOP",
- "unknown",
-};
-int tmc_mgsize[16] = { 3, 3, 5, 5, 5, 8, 8, 8, 8, 11, 16, 16, 16, 16, 0, 0 };
-
-// TMC, Alert-C Coding
-void tmc_parser(unsigned char *data, int len) {
- static char lastdata[6];
-
- if (len < 6) {
- printf("TMC Length only '%d' bytes (<6).\n", len);
- return;
- }
-
- if (memcmp(data, lastdata, 6) == 0) {
- printf("TMC Repeating.\n");
- return;
- }
- memcpy(lastdata, data, 6);
-
- // Buffer = data[0], todo or not :D
-
- // check Encrypted-Service, TMC Pro ?
- if ((data[1] & 0x1f) == 0x00) { // Type+DP = '00000'
- printf("TMC Encrypted Service detected, TMC-Pro?\n");
- return;
- }
-
- int type = (data[1] & 0x18) >> 3; // Type = User-,TuningInformation & Multi-,Singlegroup Message
- int dp = data[1] & 0x07; // Duration+Persistance or Continuity Index
- int da = (data[2] & 0x80) >> 7; // DiversionAdvice or GroupIndicator
- int di = (data[2] & 0x40) >> 6; // Direction (-/+) or 2.GroupIndicator
- int ex = (data[2] & 0x38) >> 3; // Extent
- int ev = (data[2] & 0x07) << 8 | data[3]; // Event
- int lo = data[4] << 8 | data[5]; // Location
-
- switch (type) {
- case 0: // Multigroup-Message
- printf("TMC Multi-Group Message, ");
- if (da == 1) {
- printf("First:\n");
- printf(" CI: '%d', Direction: %s, Extent: '%d'\n", dp,
- tmc_direction[di], ex);
- printf(" Event: '%d' = %s\n", ev, tmc_event[ev]);
- printf(" Location: '%d' > LT not available yet :-(\n", lo);
- }
- else {
- int gsi = (data[2] & 0x30) >> 4; // GroupSequenceIdentifier
- printf("Subsequent:\n");
- printf(
- " CI: '%d', 2.GI: '%d', GSI: '%d', Block_0x: '%02x%02x%02x%02x'\n",
- dp, di, gsi, data[2] & 0xf, data[3], data[4], data[5]);
- if (di == 0) {
- printf(" SecondGroupIndicator = 0 -> todo, exit here.\n\n");
- return;
- }
- unsigned int block = (data[2] & 0x0f) << 24 | data[3] << 16
- | data[4] << 8 | data[5];
- int lc = 1;
- int rbits = 28;
- while (rbits > 0) {
- int lb = block >> (rbits - 4);
- rbits -= 4;
- if (lb <= 0)
- return;
- block = block & ((unsigned long int) (pow(2, rbits)) - 1);
- rbits -= tmc_mgsize[lb];
- int val = block >> (rbits);
- printf(" #%d: Label '%02d' = %s", lc, lb, tmc_mglabel[lb]);
- if (val > 0) {
- switch (lb) {
- case 0:
- printf(", Value '%d' min.?\n", val);
- break;
- case 2:
- printf(", Value '%d' km?\n", val);
- break;
- case 3:
- printf(", Value '%d' km/h?\n", val);
- break;
- case 9:
- printf(", Value '%d' = %s\n", val, tmc_event[val]);
- break;
- case 11:
- case 13:
- printf(", Value '%d' > LT not available yet :-(\n",
- val);
- break;
- case 14:
- case 15:
- printf(" ---\n");
- break;
- default:
- printf(", Value '%d'\n", val);
- }
- }
- else {
- if (block > 0) {
- printf(", rest block_0x '%04x'\n", (int) block);
- }
- else {
- printf(", ...\n");
- }
- }
- block = block & ((unsigned int) (pow(2, rbits)) - 1);
- lc++;
- }
- }
- break;
- case 1: // Singlegroup-Message
- printf("TMC Single-Group Message:\n");
- printf(" Duration: %s, Diversion: '%d', Direction: %s, Extent: '%d'\n",
- tmc_duration[dp], da, tmc_direction[di], ex);
- printf(" Event: '%d' = %s\n", ev, tmc_event[ev]);
- printf(" Location: '%d' > LT not available yet :-(\n", lo);
- break;
- case 2:
- case 3: // System,Tuning
- printf("TMC Tuning/System Information:\n");
- switch (data[1] & 0x0f) {
- case 9:
- printf(" LTN: '%d', MGS: '%d', SID: '%d' %04x.\n", data[2] >> 2,
- (data[2] & 0x03) << 2 | data[3] >> 6, data[3] & 0x3f, lo);
- break;
- default:
- printf(" todo, exit.\n");
- }
- }
-}
-
const char* ptynr2string(int nr) {
switch (nr) {
// Source: http://www.ebu.ch/trev_255-beale.pdf