Asema-aikojen välitys

KalkkuWikistä
Siirry navigaatioonSiirry hakuun

Ennen vuotta 2018 käytössä oli tekstiviestipohjainen asema-aikojen siirto asemilta laskentaa. Lisätietoja tästä tavasta sivulla SMS-siirtotiedosto.

Vuodesta 2018 eteenpäin on käytössä internet-pohjainen siirtotapa.

Siirtotapa käyttää hyväksi WebSocket protokollaa (Draft_6455) TCP portissa 8275.

Ajan välitys

Asema emittoi tämän viestin aina, kun aika kirjataan joko ponderista tai käsistyötöstä.

{
    "station": "Asema16",
    "competition": "166656",
    "signature": "aW52YWxpZA==",
    "sent": "2007-11-20T22:19:17.531+02:00",
    "data": {
        "event": "passing",
        "id": "70",
        "type": "Route-TC-Finish",
        "round": "ET 4 TC 9 Huhdanoja A",
        "time": "2007-11-20T22:19:17.532+02:00",
        "tctime": "2007-11-20T22:19:00.000+02:00",
        "transponder": "7",
        "hits": "0",
        "lap": "5"
    }
}

Jossa

  • station: aseman tunniste (ohjelman asetukset sivun ensimmäinen kenttä)
  • competition: kilpailun tunniste
  • signature: digitaalinen allekirjoitus (base64 koodattu SHA1withRSA)
  • sent: viestin lähetysaika (ISO 8601)
  • event: välitetyn viestin tyyppi
  • id: viestin tunniste (kasvaa aina yhdellä, kunnes valittu mk/at vaihdetaan tai taulut tyhjennetään ajoista)
  • type: asemalla nyt valitun mk/at tyyppi
  • round: asemalla nyt valitun mk/at tyyppi nimi
  • time: aika (ISO 8601)
  • tctime: at-aika (ISO 8601, arvo on sama kuin time arvo, jos aseman tyyppi ei ole jokin TC)
  • transponder: ponderi
  • hits: monderin lukukerrat per luenta
  • lap: ponderin lukukerrat per mk/at

mk/at tyypit

  • Route-Finish: MK maali
  • Route-Start: MK lähtö
  • TC-Time: AT normaali
  • TC-Separate: AT luokkajako eri reiteille
  • TC-Pause: AT tauko
  • Route-TC-Finish: MK+AT maali
  • Route-TC-Start: MK+AT lähtö

Välitettyjen aikojen kuittaus

Asema odottaa välitettyjen aikojen kuittausta. Jos välitettyä aikaa ei kuitata takaisin, asema lähettää sen seuraavalla syklillä uudestaan, niin kauan, kunnes kuittaus vastaanotetaan asemalla.

Vastausviestin muoto on: bumb-<data.id>

Esimerkki kuittausviestistä

bumb-4291

Yhdistysviesti

Asema emittoi tämän viestin aina, kun se saa yhteyden laskentaan.

{
    "station": "Asema16",
    "competition": "166656",
    "signature": "aW52YWxpZA==",
    "sent": "2007-11-20T22:19:17.531+02:00",
    "data": {
        "event": "connected",
        "id": "0",
        "version": "1.2.30"
    }
}

Jossa

  • station: aseman tunniste (ohjelman asetukset sivun ensimmäinen kenttä)
  • competition: kilpailun tunniste
  • signature: digitaalinen allekirjoitus (base64 koodattu SHA1withRSA)
  • sent: viestin lähetysaika (ISO 8601)
  • event: välitetyn viestin tyyppi
  • id: viestin tunniste (aina 0 tässä viestissä)
  • version: asemaohjelman versio

Heräteviesti

Asema emittoi tämän viestin 30 sekunnin välein.

{
    "station": "Asema16",
    "competition": "166656",
    "signature": "aW52YWxpZA==",
    "sent": "2007-11-20T22:19:17.531+02:00",
    "data": {
        "event": "keepalive",
        "id": "0"
    }
}

Jossa

  • station: aseman tunniste (ohjelman asetukset sivun ensimmäinen kenttä)
  • competition: kilpailun tunniste
  • signature: digitaalinen allekirjoitus (base64 koodattu SHA1withRSA)
  • sent: viestin lähetysaika (ISO 8601)
  • event: välitetyn viestin tyyppi
  • id: viestin tunniste (kasvaa aina yhdellä, kunnes websocket yhteys avataan uudelleen (myös yhteysvirheiden jälkeen)

Herätteen kuittaus

Asema odottaa herätteen kuittausta. Tämän avulla asemalla näytetään yhteysviive millisekunteina.

Vastausviestin muoto on: pong

Esimerkki kuittausviestistä

pong

Ongelmaviesti

Asema emittoi tämän viestin 30 sekunnin välein, jos kyseisen 30 sekunnin aikana on tapahtunut jokin ohjelmavirhe.

{
    "station": "Asema16",
    "competition": "166656",
    "signature": "aW52YWxpZA==",
    "sent": "2007-11-20T22:19:17.531+02:00",
    "data": {
        "event": "malfunction",
        "message": "java.net.SocketException: Connection timeout at com.enymind.drivers.MercuryComm.connect()",
        "message2": "Unknown error",
        "type": "1"
    }
}

Jossa

  • station: aseman tunniste (ohjelman asetukset sivun ensimmäinen kenttä)
  • competition: kilpailun tunniste
  • signature: digitaalinen allekirjoitus (base64 koodattu SHA1withRSA)
  • sent: viestin lähetysaika (ISO 8601)
  • event: välitetyn viestin tyyppi
  • message: ongelman ohjelmallinen (nörtin luettava) kuvaus
  • message2: ongelman ihmisen luettava kuvaus
  • type: ongelman tyyppi