RSMP (Trafikledning)
RSMP, Road Side Message Protocol, är en öppen standard för att övervaka vägsidesutrustning. Den kommer ur ett nordiskt samarbete mellan väghållare, förvaltas av RSMP Nordic och används även utanför Norden, bland annat i andra europeiska länder. Eftersom den är öppen och leverantörsoberoende övervakas utrustning från vilken leverantör som helst som implementerar den på samma sätt.
Den är inte heller specifik för en sorts utrustning. Trafiksignalstyrapparater, variabla meddelandeskyltar, väderstationer, tunnel- och bomutrustning övervakas alla genom samma protokoll, var och en beskriven av sin egen SXL.
Yggio talar RSMP som ett övervakningssystem. Det som ansluts blir vanliga Yggio-enheter: de syns i vyer, går att filtrera på, driver regler och rapporter, och ligger på kartan bland allt annat i beståndet.
Vad Yggio avkodar idag. Implementationen täcker SXL för trafiksignalstyrapparater (1.0.15): signalgrupper, detektorlogiker, larm och aggregerad status. Andra typer av RSMP-utrustning använder samma anslutning och samma protokoll, men var och en behöver sin egen SXL-avkodning innan värdena kommer in namngivna i stället för råa. Fråga supporten om du har utrustning som inte är en trafiksignalstyrapparat.
Att sätta upp en anläggning är tre steg: skapa RSMP-connectorn, installera styrapparatkomponenten, och installera sedan detektorlogikerna och signalgrupperna. Connectorn har en egen sida; de två installationsstegen beskrivs nedan.
Vad en trafiksignalstyrapparat rapporterar
En korsning är en anläggning, och en anläggning innehåller många delar. Två statusmeddelanden bär nästan allt:
- S0001, signalgruppsstatus. Ett tecken per signalgrupp, som beskriver vad gruppen visar: grönt, rött, gult, rödgult, släckt, blinkande.
- S0002, detektorlogikstatus. Ett tecken per detektorlogik,
1när detektorn är belagd och0när den inte är det.
Båda kommer som en enda sträng som täcker hela arrayen, inte som separata värden. Ett verkligt S0001 från en korsning med tolv grupper ser ut så här:
"sCI": "S0001", "n": "signalgroupstatus", "s": "F5F35F5F1F5F"
och ett detektorlogikmeddelande från en anläggning med hundra detektorer så här, avkortat:
"sCI": "S0002", "n": "detectorlogicstatus", "s": "0100000001100011100000000000..."
Position 2 är en 1, alltså är detektorlogik 2 belagd. Allt annat i det utdraget är fritt.
Uppdelning: en position per enhet
En sträng är inte till mycket nytta i en dashboard, så Yggio delar upp den. Varje komponent du installerar gör anspråk på en position, och Yggio skriver bara den positionens värde till den enheten.

De fyra rollerna avgör hur en komponent läser den råa statusen:
| Roll | Representerar |
|---|---|
| Controller | Själva styrapparaten: aggregerad status, larm, anslutningstillstånd |
| Detector logic | En position i S0002 |
| Signal group | En position i S0001 |
| Group | En vald uppsättning positioner, samlade till en enhet |
Eftersom varje position blir en enhet fungerar allt som fungerar på enheter även här. En vy filtrerad
på signalGroup ger korsningens tillstånd med en blick:


För att följa detektorlogiker medan de händer är widgeten Swimlane ett utmärkt val. Den ger varje detektor en egen bana och rullar dem tillsammans, så ett fordon som passerar flera detektorer i följd syns som ett mönster i stället för som separata siffror som ändras. En detektorlogik är antingen upptagen eller inte, vilket gör banorna lättlästa bredvid varandra. Det är en live-vy som inte sparar någon historik, så använd den för att titta på en korsning snarare än för att slå upp något i efterhand.
Du behöver SXL
SXL, signal exchange list, är styrapparatens egen specifikation: vilken detektorlogik och vilken signalgrupp som ligger på vilken position, och vad var och en är till för. Det är ett RSMP-begrepp, inte ett Yggio-begrepp, och anläggningens väghållare eller styrapparatleverantör har den.
Utan SXL är positionerna gissningar. Det spelar större roll än det låter, eftersom en komponent som pekar på fel position inte fallerar: den rapporterar ett verkligt värde från fel detektor, och den gör det övertygande. Bekräfta minst två positioner mot SXL innan du litar på resten.
Skaffa den innan du påbörjar installationen nedan, inte efteråt.
Installera komponenter
Ingenting skapas automatiskt. När connectorn finns installeras varje komponent du vill ha i Yggio som en enhet, från Ny enhet med enhetstypen RSMP. Samma formulär används för alla; det är rollen som gör den ena till en styrapparat och nästa till en detektorlogik.
Installera styrapparaten först, sedan detektorlogikerna och signalgrupperna.

| Fält | Beskrivning |
|---|---|
| Component ID | Komponentens identifierare i styrapparaten, i SXL-form, till exempel AA+BBCCC=DDDDL001. Den måste matcha styrapparaten exakt, och varje enhet behöver sin egen |
| External Node ID | Nodidentifieraren, till exempel X00001 |
| RSMP Connector | Connectorn för den här anläggningen |
| Status Codes | Vilka statusmeddelanden komponenten prenumererar på: S0001 - Signal group status, S0002 - Detector logic status, eller båda |
| Role | Vad komponenten representerar, vilket avgör hur den råa statusen läses |
| Detector logic number / Signal group number | Vilken position i statussträngen enheten läser, räknat från 1. Visas för de roller som behöver det |
Enheterna är syskon snarare än en hierarki. En detektorlogik ligger inte under styrapparatenheten: var och en refererar direkt till connectorn och bär sitt eget komponent-id. Styrapparaten är helt enkelt den komponent vars roll är Controller.
Verifiering
- Kontrollera att styrapparaten ansluter: styrapparatkomponentens anslutningstillstånd ska vara levande snarare än timeoutat.
- Installera en detektorlogik och vänta på nästa statusmeddelande.
- Bekräfta att dess värde stämmer med vad SXL säger att den positionen ska vara.
- Jämför en andra position innan du litar på resten, eftersom ett fel på ett steg i indexet ger rimliga värden i stället för ett felmeddelande.
När en komponent beter sig fel
Den rapporterar ingenting. Kontrollera att prenumerationen på statuskoder matchar rollen: en
detektorlogik behöver S0002, en signalgrupp behöver S0001. En komponent som prenumererar på
ingendera får ingen status.
Den rapporterar fel sak. Nästan alltid indexet. Positionerna räknas från 1 och definieras av anläggningens SXL, inte av den ordning komponenterna installerades.
Dess värden upprepas. Det är styrapparaten, inte Yggio. Se upprepade värden.
Upprepade värden
Styrapparaten skickar hela arrayen så snart något ändras, inklusive de värden som inte gjorde det. Om
en detektor av hundra blir belagd skickas alla hundra positioner igen, och de nittionio oförändrade
kommer in med samma värde som förut. En detektorlogik som ligger på 0 kan därför rapporteras som
0 många gånger om.
Det är normalt RSMP-beteende, inte ett fel, men det spelar roll för allt nedströms:
- Yggio undertrycker upprepningarna. Varje komponents del jämförs mot det senast skrivna värdet för den, och en identisk upprepning skrivs inte igen. Enhetens historik speglar alltså faktiska förändringar snarare än meddelandetrafik.
- Räkna inte meddelanden som händelser. En regel som utlöses på "rapporterad" i stället för på en förändring skulle utlösas vid varje upplänk för varje position. Utlös på att värdet ändras.
- Tidsstämplarna är styrapparatens. I exempeldatan ovan kommer tio statusmeddelanden in på cirka tre och en halv minut, vilket är skåpet som rapporterar, inte detektorerna som ändrar sig så ofta.
Färskhet
Signalgruppsstatus bär en kvalitetsflagga från styrapparaten, och Yggio visar den på enheten. I
vyerna ovan står den som recent på levande data och old på inaktuell data.
Behandla den som en del av avläsningen. En signalgrupp som visar grönt med kvaliteten old berättar
vad den senast visste, inte vad ljuset gör nu, och en operativ vy bör göra det synligt snarare än att
dölja det bakom värdet.
Larm och aggregerad status
Vid sidan av statusmeddelandena skickar en styrapparat:
- Larm, vart och ett med en larmkod, ett tillstånd och en tidsstämpel, till exempel kod
A0010som går tillinActive. De styrs till den komponent de hör till. - Aggregerad status, styrapparatens egen sammanfattning av sitt tillstånd.
Båda landar på styrapparatkomponenten, vilket är varför det är värt att installera en även när det är detektorerna och signalgrupperna du egentligen är ute efter.