Suunto Spyder, Vyper és Cobra protokoll This document copyright 2000 by Markus Fritze. Hungarian translation by: Bunny Last modify: 2001-12-30 |
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. átvitelA 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];
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:
| |
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:
| |
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 )