www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Dolžina telefonskih številk

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Vse kar nima zveze z elektroniko in računalništvom
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Djurodrljaca
Član
Član



Pridružen-a: Pet 19 Dec 2003 16:31
Prispevkov: 393
Aktiv.: 1.65
Kraj: Mengeš

PrispevekObjavljeno: Pet Mar 02, 2007 10:03 pm    Naslov sporočila:  Dolžina telefonskih številk Odgovori s citatom

Zanima me koliko je dolga najdaljša telefonska številka v mednarodnem formatu(npr. v Sloveniji je nekaj takega 386 31 456 789 - 11 cifer).

Naredil sem eno napravo, ki lahko pošilja alarme in razne meritve preko SMS in tam je potrebno definirati, na katero številko se bo SMS poslal.

V Sloveniji je dolžina številke 11 cifer in smo zato uporabili dolžino številke 11 znakov. Pred nekaj dnevi pa je stranka iz Srbije sporočila, da mu noče pravilno sprejeti vnesene številke in smo ugotovili, da imajo pri njih nekateri ponudniki 12 mestno številko (to sem na srečo lahko dokaj preprosto rešil). Sedaj pa se je pojavil problem, ker ne vem koliko je dolga najdaljša številka v drugih državah.

Ker se mi niti ne sanja na kakšen način bi to lahko poiskal, vas prosim za ta podatek oz namig kako bi lahko ta podatek poiskal.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
GJ
Član
Član



Pridružen-a: Čet 02 Nov 2006 15:51
Prispevkov: 946
Aktiv.: 4.16
Kraj: Ljubljana

PrispevekObjavljeno: Pet Mar 02, 2007 10:08 pm    Naslov sporočila:   Odgovori s citatom

Hmm,

In zakaj ne sme biti poljubne dolžine? Recimo do 16 znakov.

LP GJ
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Djurodrljaca
Član
Član



Pridružen-a: Pet 19 Dec 2003 16:31
Prispevkov: 393
Aktiv.: 1.65
Kraj: Mengeš

PrispevekObjavljeno: Pet Mar 02, 2007 10:14 pm    Naslov sporočila:   Odgovori s citatom

Največji problem je v tem, ker sem omejen s prostorom na vgrajenem EEPROM-u (PIC 18F2620).

Problem je v tem ker imam vse parametre shranjene v EEPROM-u in teh ni malo, zato hočem izvedeti maksimalno dolžino, da ne bi po nepotrebnem zgubljal prostor. Trenutno številke zapisujem v BCD formatu (6 byte-ov) in s tem dobim do 12 cifer.

Sedaj je narejeno, da je poljubne dolžine do 12 znakov.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Branez
Moderator
Moderator



Pridružen-a: Pon 14 Apr 2003 7:21
Prispevkov: 7831
Aktiv.: 32.98
Kraj: Koprivnica HR

PrispevekObjavljeno: Pet Mar 02, 2007 10:20 pm    Naslov sporočila:   Odgovori s citatom

Na Hrvaškem GSM = 00385 in 9 (devet) mest. Mogoče pa je oni vstavil tudi številko države.
_________________
The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!

Albert Einstein
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 12.43
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Pet Mar 02, 2007 10:22 pm    Naslov sporočila:   Odgovori s citatom

Moj Siemens sprejme 40 številk Surprised
Več ti pa ne vem povedati.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.51

PrispevekObjavljeno: Sob Mar 03, 2007 12:32 am    Naslov sporočila:   Odgovori s citatom

Ali to uposteva tudi morebiten extension ? To doda se (vsaj) par mest za stevilko.

BCD ni najbolj ucinkovit nacin zapisa stevila. Ce imas na voljo prost flash (za funkcijo, ki bo odpakirala stevilko pred uporabo - ponavadi je flasha na voljo bistveno vec kot EEPROMa), potem naj bo zapis poln binarni. V 6 bajtov bo tako sla 14-mestna stevilka s poljubno cifro na zacetku oz. 15-mestna s prvo cifro omejeno na 2 celi vrednosti. Ce ni vec prostora, potem stevilka ne bo mogla biti daljsa ... preprosto Wink

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
GJ
Član
Član



Pridružen-a: Čet 02 Nov 2006 15:51
Prispevkov: 946
Aktiv.: 4.16
Kraj: Ljubljana

PrispevekObjavljeno: Sob Mar 03, 2007 10:56 am    Naslov sporočila:   Odgovori s citatom

Sokrat je napisal/a:
BCD ni najbolj ucinkovit nacin zapisa stevila.


To je že res vendar, če nekdo zahteva da se začne klicna št. z devema 0 spredaj ,nekdo pa z eno ali brez, imaš probleme. Tako da je BCD način kar paravi. Wink


Djurodrljaca je napisal/a:

Največji problem je v tem, ker sem omejen s prostorom na vgrajenem EEPROM-u (PIC 18F2620).


Dej no... Pri 1024 bajtih EEPROMa boš pa že našel še dva prosta. Vsaj kakšnega lihega... Rolling Eyes

Lahko pa tudi direktno v FLASH zapisuješ, žal le po 64 bajtov na enkrat.


LP GJ
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Djurodrljaca
Član
Član



Pridružen-a: Pet 19 Dec 2003 16:31
Prispevkov: 393
Aktiv.: 1.65
Kraj: Mengeš

PrispevekObjavljeno: Sob Mar 03, 2007 11:02 am    Naslov sporočila:   Odgovori s citatom

No prostora je še nekaj, samo ne bi rad da mi potem, ko bo dodana še kakšna funkcija, zmanjka prostora. Zato me zanima maksimalna dolžina, pač optimizacija.

Problem s flash-om je pa v tem, da bi za shranjevanje parametrov v flash moral spremeniti še bootloader, da ne bi povozil parametrov ob programiranju FW naprave, kar bi znal biti problem, ker je že nekaj naprav pri strankah in bi jih moral sprogramirati ročno preko programatorja.

Drugi večji problem pa je v tem, da če je potrebno več kot 14 cifer, da jih ne morem spraviti v 6B (če shranim št. kot celo število in ne BCD), kar pa pomeni, da bi moral spremeniti naslove vseh parametrov v dokumentaciji in tudi v napravi (ta del ni tako problematičen). Tega pa ne bi rad naredil, ker je teh parametrov ogromno. Wink
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.51

PrispevekObjavljeno: Sob Mar 03, 2007 11:57 am    Naslov sporočila:   Odgovori s citatom

GJ je napisal/a:
Sokrat je napisal/a:
BCD ni najbolj ucinkovit nacin zapisa stevila.


To je že res vendar, če nekdo zahteva da se začne klicna št. z devema 0 spredaj ,nekdo pa z eno ali brez, imaš probleme. Tako da je BCD način kar paravi. Wink


Ce naredis dovolj slabo (= dovolj butasto), jih zagotovo imas, a to velja za vse stvari. Ravno zato bi bil primeren tisti bit (in en drobiz, katerega lahko zanemarimo), ki sem ga omenil. Imas torej 14 mest ter izbiro 0 ali 00 (+) kot prefix. Zapisal bi torej lahko stevilko v obliki

0 123 4567890 1234

ali

00 123 4567890 1234

oz. bolj pravilno (po napotkih operaterja) napisano

+ 123 4567890 1234

To je dovolj npr. za prefix, drzavo, trimestno omrezno, sedemmestno stevilko in stirimestni extension. Najbrz obstaja kaksna drzava, ki ima tako dolgo kodo kot Slovenija in tako dolge omrezne stevilke kot recimo ZDA (v praksi so v obeh omenjenih drzavah celotne stevilke krajse kot 14 mest).

Ce je stevilka krajsa kot 14 mest, vrines nicle na zacetek in jih eliminira funkcija, ki stevilko spremeni v niz znakov za posiljanje na telefon. Primera:

lokalna stevilka

0 00000 041 123 456

ali mednarodna stevilka

+ 000 386 41 123 456

BCD ni najbolj ucinkovit nacin zapisa, pa tudi najbolj primeren najbrz ni za predstavljeni problem. Ce je dejansko tezava s prostorom, potem je zapis bolje spremeniti v bolj kompaktnega.

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Djurodrljaca
Član
Član



Pridružen-a: Pet 19 Dec 2003 16:31
Prispevkov: 393
Aktiv.: 1.65
Kraj: Mengeš

PrispevekObjavljeno: Sob Mar 03, 2007 12:11 pm    Naslov sporočila:   Odgovori s citatom

GJ je napisal/a:
Dej no... Pri 1024 bajtih EEPROMa boš pa že našel še dva prosta. Vsaj kakšnega lihega... Rolling Eyes


Imam 8 številk + številka za SMS center, torej 9. Je pa že dokaj zapolnjen EEPROM.

Številke pa vpisujem v EEPROM brez "+" oz "00", torej 386..., ko pa štvilko pošljem na GSM modul pa dodam pred številko znak "+".

Sem pa tudi našel en članek na wikipediji in bo zgleda dovolj 14 cifer (Sokrat hvala za namig s shranjevanjem kot celo število).

Mogoče še razlog zakaj sem shranjeval v BCD formatu: največji razlog je v tem, da je takšen zapis izbral vodja projekta, ko je pisal programske specifikacije, to je pa verjetno izbral zaradi preproste pretvorbe iz BCD v string.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
GJ
Član
Član



Pridružen-a: Čet 02 Nov 2006 15:51
Prispevkov: 946
Aktiv.: 4.16
Kraj: Ljubljana

PrispevekObjavljeno: Sob Mar 03, 2007 3:35 pm    Naslov sporočila:   Odgovori s citatom

Sokrat je napisal/a:
Ce naredis dovolj slabo (= dovolj butasto), jih zagotovo imas, a to velja za vse stvari. Ravno zato bi bil primeren tisti bit (in en drobiz, katerega lahko zanemarimo), ki sem ga omenil. Imas torej 14 mest ter izbiro 0 ali 00 (+) kot prefix.


Ahh..
Lepota programiranja ni v kompliciranju/tlačenju temveč v pregledni logični preprostosti.

Poleg tega potrebuješ še dve dokaj počasni rutini, ki ti pretvarjata željeni zapis.
Mislim, da bo moral rutini napisati kar sam, ali pa vsaj malo predelati, ker je normalno podprta le 32 bitna aritmetika.
Pa še znak + oziroma ničle moraš stlačiti v zapis.
No ja ne rečem, da se ne da... Rolling Eyes

Vendar močno dvomim, da ne more najti še dveh EEPROM bytov. Konec koncev to predstavlja le 0.2% MCPU EEPROM resorce-v. Wink


Sokrat je napisal/a:
BCD ni najbolj ucinkovit nacin zapisa, pa tudi najbolj primeren najbrz ni za predstavljeni problem. Ce je dejansko tezava s prostorom, potem je zapis bolje spremeniti v bolj kompaktnega.


BCD zapis je programsko veliko bolj preprost, hitrejši in predvsem standarden zapis. Vrednosti posameznega zapisa nad 9 torej od 10..15 ti lahko pomenijo dodatne znake kot naprimer 'neuporabljen znak', 'presledek', 'pauza 1s', 'pauza 2s', '+' itd.

Je pa res, da je BCD zapis nekoliko manj kompakten.
Pri čisto navadnem BCD številčnem zapisu izgubimo (Ln(16)/Ln(10) = 1.2) le 20% prostora v primerjavi z binarnim. Če pa uporabimo še zgoraj omenjene specialne karakterje, ki jih bo slej ko prej rabil, je izguba prostora še manjša.

LP GJ
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Vse kar nima zveze z elektroniko in računalništvom Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 7 dni


Powered by phpBB © 2001, 2005 phpBB Group