Avainsana-arkisto: tekstiviesti

Kauko-ohjausta kaukana vol. 2

ITS ALIVE!!!

Etäohjain toimii,  pääosin ainakin.

Pitäisi varmaan kertoa vielä, että mistä laitteesta on kysymyShaisse saurus pönttös. Kyseessä on siis Shaisse sauruksen pumppuun tarkoitettu kauko-ohjain. Mikä se Shaisse saurus sitten on? No se on serkkupojan lietteen levitykseen tarkoitettu laite: kaksin kappalein traktoreita, pumppuvaunu, pitkästi letkua ja levitinyksikkö sekä muuta tilpehööriä. Liete siis levitetään suoraan montusta. Pumppu tulee lietemontun viereen ja liete pumpataan pellolle, jossa se sitten levitetään multaimella suoraan maahan.
Tilanne siis alunperin oli sellainen, että lietteen levityksen yhteydessä levitystraktorissa oli yksi kuski ja toinen kuski oli pumpputraktorin päässä. Levitin päässä nyt loogisesti oli koko ajan tarpeellista olla kuski, mutta pumppu päässä tarve kuskille oli vain hetkittäinen. Koti navetan vieressä ongelma ei mahdottoman iso ole, koska lähistöltä löytyy aina jotain tehtävää, mutta urakointi hommissa pumpputraktorin kuskilla ei kovin pajoa tekemistä ollut. Isolla pellolla pumppua ei tarvitse sammuttaa tai käynnistää kovin useasti.
Itse kauko-ohajain koostuu harmaasta laatikosta, jonka sisällä on kaksi piiri levyä toinen itse tehty ja toinen tilattu netista. Netistä tilasin GSM-modulin, josta olen shaisse saurus kauko-ohajainjo aiemmin tässä kirjoitellu ja itse tein siihen relekortin, josta siitäkin olen pikkuisen jo kirjoitellut.
Asennukseen oli periaatteessa varattu perjantai päivä ja lauantaille sekä sunnuntaille olisi ollut muuta, mutta harmillisesti (mutta ei ehkä niinkään yllätättävästi) asennukseen meni oletettua enemmän aikaa ja lopulta asennukseen tuli käytetteä aika iso osa sekä lauantaista, että sunnuntaista. Asennus kuitenkin traktorin osalta saatiin loppuun asti ja pumpun puolen serkkupoika asentelee itsekseen kunhan ehtii. Kaikki ominaisuudet eivät siis vielä ole käytössä, mutta jo näillä mitkä saatiin käyttöön vähenee pumpputraktorin kuskin tarve varsin merkittävästi.
Helpointa traktorin puolen asennus olisi ollut toteuttaa esimerkiksi ISOBUS-väylän kautta, mutta suunnittelu vaiheessa pumpun eteen ei ollut tarkoitus saada ko. väylällä varustettua traktoria, mutta monen mutkan kautta nyt kun prototyyppi ohjaimesta on valmis ja hiljalleen testauksessa ihan tosi toimissa, yllättäen pumpun eteen on ilmestynyt Fend, jossa on ISOBUS. Sellaista se elämä joskus on. Laite asennettiin siis kuitenkin Valtraan. Nyt siis ohjaus on toteutettu ihan releillä. Käsikaasun potentiometrejä on asennettu toinen kappale ja releellä valitaan kumpi asettaa kierrokset koneeseen. Ulosoton käynnistykseen on tuhrattu kaksi relettä toisella ulosotto saadaan päälle ja toisella vastaavasti pois päältä. Asennus on lisäksi tehty niin, että kauko-ohjaimen ollessa sammuksissa asennus ei vaikuta traktorin normaaliin käyttöön mitenkään, käsikaasu sekä ulosoton kytkin toimii ihan samoin kuin jos mitään ylimääräistä ei traktorissa olisikaan. Lisäksi ulosotto on kytketty niin, että kytkimen ollessa OFF-asennossa kauko-ohjaimella ei ole mahdollista vahingossakaan kytkeä ulosottoa päälle.
Jo nyt tässä vaiheessa on tiedossa useampikin asia joita joutuu seuraavaan versioon korjaamaan tai lisäämään. Esimerkiksi piirilevy itsessään on suunniteltu kestämään useita amppeereita virtaa, mutta noilla liittimillä levylle ei saa syötettyä sellaisia virtoja. Kaiken kaikkiaan olen varsin tyytyväinen projektiin. Erittäin fiksu idea olisi ollut istua pari kolme päivää itse pumpputraktorissa ja sisäistää pumpun toiminta ja ohjaus sitä kautta, mutta meni se näinkin ja ehkäpä jo  seuraavaan projektiin tajuaa sellaisen tutustumisen tehdä.

Tositoimissa laitetta ei ole viellä testattu, mutta sen verran testattiin, että saatiin videolle pätkä kännykällä kuvattua. Tarttee jossain vaiheessa tehdä parempi video aiheesta, koska tämä versio ei loppujen lopuksi kovin kuvauksellinen ole.  Harmillisesti kunnollinen kamera jäi matkasta pois juuri ratkaisevalla hetkellä, mutta onneksi kännykällä voi edes vähän paikata, vaikka kiirus meinasi tullakin videon kanssa.

 

Jos joku haluaa tarkempia tietoja itse kauko-ohjaimesta, minulle voi laittaa viestiä tuosta alhaalta ja jos on tarvetta lietteen levitykselle tai muuten haluaa tarkempia tietoja itse levitys laitteesta, Aapelille voi soittaa numeroon 044 328 0187.

Tästä aiheesta tulee varmaan viellä lisää tarinaa jossain vaiheessa, mutta tässä vaiheessa mennään nyt tällä.

Lähetetäänkö tekstiviesti? ja vähän luetaankin.

Tekstiviestin lähetys teknisellä tasolla ei ole ihan niin yksinkertainen homma kuin voisi kuvitella. Johtuu ehkä siitä, että alunperin sitä ei oltu suunniteltu ollenkaan kuluttaja käyttöön, vaan lähinnä operaattorilta asiakkaalle meneville viesteille (lue mainoksille?), mutta ihmiset ottivat 160 merkin viestit paljon paremmin vastaan kuin oletettiin. Osittain suosio ehkä johtui niinkin yksinkertaisesta asiasta, että alunperin tekstiviesti meni perille huomattavasti paremmin kuin puhelut huonossa kentässä ja eihän aluksi kenttää koko maassa kovin paljoa ollut.

SIM908 modulissa (ja yleisestikin) käytössä on kaksi moodia tekstiviesteille, PDU ja TEXT. Lähetettäessä PDU-muodossa viestit tulee normaalisti kännykkään, mutta TEXT-moodissa viesti tulee suoraan kännykän näytölle ja se pitää siitä erikseen tallettaa, ainakin niillä muutamalla samsugin puhelin mallilla, joilla olen asiaa testannut. Samoin PDU-moodissa SIM908-moduliin lähetetyt viestit käsitellään “normaalisti” eli siis ne tallennetaan yms. TEXT-moodin viestit käsitellään eri tavalla. Niitä ei tallenneta vaan ne vain lähetetään serial lineen suoraan ja siis jos ne halutaan lukea ne täytyy huomata silloin, kun ne tulevat.

TEXT-moodissa viestin lähetys on yksinkertaisempaa kuin PDU-moodissa. TEXT-moodissa viestinä lähetystä olen käsitellyt jo aikaisemmin.  PDU vaatii enemmän koodia viestin lähetystä varten kuin TEXT-moodi.

Sony-ericson on julkaissut paperin PDU:sta. Puran paperista pääasiat tähän Suomeksi, mutta suosittelen lukemaan alkuperäisen artikkelin tarkempia tietoja varten. Luultavasti myös GSM-standardi on hyvää luettavaa tähän.
Ja tältä se PDU-moodin viesti näyttää lähetys vaiheessa: 07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06
Selvää pässin lihaa eikö? 😀
Käydääs vähän tarkemmin tuota sitten lävitse. PDU on lyhenne sanoista Protocol Data Unit (tai myös Packet Data Unit) ja se koostuu kahdesta osasta, jotka ovat SCA (Service Central Adress) ja TPDU (Transport Protocol Data Unit).  Boldattu osa on SCA ja loppu on TDPU:ta.
Se siis koostuu heksadesimaali numero pareista, jotka esittävät aina tavun verran dataa.  Näitä pareja kutsutaan okteteiksi (octet). Oktetti ja tavu tarkoittavat samaa (8 bittiä dataa). Mahdollisesti historiallisista syistä niitä kuitenkin nimitetään erilailla. Ainoa ero on, että oktetti lähetetään ja tavu tallennetaan.
SCA on vain tekstiviestikeskuksen numero. SCA:n sijaan voidaan käyttää SIM-kortille tallennettua viestikeskusta, jos SCA korvataan “00” .
0011000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06
Oktettien lähetysjärjestys löytyy esimerkistä. Esimerkiksi, jos halutaan lähettää seuraavat heksat 03FFFFE0.  Muutetaan oktetit ensiksi binaarimuotoon ja aloitetaan lähetys alusta.
  • 03                    0000 0011
  • FF                    1111 1111
  • FF                    1111 1111
  • E0                    1110 0000

ja lähetetään, oikean puoleisin bitti on ensimmäinen lähetetty.

1110 0000 1111 1111 1111 1111 0000 0011

Puretaan seuraavaksi toi SCA okteteiksi ja niiden merkityksiin.

07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06
  • 07       osoitekentän pituus oktetteina (tätä oktettia ei lasketa mukaan)
  • 91       numeron tyyppi, tässä tapauksessa kansainvälinen ISDN/puhelin numero
  • 64       numerot 46
  • 07       numerot 70
  • 05       numerot 50
  • 08       numerot 80
  • 99       numerot 99
  • F9       numero 9 ja täytemerkki “F”, jotta saadaan parillinen määrä numeroita.

Rakennellaanpa tässä samalla omaa esimerkkiä eikä vaan oteta samaa esimerkki kuin lähteessä. Elisan(Saunalahden) prepaidin viestikeskuksen numero on +358508771010 ja vastaava SCA 07 91 53 58 80 77 01 01. Tämä numero on parillinen, joten täytemerkkiä “F” ei tarvita. SCA on siis muodostettu laittamalla numerot pareiksi ja vaihtamalla parien numerot päittäin.

07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06

Viestikeskuksen osoitteen jälkeiset 3 oktettia kertovat esimerkiksi mihin suuntaan viesti on menossa ja kuinka kauan sitä yritetään lähettää vastaanottajalle.

seuraava oktetti, arvoltaan 11, tarkoittaa lyhyesti sanottuna, että olemme lähettämässä tekstiviestiä ja kertoo viestikeskukselle miten käsitellä myöhemmin lähetettävää viestin voimassa olo oktettia. (oktetin binääri kentät: TP-MTI viestin tyyppi, TP-RD duplikaattien esto, TP-VPF viestin voimassa olo viestin muoto, TP-SSR status reportti, TP-UHD user dataheader ja  TP-RP vastaus reitti.)

Seuraava oktetti TP-MR, arvoltaan 00, voidaan periaatteessa laittaa miksi tahansa välillä 0-255(muutettuna heksadesimaaliksi), mutta molemmissa esimerkeissä jätetään tämä arvoon 00.

Seuraavaksi päästään käsittelemään vastaanottajan numeroa

07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06

 

0A 81 70 60 78 96 20 Tämä kenttä on muuten samanlainen kuin SCA, mutta sen sijaan, että numeron pituus laskettaisiin oktetteina, se lasketaan ihan suoraan numeroina.

  • 0A tarkoittaa siis, että numerossa on 10 numeroa.
  • 81 tarkoittaa numeron muotoa (tässä kansallinen muoto)
  • loput ovat puhelin numero, tässä 07 06 87 69 02 (070-6876902)

Koska numeroita on parillinen määrä niin täytemerkkiä ei tarvita.

ja tehdään taas omaa

numero mihin halutaan lähettää on +35840 537 3212, pareina 35 84 05 37 32 12 ja käännettynä 53 48 50 73 23 21 ja koko vastaaanottajan kenttä 0C91534850732321. Tähän menessä siis ollaan rakennettu seuraava pätkä.

079153588077010111000C91534850732321

Seuraava oktetti (TP-PID, protocol identifier) mahdollistaisi esimerkiksi tekstiviestin toimittamisen sähköpostiin, mutta tässä pitäydytään arvossa 00 ja mobiililaitteiden välisessä viestinnässä.  (Tarkempaa tietotoa GSM 03.40 spesifikaatiosta.)

Seuraava oktetti (TP-DCS) kertoo monen näköistä. Sillä voidaan esimerkiksi kertoa, että lähetetään 8-bittistä dataa GSM-standardin normaalin 7-bittisen sijaan. Tarkempia tietoja kannattaa etsiä GSM spesifikaatiosta 03.38 ja alkuperäisestä artikkelista. Molemmissa esimerkeissä päädytään arvoon 00.

Seuraava oktetti (TP-VP) kertoo kuinka kauan viestiä yritetään lähettää. Tähän vaikuttaa myöskin aikaisempi TP-VPF. Molemmissa esimerkeissä käytettään arvoa A7 (eli viestiä yritetään lähettää 12h+12h=24h)

Seuraava oktetti TP-UDL kertoo kuin pitkästi viestiä on tulossa. Jos käytössä on normaali GSM-merkistö tämä kertoo merkkien määrän, jos käytössä on 8-bittinen tai muuten oktetteina esitetty data tämä kertoo oktettien määrän. Aikaisemmin määriteltiin jo TP-DCS kohdassa, että käytetään SMS luokkaa. jossa on normaali GSM aakkosto. Ja tosiaan 15hex= 21dec ja meillä on 21 merkkiä viestissä.

Ja omassa esimerkissä on taasen vastaavasti 0Bhex =11dec

Katsotaan sitten oman esimerkin avulla miten viesti koodataan lähetystä varten.  Otetaan esimerkiksi vaikka huudahdus “Hoo ka hei!”

Ensimmäiseksi kaivetaan esille mitä mikäkin kirjain on GSM spesifikaation mukaan. Perus gsm merkistö on 7-bittinen, mutta ne kuitenkin lähetetään 8-bitin muodossa.

  • H    1001000
  • o     1101111
  • o     1101111
  •         0100000
  • k     1101011
  • a     1100001
  •         0100000
  • h     1101000
  • e     1100101
  • !      0100001

Tämän jälkeen vain kasataan bitit yhteen pötköön ja muutetaan  ne 8-bit pätkissä heksadesimaali muotoon. Taulukko ehkä selventää.  Taulukkoon on vasemmalle alas lisätty nollia täyttömerkeiksi. Käytännössä siis lähetetään tässä tapauksessa ensimmäiseksi merkki “H” ja sen jälkeen “o” jne.

7 6 5 4 3 2 1 0 heksa
1 1 0 0 1 0 0 0 C8 H o o k a h e i !
1 1 1 1 0 1 1 1 F7
0 0 0 1 1 0 1 1 1B
1 0 1 1 0 1 0 0 B4
0 0 0 0 1 1 1 0 0E
1 0 0 0 0 0 1 1 83
1 1 0 1 0 0 0 0 D0
1 1 1 0 0 1 0 1 E5
0 1 1 1 0 1 0 0 74
0 0 0 0 1 0 0 0 08

 

Ja lopullinen oma esimerkki PDU:sta on seuraava 079153588077010111000C915348507323210000A70BC8F71BB40E83D0E57408

Joka siis lähettää viestin “Hoo ka hei!” käyttäen PDU-moodia ja Saunalahden prepaid viestikeskusta minulle. Vastaava lähetys käyttäen SIM-kortin viestikeskusta olisi.

0011000C915348507323210000A70BC8F71BB40E83D0E57408

Mitä se Sony Ericsonin esimerkki sitten lähettää?

07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06

No vähän pitemmän viestin “This is a PDU message”

Vaikka omaan projektiin löytyisikin kirjastoja, joilla viestin saisi koodattua PDU muotoon lennossakin taidan tyytyä koodaamaan viestit valmiiksi ja lähettää pelkkiä vakio viestejä. Katsotaan miten tämä tästä sitten eteen päin kehittyy.

Lupailin otsikossa, että tässä kirjoituksessa käsitellään viestin vastaanottamistakin. No periaatteessa sekin on käsitelty jo aikaisemmassa sepustuksessa. Laitetaan kuitenkin esille video aiheesta, ettei ihan valehdella otsikossa.

 

 

 

Netistä löytyy PDU laskimia kumpaankin suuntaa useitakin. Minä olen käyttänyt dekoodaukseen diafaan.comin laskuria ja enkoodaukseen useampaakin nettisivua.

Sony Ericksonin paperi on vuodelta 2003, mutta mitä ilmeisemminkin se on edelleen ihan kuranttia kamaa, uusimpia muutoksia siinä ei tietenkään ole, mutta näkyyhän toi toimivan edelleen.

 

 

 

 

.