Suunto Spyder, Vyper és Cobra protokoll
This document copyright 2000 by Markus Fritze.
Hungarian translation by: Bunny Last modify: 2001-12-30

Suunto kommunikációs és Adatátviteli protokoll

1. Kommunikáció

A protokoll 2400 8O1, ami átlagosan 2300 baud, 8 bit, páratlan paritásbit és 1 stop bitet használ. Az interface ellenőrzéshez 2400 8N1 -et használ, de működik 2400 8O1 -gyel is. Az ellenőrzés egyszerű: A számítógép egy AT és CR ($0D) parancsot küld és vár egy ugyan ilyenre.

2. átvitel

A Suunto Spyder, Vyper és Cobra protokoll azonos, de a memória szerkezet a Spydernél különböző. Minden adat csomagokban mozog, és minden csomagot egy CRC követ.

unsigned char checksum = 0x00;
for(int i=0; i<packageLen; ++i)
checksum ^= package[i];

3. Memória eloszlás a Spyder-nél

offset formátum teszt érték leírás
$0000-$0015 MSB binális ... A PC software nem használja, valószínűleg valami konfigurációs érték a búvár computernek.
$0016-$0017 MSB binális $0102 Spyder firmware verzió (régi ACW $0101, új ACW $0102)
$0018-$001B MSB binális ... Spyder serialnumber (új ACW, pl. $0002.0F7F = 203.967) vagy ID no. (régi ACW, pl. $2E.61.122E = 469704654)
$001C-$001D MSB binális ... Pointer a profile ringbuffer utolsó $82 byte-hoz.
$001E-$001F MSB binális $3F46 max. mélység lábban * 128.0
$20-$21 MSB binális ... Teljes merülési idő percben
$22-$23 MSB binális ... Összes merülés száma
$24 MSB binális $14 intervallum (20mp, 30mp vagy 60mp)
$25 MSB binális ... magassági és személyi érzékenység (mgasság (0..2) + 3 * személyi érzékenység (0..2))
$26-$2B MSB binális ... ? ($0B,$03,$1F,$FF,$1F,$FF : identical on all ACW?)
$2C-$49 ASCII ACW Diver személyes információk ("ACW Diver", egyébként szóközökkel feltöltve a teljes hely)
$4A-$4B MSB binális ? ($01, $01 : azonos ACW-nél ?!? profile memory verzió ?)
$4C-$1FFF MSB binális ... profile ring-buffer memory

A ring-buffer egy ömlesztett adat, aminek a végét jelző poziciót a fejrészben tárolják.

Egy merülés ebben a formában tárolódik ( profile ring-buffer ):

offset formátum teszt érték leírás
0 MSB binális $00 ismeretlen
? levegő nyomása a merülés végén?
1 MSB binális $18 hőmérséklet celsiusban
2... binális Merülési adatok a merülés végétől a kezdetéig !
A merülési profil ömlesztett adat. Minden percben (vagy 30mp vagy20mp vagy10mp - az érték a profile intervallum-ból olvasható ki) egy byte tárolódik. Ez a byte egy relatív érték az előző mélységhez képest. Pl. ha a merülést 0 láb mélységgel kezdted, és egy perc alatt 30 láb mélyre merültél, ez az érték -30 láb, mivel 30 lábnyit merültél vagy $E2 binálisan, ha ezután felemelkedtél 30 lábra, akkora következő érték +10 láb lesz (mivel 10 lábnyit emelkedtél) vagy $0A binálisan.
Speciális értékek:
  • $82 = Adatok vége ( csak a belső memória használja )
  • $81 = Slow
  • $80 = Vége ( a merülés vége )
  • $7f = ERR ( dekó kihagyás )
  • $7e = ASC ( a merülés innentől dekósnak számít )
  • $7d = Felszín
n MSB binary ... A merülés kezdetének perce
n + 1 MSB binary ... A merülés kezdetének órája
n + 2 MSB binary ... A merülés kezdetének napja
n + 3 MSB binary ... A merülés kezdetének hónapja
n + 4 MSB binary ... A merülés kezdetének éve ( 99 = 1999, 00 = 2000 )
n + 5 MSB binary ... magassági és személyi érzékenység beállítások ( magasság (0..2) + 3 * személyi érzékenység (0..2) )
n + 6 MSB binary ... ismeretlen
? légnyomás a merülés kezdetekor ?
n + 7 MSB binary ... mintavételezési intervallum ( 20mp, 30mp vagy 60mp )
n + 8 MSB binary ... merülés száma a Spyder-rel ( ismételt merüléshez )
n + 9 MSB binary ... Felszini idő órája
n + 10 MSB binary ... Felszini idő perce

 

4. Memória eloszlás a Vyper-nél és Cobra-nál:

offset formátum teszt érték leírás
$0000-$0015 MSB binary ... A PC software nem használja, valószínűleg valami konfigurációs érték a búvár computernek.
$0016-$0019 MSB binary ... Firmware version és/vagy a computer tipusa ?!? Vyper: $0001A91C, Cobra: $0003631C
$001E-$001F MSB binary ... max mélység ( láb * 128.0 )
$20-$21 MSB binary ... Teljes merülési idő percben
$22-$23 MSB binary ... Összes merülések száma
$24 MSB binary $14 profile intervallum ( 10mp, 20mp, 30mp vagy 60mp )
$26-$29 MSB binary ... serialnumber pl. Vyper: $0001.04.41 (= 010465), Cobra: $0000.5A.38 (= 009056)
$2A-$2B MSB binary ... ismeretlen
$2C-$49 ASCII Vyper Diver személyes információk ( "Vyper Diver" vagy"Cobra Diver", egyébként szóközzel feltöltve végig )
$4A-$50 MSB binary ... ismeretlen
$51-$52 MSB binary ... Pointer a profile ringbuffer utolsó $82 byte-hoz.
$53 MSB binary ... Cobra? Intervallum (20mp)
$54 MSB binary ... magassági és személyes érzékenység beállítása ( magasság (0..2) + 3 * személyes érzékenység (0..2) )
$55-$61 MSB binary ... ismeretlen
$62 MSB binary ... mértékegység rendszer ( 00 = angol, 01 = metrikus )
$63 MSB binary ... üzemmód ( 0: Levegő, 1:Nitrox, 2:Műszer )
$64 MSB binary ... Világítás időtartama ( 7bit: be; 0..6bit: az idő mp-ben )
$65 MSB binary ... 0 bit: merülési idő figyelmeztetés= be
1 bit: merülési mélység figyelmeztetés = be
$66 MSB binary ... ismeretlen
$67 MSB binary ... merülési idő figyelmeztető beállítása percben
$68-$69 MSB binary ... merülési mélység figyelmeztető beállítása lábban. ft * 128.0 ( $419E = 40m, $40CC = 39.5m, Cobra: $4180 lábban, $41A0 metrikusban )
$6A-$70 MSB binary ... ismeretlen
$71-$1FFF MSB binary ... profile memória

A profile ring-buffer egy ömlesztett adat, aminek a végét jelző poziciót a fejrészben tárolják.

Egy merülés ebben a formában tárolódik ( profile ring-buffer ):

offset formátum teszt érték leírás
0 MSB binary ... felszini idő óra
1 MSB binary ... felszini idő perc
2 MSB binary ... Merülés szám a Vyper/Cobra-ban (ismételt merüléshez)
3 MSB binary ... mintavételezés intervalluma (10mp, 20mp, 30mp vagy 60mp)
4 magassági és személyi érzékenység beállítás (magasság (0..2) + 3 * személyi érzékenység (0..2))
5 merülés kezdeti nyomás bar / 2
6 Oxigén % (= Nitrox mode, air mode: 0); 6 & 7 bit figyelmen kívül hagyva.
7 ? Nem használt? (PO2??? 0=1.2, 1=1.3, 2=1.4, 3=1.5, 4=1.6???)
8 levegő hőmérséklete celsiusban
9 Merülés dátumának éve (99 = 1999, 00 = 2000)
10 Merülés dátumának hónapja
11 Merülés dátumának napja
12 merülés kezdetének órája
13 merülés kezdetének perce
14... binális Végre a merülési adatok!
A merülési profil ömlesztett adat. Minden percben (vagy 30mp vagy20mp vagy10mp - az érték a profile intervallum-ból olvasható ki) egy byte tárolódik. Ez a byte egy relatív érték az előző mélységhez képest. Pl. ha a merülést 0 láb mélységgel kezdted, és egy perc alatt 30 láb mélyre merültél, ez az érték -30 láb, mivel 30 lábnyit merültél vagy $E2 binálisan, ha ezután felemelkedtél 30 lábra, akkora következő érték +10 láb lesz (mivel 10 lábnyit emelkedtél) vagy $0A binálisan.
speciális értékek, minden az adott intervallumra vonatkozik:
  • $79 = nem használt
  • $7A = Slow ( Ha a felemelkedési sebesség meghaladta a megengedettet. Ez mindig tárolódik, ha a figyelmeztető jelzés látható. )
  • $7B = ( Dive Attention Mark a leíráshoz nézd meg a computer user manual-t. )
  • $7C = ( Könyvjelző. A búvár megnyomta a PLAN gombot. )
  • $7D = Felszín ( A búvár felemelkedett a minimum merülési mélység fölé. )
  • $7E = ASC ( Dekó idő jelzés első megjelenése. A búvár computer ASC jelzése megjelent, a merülé innentől dekósnak számít. )
  • $7F = ( A búvár felemelkedett a dekó szint fölé annak letelte előtt. )
  • $80 = Vége ( merülése vége )
  • $81 = ( A búvár felemelkedett a kötelező biztonsági megálló szintje fölé annak letelte előtt. )
  • $82 = Vége az adatoknak ( csak a belső memóriában használt )
  • $83 = nem használt
  • $84 = nem használt
  • $85 = nem használt
  • $86 = nem használt
  • $87 = nem használt
n MSB binary ... A max mélységben mért hőmérséklet celsiusban
n + 1 MSB binary ... A merülés végén mért hőmérséklet celsiusban
n + 2 MSB binary ... Nyomás a merülés végén bar / 2
n + 3 MSB binary ... 00 , nitroxnál: OLF % * 2 ($32 * 2 = 100 CNS)

5. Váltószámok

méter := int(láb * 0.3048 * 10) / 10
psi := bar * 14.50377377
fahrenheit := celsius * 1.8 + 32

[1.2] magasság :=
0: 700m, 2300 láb
1: 1500m, 5000 láb
2: 2400m, 8000 láb

ACW = Advanced Computer Watch ( borzasztóan fejlett computeres óra )
ASC = Ascend Time ( a dekó időtartama )