Forum Linux.pl

Sprzęt => Urządzenia sieciowe => Wątek zaczęty przez: mackeire w 2018-10-15, 13:37:59

Tytuł: Modem komórkowy z GPS - komendy AT
Wiadomość wysłana przez: mackeire w 2018-10-15, 13:37:59
W dokumentacji modemu Sierra Wireless komendy AT są fajnie opisane ale nie potrafię rozkminić tej:

Configure support for GPS positioning modes
Enable or disable support for several GPS positioning modes.
Note: !RESET must be issued after this command is used.
Password required: Yes
Usage:
• Execution: AT!GPSPOSMODE=<mask>
Response: OK
or ERROR
Purpose: Use a single byte hexadecimal format mask to indicate which GPS
positioning modes are to be supported.
• Query: AT!GPSPOSMODE?
Response: MASK: <mask>
OK
Purpose: Return a <mask> value indicating which GPS positioning modes
are currently supported.
• Query List: AT!GPSPOSMODE=?
Purpose: Return supported <mask> values.
Parameters:
<mask> (Bitmap value representing supported GPS positioning modes)
• 1-byte hex format mask (do not include ‘0x’ before the mask value)
• ‘On’ bits identify modes that are supported
• Bit 0: Standalone
• Bit 1: UP MS-based
• Bit 2: UP MS-assisted
• Bit 3: CP MS-based (2G)
• Bit 4: CP MS-assisted (2G)
• Bit 5: CP UE-based (3G)
• Bit 6: CP UE-assisted (3G)
• Bit 7: Unused

Example:
AT!GPSPOSMODE=2a enables support for Bit 5 (CP UE-based), Bit 3 (CP MS-
based), and Bit 1 (UP MS-based)

Jak mam ustawić AT!GPSPOSMODE żebym miał włączone Bit 0, Bit 1 i Bit 2 ?
Tytuł: Odp: Modem komórkowy z GPS - komendy AT
Wiadomość wysłana przez: Paweł Kraszewski w 2018-10-15, 13:55:02
"1-byte hex format mask" o_O

Cytuj
Jak mam ustawić AT!GPSPOSMODE żebym miał włączone Bit 0, Bit 1 i Bit 2 ?

AT!GPSPOSMODE=07
Tytuł: Odp: Modem komórkowy z GPS - komendy AT
Wiadomość wysłana przez: mackeire w 2018-10-16, 11:45:14
Dzięki.
A jak bym sobie chciał inne ustawienia potestować to skąd mam wyczarować co wpisać ?
Tytuł: Odp: Modem komórkowy z GPS - komendy AT
Wiadomość wysłana przez: Paweł Kraszewski w 2018-10-16, 13:44:46
Ale ty to tak na serio nie potrafisz przeliczyć maski bitowej na wartość hex?

No dobra, challenge accepted.

Bit 0 ma wartość 1
bit 1 ma wartość 2
bit 2 ma wartość 4
bit 3 ma wartość 8

Jeżeli jakiś bit jest ustawiony, to go dodajesz, jeżeli nie to nie. W poprzednim przykładzie miałeś mieć bity 0 1 i 2, więc było to 1+2+4 = 7.
Jeżeli suma wyszła większa niż 9, to stosuje się przelicznik 10=A, 11=B aż do 15=F.

Na przykład ustawione bity 1 2 i 3 to 2+4+8=14 czyli E

Teraz tak:

Bit 4 ma wartość 1
bit 5 ma wartość 2
bit 6 ma wartość 4
bit 7 ma wartość 8

Liczysz dokładnie tak samo. Wynikowa liczba to [suma bitów 4 .. 8][suma bitów 0 .. 3]

Na przykład dla ustawionych bitów 0 2 5 i 7 masz (2[bit 5]+8[bit 7])(1[bit 0]+4[bit 2]) = (10)5 -> A5



Tytuł: Odp: Modem komórkowy z GPS - komendy AT
Wiadomość wysłana przez: mackeire w 2018-10-17, 15:52:41
Kurde, chyba kumam ...
Czyli np. włączam wszystkie opcje z wyjątkiem 'Bit 7: Unused'

(1+2+4)(1+2+4+8) =7F

AT!GPSPOSMODE=7F

Dobrze kombinuję ?
Tytuł: Odp: Modem komórkowy z GPS - komendy AT
Wiadomość wysłana przez: Paweł Kraszewski w 2018-10-17, 17:58:39
Tak.

A jak wszystko inne zawiedzie, to większość shelli (a na pewno bash i zsh) ma wbudowane polecenie printf zachowujące się jak odpowiednik w C (http://www.cplusplus.com/reference/cstdio/printf/), plus rozumiejące przedrostek 0b jako liczbę binarną:

╭─╴~╶────────────────────────────────────────╴Linux 4.15.0-36-generic x86_64╶─╮
╰─╴pawel@i7 > which printf
printf: shell built-in command

╭─╴~╶────────────────────────────────────────╴Linux 4.15.0-36-generic x86_64╶─╮
╰─╴pawel@i7 > printf '%02x\n' 0b01111111
7f