Doręczenie i odbiór SMS w trybie PDU (interpreter komend)
|
|
- Dagmara Nowicka
- 9 lat temu
- Przeglądów:
Transkrypt
1 Opis interpretera poleceò Program napisano w jízyku C dla mikrokontrolera typu AT89S8252. Jest on taktowany sygna³em zegarowym o czístotliwoúci 7,3728 MHz. Mikrokontroler wspû³pracuje z dodatkow¹, zewnítrzn¹ pamiíci¹ RAM o rozmiarze 1 kb. Uøycie dodatkowej pamiíci jest niezbídne ze wzglídu na koniecznoúê buforowania odebranego komunikatu SMS. Policzmy: - komunikat to maksymalnie 140 cyfr dwubajtowych w formie tekstu - w sumie 280 bajtûw koniecznych do zapamiítania ³aÒcucha - czíúci komunikatu o nazwie Dane Uøytkownika, - parametry SMS to w sumie 9 waønych bajtûw informacji, - numery Centrum Us³ug i nadawcy wyraøone w formie ³aÒcucha tekstowego to razem 24 bajty. Reasumuj¹c: na zapamiítanie odebranego komunikatu SMS potrzebne jest 313 bajtûw; niestety mikrokontroler AT89S8252 ma tylko 256 baj- K U R S Doręczenie i odbiór SMS w trybie PDU (interpreter komend) List. 1. Fragment programu z definicjami zmiennych wskaźników do funkcji code char CPIN[] = AT+CPIN=1643 ; //wprowadzenie numeru PIN code char CHOOSEMEM[] = AT+CPMS= ; //wybór domyslnej lokalizacji pamieci code char ECHOOFF[] = ATE0 ; //wylaczenie echa komendy AT code char SETNOTICE[] = AT+CNMI=1,1,0,2 ; //ustawienie sposobu powiadamiania code char NOTICE[] = +CMTI: ; //powiadomienie o nowym SMS code char SMSDEL[] = AT+CMGD= ; //usuniecie SMS z pamieci code char SMSREAD[] = AT+CMGR= ; //odczyt SMS z pamieci code char SMSSEND[] = AT+CMGS= ; //wyslanie SMS code char LOSCA = 0x07; code char TOSCA = 0x91; code char SCA[] = F0 ; code char FO = 0x11; code char MR = 0x; code char LODA = 0x0B; code char TODA = 0x91; code char DA[] = F1 ; code char PID = 0x; code char DCS = 0x; code char SCTS = 0x8F; idata char UDbuf[320]; //Definicje naglówków funkcji programu char in(idata char *bufor); char out(idata char *bufor); char status(idata char *bufor); char on(idata char *bufor); char off(idata char *bufor); char help(idata char *bufor); Opisywana aplikacja to tak naprawdí prosty interpreter poleceò. W po³¹czeniu z telefonem komûrkowym (dzia³anie aplikacji testowane by³o z telefonem GSM marki Siemens C35i) potrafi realizowaê proste polecenia wydawane za pomoc¹ SMS. Rezultaty wykonania poleceò oraz stan urz¹dzenia s¹ raportowane rûwnieø przez komunikaty SMS. Urz¹dzenie zbudowane by³o w oparciu o p³ytkí prototypow¹ z wbudowanym interfejsem MAX232 oraz z wykorzystaniem fabrycznego kabla po³¹czeniowego dla telefonu komûrkowego Siemens. Naleøy je traktowaê bardziej jako przyk³ad wykonania aplikacji wspû³pracuj¹cej z telefonem GSM aniøeli urz¹dzenie gotowe do wykorzystania, chociaø z ca³¹ pewnoúci¹ moøe pos³uøyê do jego budowy. //Dlugosc numeru SCA+1 //Typ numeracji SCA //Centrum Uslug (tu dla sieci Plus GSM) //Pierwszy oktet dla wysylanego SMS //Numer odniesienia dla komunikatu //Liczba cyfr numeru telefonu ODBIORCA //Numeracja miedzynarodowa dla CU i ODBIORCA //Odbiorca wiadomosci SMS //Identyfikator protokolu (tekst) //Schemat kodowania //Okres waznosci 12 godzin //Bufor dla komunikatu SMS typedef struct //Definicja typu dla tablicy - wykazu polecen char code *komenda; char (code *funkcja)(idata char*); komendy; code komendy wykaz[] = //Wykaz komend i powiazanych z nimi funkcji IN, in, OUT, out, STATUS, status, ON, on, OFF, off, HELP, help,?, help,, NULL //Koniec wykazu ; tûw pamiíci przeznaczonej na stos, zmienne itp. Buduj¹c samodzielnie podobn¹ aplikacjí, moøna wykorzystaê np. mikrokontroler T89C51-RD2. Ma on wbudowan¹ w strukturí pamiíê RAM o pojemnoúci 1280 bajtûw, ktûr¹ moøna wykorzystaê miídzy innymi z przeznaczeniem na bufor odbioru komunikatûw SMS. Na list. 1 umieúci³em fragment programu wraz z definicjami odpowiednich sta³ych uøywanych przy kompozycji SMS oraz typûw zmiennych. Sta³e zawieraj¹ polecenia w formie ³aÒcuchÛw tekstowych przesy³ane do telefonu GSM. S¹ to odpowiednio: - CPIN: wprowadzenie numeru PIN aparatu, - CHOOSEMEM: fragment polecenia wybieraj¹cego domyúln¹ lokalizacjí dla SMS, - ECHOOFF: polecenie wy³¹czaj¹ce echo wys³anej komendy, - SETNOTICE: ustawienie sposobu powiadamiania o komunikacie SMS, - NOTICE: komunikat, za pomoc¹ ktûrego aplikacja powiadamiana jest o nowym odebranym przez aparat GSM komunikacie SMS, - SMSDEL: to polecenie usuwania wiadomoúci SMS z pamiíci, - SMSREAD: to polecenie odczytu odebranego SMS po powiadomieniu, - SMSSEND: to polecenie wys³ania wiadomoúci SMS bez poúrednictwa karty SIM. Elektronika Praktyczna 3/24 77
2 Rys. 1. Algorytm działania funkcji odbioru SMS receivesms() W postaci sta³ych zdefiniowano rûwnieø nag³ûwek wiadomoúci. Za³oøono, øe telefon pracuje w sieci Plus GSM, numer Centrum Us³ug i aparatu zawsze podawany jest w formacie miídzynarodowym, okres waønoúci wiadomoúci (wysy³anej) wynosi 12 godzin. Jako pierwszy zdefiniowany zosta³ bufor dla odebranej wiadomoúci SMS (uwaga: jak wspomniano na pocz¹tku, jego rozmiar przekracza rozmiar pamiíci danych typowego uk³adu 8951/8952). NastÍpnie zosta³ zadeklarowany typ zmiennej s³uø¹cy do budowy wykazu poleceò realizowanych przez aplikacjí. Ten typ wykorzystywany jest do budowy tablicy zakwalifikowanej do obszaru code, poniewaø zawiera wartoúci sta³e, nieulegaj¹ce zmianie w czasie wykonywania programu. Rozmiar tablicy - wykazu funkcji - nie jest ustalony. Jej koniec sygnalizuje znak o kodzie ì0î. Funkcja zawarta w definicji struktury musi zwracaê jak¹ú wartoúê. Naj³atwiej, gdy jest to wartoúê typu char, ktûr¹ moøna pûüniej wykorzystaê do sygnalizacji np. b³ídûw realizacji poleceò, jednak moøe to byê rûwnieø inny typ zmiennych. Jest to wymûg konieczny dla pûüniejszej realizacji polecenia return(wykaz[indeks].funkcja()), poniewaø polecenie return nie moøe zwracaê wartoúci typu void oraz z powodûw, o ktûrych bídzie mowa dalej. Funkcja command powinna byê tego samego typu, jak okreúlono to w definicji struktury. Oczywiúcie powinna a nie musi. Jeúli typy bíd¹ rûøne, to nast¹pi niejawna konwersja typu zwracanej wartoúci. Interpreter wykonuje nastípuj¹ce polecenia: - IN <numer portu> np. IN 1 - odczyt portu o podanym numerze, - OUT <numer portu> <wartoúê> np. OUT 1 0x20 - zapisuje do portu o podanym numerze liczbí, - STATUS - podaje informacjí o statusie WY CZONY/AKTYWNY, - ON - za³¹czenie operacji na portach tj. poleceò IN i OUT, - OFF - wy³¹czenie operacji na portach tj. blokowanie funkcjonowania poleceò IN i OUT, - HELP lub? - informacja o realizowanych poleceniach. Polecenia mog¹ byê przesy³ane przez dowolny telefon komûrkowy oraz niektûre aplikacje wysy³aj¹ce polecenia za pomoc¹ bramki SMS z wykorzystaniem Internetu. Program skompilowany zosta³ z uøyciem RC- 51 firmy Raisonance. Pocz¹tek kodu ürûd³owego to w³aúciwe dla RC-51 polecenie #pragma DEFJ(TIM1_INIT=0xFE) definiuj¹ce wartoúê zapisywan¹ do rejestru TH1 Timera 1 steruj¹cego prac¹ UART. Dla rezonatora 7,3728MHz oraz podwûjnej szybkoúci zegara steruj¹cego prac¹ interfejsu szeregowego 78 Elektronika Praktyczna 3/24
3 List. 2. Fragment programu odpowiedzialny za rozpoznawanie odbieranych poleceń //wyszukiwanie komend oraz wywolanie odpowiadajacych im funkcji char command(char data *bufor) char i, j; //256 komend o maks. dlugosci 256 znaków List. 3. Funkcja odbierająca i dekodująca komunikat SMS //zamiana dwubajtowej liczby - lancucha znaków na typ unsigned int WORD str2num(generic char *addr) data char temp[2]; WORD num; temp[0] = *addr; temp[1] = *(addr+1); sscanf(temp, %X, &num); return (num); //odbiór wiadomosci SMS void receivesms(generic char *tekst) WORD i; char ch_1, ch_2, n, pos; data char temp[20]; generic char *ptr; ptr = tekst; //bufor do zapamietywania tekstu - rezultatu gets(tekst); //oczekiwanie na powiadomienie zgodne z NOTICE if (strncmp(tekst, &NOTICE, 6) == 0) sscanf((tekst+12), %i, &i); //wyodrebnienie indeksu w pamieci printf( %s%c%c\n,choosemem,*(tekst+8),*(tekst+9)); //wybór pamieci z SMS //pobranie informacji o statusie CPMS //pobranie OK printf( %s%i\n, SMSREAD, i); gets(tekst); //pobranie SMS //pobranie OK printf( %s%i\n, SMSDEL, i);//usuniecie SMS z pamieci telefonu //pobranie OK for (i = 0;;) for (j = 0;; ) if(wykaz[i].komenda[j]!= 0) //jesli komenda rózna od znaku pustego //do porównania zamiana liter na duze if(((wykaz[i].komenda[j]^bufor[j]) & 0x5F) == 0) i++; break; j++; continue; i = str2num(tekst); tekst += 2 * i + 4; i = str2num(tekst); tekst += 22 + i + i % 2; i = str2num(tekst); tekst += 2; //nastepny znak //nastepna komenda if( j == 0 ) //brak komendy w wykazie printf( %s\n, BLAD: Nie rozpoznano komendy! ); return(0); else return (wykaz[i].funkcja(bufor+j)); //wykonanie funkcji spod wskazanego adresu //przesuniecie wskaznika poza numer centrum uslug //i pierwszy oktet //przesuniecie wskaznika poza pola: typ n-ru //nadawcy, nr nadawcy, identyfikator protokolu, //schemat kodowania, znacznik czasu //wyznaczenie dlugosci lancucha //wskazanie do pierwszej pozycji tekstu SMS while (pos < i) //dopóki nie przekroczono rozmiaru lancucha ch_1 = str2num(tekst); //zamiana lancucha na kod znaku n = pos % 8; //obliczenie liczby przesuniec dla 1-go znaku ch_1 <<= n; //przesuniecie 1-go znaku w lewo n razy ch_1 += ch_2; //maskowanie najstarszego bitu oraz uwzglednienie ch_1 &= 0x7F; // bitów przeniesienia (przy kodowaniu) *ptr = ch_1; //zapis wyliczonego kodu znaku do bufora ptr++; //nastepna pozycja w buforze n = 7 - n; //wyliczenie ilosci przesuniec nastepnego znaku ch_2 = str2num(tekst) >> n; //dla odzyskania bitów utraconych przy //kodowaniu if (n == 0) //cyklicznie - 8 znak brany jest w calosci ch_2 = 0; tekst -= 2; pos++; //nastepna pozycja w dekodowanym ciagu tekst += 2; *ptr = 0; //zapis znaku konca lancucha (SMOD = 1), zapis do TH1 wartoúci 0xFE wymusza transmisjí szeregow¹ asynchroniczn¹ z prídkoúci¹ 192 bd. W nastípnej kolejnoúci do³¹czane s¹ definicje rejestrûw mikrokontrolera, biblioteka funkcji wejúcia - wyjúcia oraz dla czytelnoúci programu zdefiniowany zostaje typ WORD. W kolejnym kroku definiowane s¹ nag³ûwki funkcji bíd¹cych odpowiednikami poleceò realizowanych przez interpreter. Zdefiniowanie ich w tym miejscu jest konieczne, poniewaø za moment nazwy funkcji bíd¹ uøyte do konstrukcji tablicy - wykazu poleceò. Na list. 2 umieúci³em fragment programu rozpoznaj¹cy polecenie oraz wywo³uj¹cy odpowiadaj¹c¹ mu funkcjí. Dwie zmienne j oraz i s³uø¹ (odpowiednio) jako indeksy poszczegûlnych liter, przekazywanego jako argument funkcji, ci¹gu znakûw oraz poszczegûlnych linii tablicy - wykazu poleceò. Funkcja XOR (^) s³uøy do sprawdzenia warunku rûwnoúci znakûw, a bitowe AND (&) maskuje bity odpowiadaj¹ce ma³ym literom alfabetu. DziÍki temu wielkoúê znakûw (liter) odebranych z UART nie wp³ywa na interpretacjí polecenia. W przypadku, gdy komenda nie zostanie odnaleziona w wykazie, wartoúê indeksu j bídzie rûwna 0 i pos³uøy do wys³ania komunikatu o b³ídzie. W innym przypadku zwracany jest wskaünik do funkcji, ktûrego przekszta³cenie do typu char owocuje wywo³aniem funkcji. G³Ûwna pítla programu zawiera tylko kilka poleceò: ustawia bit SMOD w rejestrze PCON mikrokontrolera, inicjuje telefon, ustawiaj¹c sposûb powiadamiania oraz wprowadzaj¹c do niego numer PIN, wywo³uje funkcjí receivesms odbieraj¹c¹ komunikat SMS po powiadomieniu, a nastípnie interpretuje polecenie, uruchamiaj¹c funkcjí command jako parametr, podaj¹c adres zdekodowanego ci¹gu ³aÒcucha znakûw w³aúciwego odebranemu komunikatowi SMS. OdbiÛr wiadomoúci SMS Do odbioru wiadomoúci SMS s³uøy funkcja receivesms(generic char *tekst). WyodrÍbnia ona fragment komunikatu o nazwie Dane Uøytkownika i dokonuje jego konwersji na zwyk³y tekst. Pozosta³e sk³adniki komunikatu s¹ odrzucane. Na list. 3 umieszczono funkcjí oraz pomocnicz¹ dla niej str2num, zajmijmy sií opisem sposobu ich dzia³ania. Elektronika Praktyczna 3/24 79
4 Pomocnicza funkcja str2num dokonuje konwersji dwuznakowej liczby szesnastkowej wyraøonej w formie ³aÒcucha znakûw (np. A0, F1, FF itp.) na jej reprezentacjí liczbow¹ typu unsigned int (WORD). Konwersja jest wykonywana za pomoc¹ standardowej funkcji bibliotecznej jízyka C - sscanf. Kaødy ci¹g znakûw przesy³any przez telefon GSM (rûwnieø terminal GSM) do komputera PC zakoòczony jest przez sekwencjí znakûw CR - LF (0x0D - 0x0A). Znajduj¹ce sií na pocz¹tku receivesms wywo- ³anie funkcji gets oczekuje na transmisjí z UART zakoòczon¹ List. 4. Funkcja kodująca i wysyłająca komunikat SMS //wyslanie wiadomosci SMS void sendsms(generic char *tekst) char len, i, n, ch_1, ch_2; n = len = strlen(tekst); //obliczenie dlugosci lancucha znaków i = n / 8; //liczac od pierwszego oktetu n = i * 7 + i % ; printf( %s%d\n, SMSSEND, n); while(_getkey()!= > ); //oczekiwanie na znak zachety printf( %02X%02X%s%02X%02X%02X%02X%s%02X%02X%02X%02X, \\ LOSCA, TOSCA, SCA, FO, MR, LODA, TODA, DA, PID, DCS, SCTS, len); i = 0; while (i < len) ch_1 = *(tekst + i); //pobranie pierwszego znaku tekstu ch_2 = *(tekst + i + 1); //pobranie nastepujacego za nim znaku n = i % 8; //obliczenie ilosci przesuniec ch_1 >>= n; //przesuniecie pierwszego znaku w prawo n = 7-n; //wyliczenie liczby przesuniec dla 2-go znaku ch_2 <<= n; //przesuniecie drugiego znaku w lewo ch_1 += ch_2; //wyliczenie kodu nowo powstalego znaku printf( %02X, ch_1); //wyslania znaku szesnastkowego i++; //nastepna pozycja w lancuchu if (n == 1) i++; //dla kazdego 8-go znaku przesuniecie o 1, //znak jest gubiony putchar(0x1a); //wyslanie znaku konca EOT+CR+LF putchar(0x0d); Rys. 2. Algorytm działania funkcji wysyłania SMS sendsms() w³aúnie tymi znakami. Po ich odebraniu, ³aÒcuch znakûw znajduj¹cy sií w buforze transmisji porûwnywany jest z wzorcem dla powiadomienia. W przypadku zgodnoúci podejmowana jest akcja maj¹ca na celu odebranie i zdekodowanie komunikatu. Jako pierwszy za pomoc¹ funkcji sscanf wyodríbniany jest numer - indeks, bíd¹cy czíúci¹ powiadomienia i informuj¹cy o numerze odebranego komunikatu w preferowanej lokalizacji pamiíci. NastÍpnie, poprzez zwyk³e wskazanie, pobierana jest nazwa tej lokalizacji (*(tekst+8) oraz *(tekst+9)) i przesy³ana do telefonu. PÛüniej jest odbierana informacja o statusie wybranej lokalizacji, jednak jest ona ignorowana, a jej odbiûr przeprowadzany jest wy³¹cznie dla zapewnienia poprawnej komunikacji. NastÍpne polecenia odczytuj¹ i usuwaj¹ komunikat SMS z pamiíci aparatu. Teraz funkcja przeprowadza dekodowanie SMS umieszczonego w buforze w pamiíci RAM, wskazywanego przez argument *tekst. Pierwszy oktet komunikatu zawiera liczbí oktetûw numeru Centrum Us³ug. Bezpoúrednio za nim umieszczony jest typ numeru Centrum, a nastípnie tenøe numer. Za nimi umieszczony jest pojedynczy bajt, zwany Pierwszym Oktetem. Tak wiíc pobranie pierwszego oktetu komunikatu i wyznaczenie jego wartoúci liczbowej, pomnoøenie jej przez 2 oraz dodanie do niej 4 wyznaczy pozycjí nastípnego, zmiennego parametru tj. Numeru Nadawcy wiadomoúci. Numer Nadawcy prezentowany jest podobnie jak numer Centrum Us³ug. To znaczy rozpoczyna go oktet zawieraj¹cy jego d³ugoúê, pûüniej umieszczany jest oktet typu numeru nadawcy, a nastípnie sam numer. Niestety nie moøna uøyê tu tej samej metody wyznaczania nastípnej pozycji komunikatu, poniewaø tym razem liczba zawieraj¹ca d³ugoúê numeru Nadawcy wyraøa liczbí cyfr numeru, a nie liczbí oktetûw potrzebn¹ na jego zapamiítanie... Dalej prezentowane s¹ parametry o sta³ej d³ugoúci, takie jak: identyfikator protoko³u, schemat kodowania, znacznik czasu. W sumie to 22 bajty + d³ugoúê numeru Nadawcy. Po uwzglídnieniu wyøej opisanych parametrûw oraz zwiíkszeniu o tí wartoúê wskaünika do bufora odebranego komunikatu, zaadresowany zostaje oktet zawieraj¹cy d³ugoúê komunikatu uøytkownika. Funkcja wyznacza tí wartoúê i uøywa jej jako warunku - granicy dla pracy pítli pobieraj¹cej znaki z bufora. W pierwszym kroku pobrany z bufora znak w formie tekstu zamieniany jest na odpowiadaj¹c¹ mu reprezentacjí liczbow¹. NastÍpnie, na bazie numeru znaku wyznaczana jest liczba operacji przesuniícia w lewo i zapamiítywana w zmiennej o nazwie n. Dla przyk³adu jeúli rozpatrywany jest pierwszy znak z bufora, to n=0, dla drugiego n=1 i tak dalej. Poniewaø liczba przesuniíê jest reszt¹ 80 Elektronika Praktyczna 3/24
5 z dzielenia pozycji znaku przez 8, to wartoúê n jest cykliczna i powtarza sií z okresem rûwnym 8 znakûw. Do wyznaczonego w ten sposûb kodu znaku dodawana jest poprzednio wyznaczona wartoúê ch_2 bíd¹ca kodem poprzednio pobranego znaku przesuniítego w prawo o liczbí pozycji 7-n. Operacja przesuniícia umoøliwia wyodríbnienie ìutraconychî w procesie kodowania bitûw kodu znaku. Dla kaødego znaku, ktûrego pozycja jest wielokrotnoúci¹ liczby 7, wartoúê ch_2 jest rûwna 0, a wskaünik znaku jest przesuwany na poprzedni¹ pozycjí. Jest to konieczne z tego powodu, øe zgodnie z zasad¹ kodowania SMS, kaødy co 8 znak jest tracony. Zdekodowane znaki wstawiane s¹ na pocz¹tek bufora wskazywanego przez *tekst, a przechowuj¹cego komunikat SMS. Tak wiíc w rezultacie zdekodowania wzorzec odebranego komunikatu jest niszczony. Po zakoòczeniu dekodowania, na koòcu ³aÒcucha, wstawiany jest znak o kodzie 0, informuj¹cy pozosta³e funkcje jízyka C, korzystaj¹ce ze zdekodowanego ci¹gu znakûw, o koòcu tekstu. Wys³anie wiadomoúci SMS Na list. 4 pokazano funkcjí sendsms(generic char *tekst) wysy³aj¹c¹ dowolny komunikat SMS pod sta³y numer telefonu GSM. W tym przyk³adzie programowania, zarûwno Nadawca, jak i Odbiorca s¹ abonentami sieci Plus GSM. Na pocz¹tku wyznaczana jest d³ugoúê ³aÒcucha znakûw podlegaj¹ca kodowaniu i zapamiítywana w zmiennych n i len. Pierwsza zmienna (n) wysy³ana jest wraz z poleceniem wys³ania komunikatu SMS i w rezultacie, po kolejnych obliczeniach, bídzie zawieraê d³ugoúê ca³ego komunikatu. PamiÍtajmy, øe znaki o kodzie d³ugoúci 8 bitûw zamieniane zostaj¹ na 7-bitowe. Po przes³aniu polecenia wysy³ki komunikatu SMS oraz wyznaczonej wartoúci n, funkcja oczekuje na znak ìzachítyî, po ktûrym to moøe zostaê wprowadzony komunikat SMS. Druga zmienna (len) uøywana jest jako wartoúê graniczna w pítli koduj¹cej tekst oraz przekazywana jako d³ugoúê pola Dane Uøytkownika (UD). Polecenie printf przesy³a odpowiednio sformatowane, sta³e sk³adniki komunikatu: - LOSCA: liczbí oktetûw numeru Centrum Us³ug wraz z oktetem typu numeracji, Przyk³ady kodowania wiadomoœci SMS w trybie PDU 1. Kodowanie wiadomoœci WITAJ! wysy³anej za pomoc¹ aparatu pracuj¹cego w sieci Plus GSM na numer , okres wa noœci 30 dni. Pierwsza wiadomoœæ zostanie zakodowana w formie tabeli dla ³atwiejszego opisu metody. Opis parametru Wartoœæ (szesnastkowo) Uwagi D³ugoœæ pola numeru 07 Liczba oktetów numeru Centrum Us³ug Centrum Us³ug z uwzglêdnieniem pola typu numeracji Typ numeru Centrum 91 Typ numeru Centrum Us³ug - dla numeracji Us³ug miêdzynarodowej 91H Numer Centrum Us³ug F0 Numer Centrum Us³ug, tu podany dla operatora sieci Plus GSM ( ) Pierwszy oktet 11 Wartoœæ 11H przy wywo³aniu funkcji SMS- SUBMIT oraz relacyjny format okresu wa noœci SMS Numer odniesienia Pierwszy komunikat z wiadomoœci dzielonej lub pojedynczy komunikat D³ugoœæ numeru 0B Liczba cyfr numeru odbiorcy odbiorcy Typ numeru odbiorcy 91 Typ numeru odbiorcy - dla numeracji miêdzynarodowej 91H Numer odbiorcy F0 Numer odbiorcy zakodowany w identyczny sposób jak numer Centrum Us³ug Identyfikator protoko³u Oznacza dostarczenie wiadomoœci jako normalnej wiadomoœci SMS Schemat kodowania Oznacza kodowanie domyœlne w formacie 7-bitowych znaków ASCII Okres wa noœci C4 Okres wa noœci wiadomoœci SMS - 30 dni (format relatywny) D³ugoœæ pola danych 06 Tekst u ytkownika zawiera 5 oktetów (po konu ytkownika wersji septetów) Dane u ytkownika D72435A80C01 Tekst komunikatu SMS: WITAJ! Kompletny komunikat po zakodowaniu: F0110B F0C405D72435A80C01 2. Kodowanie komunikatu WITAJ! wysy³anego na numer z aparatu pracuj¹cego w sieci Plus GSM, okres wa noœci 12 godzin d³ugoœæ pola Centrum Us³ug 91 - numeracja miêdzynarodowa F0 - zakodowany numer Centrum Us³ug ( ) 11 - pierwszy oktet komunikatu SMS - numer odniesienia dla wiadomoœci SMS 09 - d³ugoœæ numeru odbiorcy SMS w cyfrach numeru 81 - typ numeru odbiorcy SMS F0 - zakodowany numer odbiorcy ( ) - identyfikator protoko³u (zwyk³a wiadomoœæ tekstowa SMS) - schemat kodowania danych (domyœlny, znaki 7-bitowe) 8F - okres wa noœci SMS 12 godzin 06 - liczba oktetów pola komunikatu D72435A80C01 - zakodowany komunikat SMS 3. Kodowanie komunikatu WITAJ! wysy³anego na numer z aparatu pracuj¹cego w sieci Plus GSM, okres wa noœci 12 godzin, ale kodowanie 8-bitowe d³ugoœæ pola Centrum Us³ug 91 - numeracja miêdzynarodowa F0 - zakodowany numer Centrum Us³ug ( ) 11 - pierwszy oktet komunikatu SMS - numer odniesienia dla wiadomoœci SMS 09 - d³ugoœæ numeru odbiorcy SMS w cyfrach numeru 81 - typ numeru odbiorcy SMS F0 - zakodowany numer odbiorcy ( ) - identyfikator protoko³u (zwyk³a wiadomoœæ tekstowa SMS) F6 - schemat kodowania danych - znaki 8-bitowe 8F - okres wa noœci SMS 12 godzin 06 - liczba oktetów pola komunikatu A21 - zakodowany komunikat SMS 4. Kodowanie komunikatu wieloczêœciowego (3 wiadomoœci SMS) wysy³anego na numer z aparatu pracuj¹cego w sieci Plus GSM, okres wa noœci 30 dni. 1. czêœæ komunikatu: Elektronika Praktyczna 3/24 81
6 07 - d³ugoœæ pola Centrum Us³ug 91 - numeracja miêdzynarodowa zakodowany numer Centrum Us³ug ( ) 11 - pierwszy oktet komunikatu SMS - numer odniesienia dla wiadomoœci SMS 09 - d³ugoœæ numeru odbiorcy SMS w cyfrach numeru 81 - typ numeru odbiorcy SMS zakodowany numer odbiorcy ( ) - identyfikator protoko³u (zwyk³a wiadomoœæ tekstowa SMS) - schemat kodowania danych (domyœlny, znaki 7-bitowe) C4 - okres wa noœci SMS 30 dni A0 - liczba oktetów pola komunikatu D4B21B047 93E56 3D599 0EB341E E83E0 2B73807D297C5 2B03B1D06DDE7 A C9C BE4E8 D1A0 B585 9EBBD365 55C9 1 A34169B7 92D6 87C7EA34E80E82CBC36B7A7EAC B9 3EB 6687C979903EBC7E93D 7B03B3 4683EEE930 9DD7EC C769D0B439752DD3EC C3E E C180DBA87E5E9B09B EBE83E06 D DCD4E czêœæ komunikatu: C4 A0 A3CBDCC76A7D7E 7B1AA47 CBD36537 D7D E83C86 D03DD 0E9 C3EE 2 90D82CB 5653D280C0 CBC374D071DA0499D E07DDD361 2BB D9E8 D3A034885D86A7CB6A9 05E ED6D7DBE9 218A40 C C3E43C68 D26B E 61773A0CBAA7C3E477 B3D1 A75DCEB7BC9D071DA 74DD05B1ED683E6 0 7 C2DCE83D66 2 B1E76A7C3 3. czêœæ komunikatu: C A1B240ECBC9 A37E82D9EEBCB B9D3E539BD4CC 83E8 23AD95D06E9C3E730D99 D2EBBD36517 Uwaga: jak ³atwo zauwa yæ, pole numer odniesienia komunikatu nie jest ustawiane, poniewa oprogramowanie telefonu numeruje komunikaty samodzielnie. - TOSCA: typ numeru Centrum Us³ug. W tym miejscu jest uøywana numeracja miídzynarodowa, wiíc 91H, - SCA: numer Centrum Us³ug odpowiednio zakodowany, to jest: 1) jeúli liczba cyfr jest nieparzysta, na koòcu dodawana jest litera F, 2) poszczegûlne znaki w obríbie jednego bajtu zamieniane s¹ miejscami (po³ûwki bajtu), dla przyk³adu: F F0, - FO: parametr Pierwszy Oktet typowo ma wartoúê 11H dla wysy³anego komunikatu SMS, - MR: numer odniesienia dla komunikatu; komunikaty numerowane s¹ automatycznie dla wieloczíúciowych wiadomoúci SMS (MMS), naleøy wstawiê wartoúê 0, - LODA: d³ugoúê pola Numeru Nadawcy, - TODA: typ pola Numer Nadawcy, - DA: pole Numer Nadawcy zakodowany identycznie jak numer Centrum Us³ug, - PID: identyfikator protoko³u, typowo 0 (SMS tekstowy), - DCS: schemat kodowania, typowo 0 (alfabet domyúlny, 7-bitowe znaki ASCII), - SCTS: okres waønoúci komunikatu SMS, - len: d³ugoúê pola Dane Uøytkownika. W celu zakodowania zawartoúci pola Dane Uøytkownika (treúê komunikatu) funkcja pobiera kod znaku z ³aÒcucha oraz nastípny w kolejnoúci. NastÍpnie wyznaczana jest liczba operacji przesuniíê w prawo dla pierwszego znaku jako reszta z dzielenia numeru pozycji znaku przez 8: kod znaku pierwszego przesuwany jest w prawo o liczbí miejsc zgodn¹ z wyznaczon¹ wartoúci¹. Teraz wyznaczana jest liczba przesuniíê w lewo drugiego znaku jako rûønica cyfry 7 i reszty z dzielenia numeru pozycji znaku przez 8: kod drugiego znaku przesuwany jest w lewo o wyznaczon¹ liczbí miejsc. Na skutek zsumowania pierwszego i drugiego kodu uzyskuje sií cyfrí w³aúciw¹ dla zastosowanej metody kodowania. Cyfra ta, odpowiednio sformatowana, wysy³ana jest za pomoc¹ instrukcji printf do do- ³¹czonego telefonu GSM. Zgodnie z opisywan¹ wczeúniej metod¹ kodowania, kaødy co 8 znak jest ìgubionyî. Warunek if, sprawdzaj¹cy cyklicznoúê liczby przesuniíê, powoduje przemieszczenie indeksu na kolejny znak dla kaødego co 8 w kolejnoúci kodu znaku. Komunikat koòczony jest przez wys³anie sekwencji Ctrl+Z - CR - LF. Komunikat wysy³any jest bezpoúrednio po odebraniu tej sekwencji. Niniejszy artyku³ nie wyczerpuje wszystkich aspektûw funkcji wysy³ania i odbioru wiadomoúci SMS. Mam jednak nadziejí, øe bídzie pomocny przy konstruowaniu w³asnych aplikacji. Jacek Bogusz, EP jacek.bogusz@ep.com.pl 82 Elektronika Praktyczna 3/24
Wstęp do programowania. Dariusz Wardecki, wyk. V
Wstęp do programowania Dariusz Wardecki, wyk. V Tablica (ang. array) Zestaw N zmiennych tego samego typu numerowanych liczbami w zakresie od 0 do (N 1). Element tablicy Zmienna wchodzπca w sk ad tablicy,
Pracownia komputerowa. Dariusz Wardecki, wyk. VIII
Pracownia komputerowa Dariusz Wardecki, wyk. VIII Powtórzenie Podaj wartość liczby przy następującej reprezentacji zmiennoprzecinkowej (Kc = 7) Z C C C C M M M 1 0 1 1 1 1 1 0-1.75 (dec) Rafa J. Wysocki
4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.
13 4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD. Zagadnienia do przygotowania: - budowa i działanie interfejsu szeregowego UART, - tryby pracy,
Dekoder dzia³a podobnie jak w telefonach komûrkowych: wyúwietla
do / z µc Dekoder CLIP AVT 5004 P R O Dekoder J E K CLIP T Y Identyfikacja numeru abonenta dzwoni¹cego CLIP (ang. Calling Line Identification Presentation), ogûlnie dostípna w sieciach komûrkowych oraz
Podstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku
Instrukcja programu PControl Powiadowmienia.
1. Podłączenie zestawu GSM. Instrukcja programu PControl Powiadowmienia. Pierwszym krokiem w celu uruchomienia i poprawnej pracy aplikacji jest podłączenie zestawu GSM. Zestaw należy podłączyć zgodnie
Systemy mikroprocesorowe - projekt
Politechnika Wrocławska Systemy mikroprocesorowe - projekt Modbus master (Linux, Qt) Prowadzący: dr inż. Marek Wnuk Opracował: Artur Papuda Elektronika, ARR IV rok 1. Wstępne założenia projektu Moje zadanie
/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
Biblioteka standardowa - operacje wejścia/wyjścia
Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline
Programowany zegar ze zdalnym sterowaniem
Dział Projekty Czytelników zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich
Klocki RS485, część 4
P R O Klocki J E K RS485 T Y Klocki RS485, część 4 W czwartej, przedostatniej czíúci artyku³u przedstawiamy dwie karty wejúê: cyfrowych i analogowych. DziÍki nim, system zaprezentowany w cyklu artyku³ûw
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Pracownia komputerowa. Dariusz Wardecki, wyk. IV
Pracownia komputerowa Dariusz Wardecki, wyk. IV Notacja szesnastkowa Zapis szesnastkowy (ang. hexadecimal notation) Dowolnπ nieujemnπ liczbí ca kowitπ moøna roz oøyê na potígi liczby 16 x = ÿ N 1 j=0 h
Techniki multimedialne
Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok
Język ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1
Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne
Stałe i zmienne znakowe. Stała znakowa: znak
Stałe i zmienne znakowe. Stała znakowa: znak Na przykład: a, 1, 0 c Każdy znak jest reprezentowany w pamięci przez swój kod. Kody alfanumerycznych znaków ASCII to liczby z przedziału [32, 127]. Liczby
4 Transmisja szeregowa, obsługa wyświetlacza LCD.
1 4 Transmisja szeregowa, obsługa wyświetlacza LCD. Zagadnienia do przygotowania: - budowa i działanie interfejsu szeregowego UART, - tryby pracy, - ramka transmisyjna, - przeznaczenie buforów obsługi
Logiczny model komputera i działanie procesora. Część 1.
Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.
Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych
Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych Przykłady wykorzystanie funkcji printf i scanf do wyświetlania danych na wyświetlaczu LCD oraz komunikacji sterownika mikroprocesorowego
Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński
Języki programowania Część druga Przetwarzanie tablic znaków Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim
Użycie modułu GSM w systemie embedded (1)
Użycie modułu GSM w systemie embedded (1) Komendy AT oraz ich rozszerzenia dla modułów GSM We wczesnych latach sześćdziesiątych bardzo szybki rozwój techniki komputerowej wymusił konieczność opracowania
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Podstawy programowania
Podstawy programowania Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu,
Kod produktu: MP01105
MODUŁ INTERFEJSU KONTROLNO-POMIAROWEGO DLA MODUŁÓW Urządzenie stanowi bardzo łatwy do zastosowania gotowy interfejs kontrolno-pomiarowy do podłączenia modułów takich jak czujniki temperatury, moduły przekaźnikowe,
ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM
ĆWICZENIE 5 TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM Wiadomości wstępne: Port szeregowy może pracować w czterech trybach. Tryby różnią się między sobą liczbą bitów
Języki programowania obiektowego Nieobiektowe elementy języka C++
Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków
Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780
Dane techniczne : Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780 a) wielkość bufora znaków (DD RAM): 80 znaków (80 bajtów) b) możliwość sterowania (czyli podawania kodów znaków) za pomocą
Start Bity Bit Stop 1 Bit 0 1 2 3 4 5 6 7 Par. 1 2. Rys. 1
Temat: Obsługa portu komunikacji szeregowej RS232 w systemie STRC51. Ćwiczenie 2. (sd) 1.Wprowadzenie do komunikacji szeregowej RS232 Systemy bazujące na procesorach C51 mogą komunikować się za pomocą
Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe
Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie
TECHNIKA MIKROPROCESOROWA
LABORATORIUM TECHNIKA MIKROPROCESOROWA Port transmisji szeregowej USART MCS'51 Opracował: Tomasz Miłosławski 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się ze sposobami komunikacji mikrokontrolera
Telewizja cyfrowa i standard MPEG2
Telewizja cyfrowa i standard MPEG2 Czym jest telewizja cyfrowa, dlaczego powstaje wokû³ niej tyle zamieszania, co oznacza skrût MPEG2? Przeczytaj poniøszy artyku³, a poznasz odpowiedzi na te pytania. Rys.
Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
INFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Warszawa, 08.01.2016 r.
Warszawa, 08.01.2016 r. INSTRUKCJA KORZYSTANIA Z USŁUGI POWIADOMIENIA SMS W SYSTEMIE E25 BANKU BPS S.A. KRS 0000069229, NIP 896-00-01-959, kapitał zakładowy w wysokości 354 096 542,00 złotych, który został
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
while(wyrażenie) instrukcja
emat zajęć: Operatory i instrukcje w języku C - 2 Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (instrukcja cyklu: while) Do wykonywania cyklicznych obliczeń w języku C stosuje się instrukcje cyklu (pętli).
E S - uniwersum struktury stosu
Temat: Struktura stosu i kolejki Struktura danych to system relacyjny r I r i i I U,, gdzie U to uniwersum systemu, a i i - zbiór relacji (operacji na strukturze danych). Uniwersum systemu to zbiór typów
Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:
Wykład 3 3-1 Reprezentacja liczb całkowitych ze znakiem Do przedstawienia liczb całkowitych ze znakiem stosowane są następujące kody: - ZM (znak-moduł) - U1 (uzupełnienie do 1) - U2 (uzupełnienie do 2)
Asynchroniczny konwerter RS232< >Midi
Asynchroniczny konwerter P R O RS232< >Midi J E K T Y Asynchroniczny konwerter RS232< >Midi AVT 842 W artykule prezentujemy uk³ad, ktûry umoøliwia wspû³prací standardowych interfejsûw RS232 i MIDI. Rys.
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Modu³ SPIDER GSM. producent ELEKTRO-MIZ. Instrukcja U ytkownika
Modu³ SPIDER GSM producent ELEKTRO-MIZ Instrukcja U ytkownika Opis funkcjonalny: Moduù SPIDER GSM pozwala na zdaln¹ kontrolê pracy kot³a za pomoc¹ telefonu komórkowego. U ytkownik mo e poprzez wys³anie
CZYTNIK ZBLIŻENIOWY RFID-UR80D
CZYTNIK ZBLIŻENIOWY RFID-UR80D Dziękujemy za wybór naszego produktu. Niniejsza instrukcja pomoże państwu w prawidłowym podłączeniu urządzenia, uruchomieniu, oraz umożliwi prawidłowe z niego korzystanie.
Wstęp do programowania. Dariusz Wardecki, wyk. X
Wstęp do programowania Dariusz Wardecki, wyk. X Na czym polega przeciążanie operatorów Zamiast podawaê nazwí metody, moøna jπ oznaczyê z pomocπ symbolu operatora. Wtedy liczba argumentów metody zaleøy
WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński
WYKŁAD 8 Funkcje i algorytmy rekurencyjne Proste przykłady Programy: c3_1.c..., c3_6.c Tomasz Zieliński METODY REKURENCYJNE (1) - program c3_1 ======================================================================================================
Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach
Marcin Stępniak Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach 1. Informacje Matematyk o nazwisku Bool wymyślił gałąź matematyki do przetwarzania wartości prawda
interfejs szeregowy wyświetlaczy do systemów PLC
LDN SBCD interfejs szeregowy wyświetlaczy do systemów PLC SEM 08.2003 Str. 1/5 SBCD interfejs szeregowy wyświetlaczy do systemów PLC INSTRUKCJA OBSŁUGI Charakterystyka Interfejs SBCD w wyświetlaczach cyfrowych
Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz
Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Funkcje przetwarzające teksty (biblioteka ) - tworzenie własnych
Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy
1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć
Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Systemy liczenia. 333= 3*100+3*10+3*1
Systemy liczenia. System dziesiętny jest systemem pozycyjnym, co oznacza, Ŝe wartość liczby zaleŝy od pozycji na której się ona znajduje np. w liczbie 333 kaŝda cyfra oznacza inną wartość bowiem: 333=
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:
Sieci komputerowe Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: korzystania ze wspólnych urządzeo, np.
Konwerter RS 232 / Centronics typ KSR
W i t o l d J u r e c z k o 44-151 Gliwice, ul. Daszyñskiego 560 Regon: 271215331 NIP: 631-010-66-35 Internet: www.yuko.com.pl e-mail: yuko@yuko.com.pl tel./ fax : (+48) (32) 230-89-49 telefony wewnêtrzne,
CONTROL SYSTEM USING GSM TECHNOLOGY SYSTEM STEROWANIA WYKORZYSTUJĄCY TECHNOLOGIĘ GSM
Konrad Cwynar V rok Koło Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy CONTROL SYSTEM USING GSM TECHNOLOGY SYSTEM STEROWANIA WYKORZYSTUJĄCY TECHNOLOGIĘ GSM Keywords: AT commands, AVR, controller,
Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:
Operatory logiczne Komputery i ich logika AND - && Podstawy programowania w C++ Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com
Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia Krzysztof Banaś Podstawy programowania 1 Typy danych Podstawowe wbudowane typy danych języka C: _Bool 0 i 1 (C99) znaki (char) 7
Zakład Usług Informatycznych OTAGO
Zakład Usług Informatycznych OTAGO Opis konstrukcji Wirtualnego Numeru Rachunku dotyczący płatności masowych wersja 1.4 autor: Tomasz Rosochacki Gdańsk, 2012-11-27 Spis treści 1. Wprowadzenie.... 3 2.
Praca domowa nr 1. a a b a b ; b c. c a bc d ef gh. 2) Napisz kod sprawdzający poniższe warunki sformułowane w języku naturalnym:
Praca domowa nr 1 1) Napisz kod w języku C obliczający wartość poniższych wyrażeń; załóż, że każda litera oznacza pojedynczą zmienną typu int: a bc ; a b c ; bc a a b a b ; b c d e f g ; a b c d e d ef
Rys 2. Schemat obwodów wejściowo/wyjściowych urządzeń w magistrali I2C
Temat: Magistrala I2C na przykładzie zegara czasu rzeczywistego PCF8583. 1.Opis magistrali I2C Oznaczenie nazwy magistrali, wywodzi się od słów Inter Integrated Circuit (w wolnym tłumaczeniu: połączenia
KURS C/C++ WYKŁAD 6. Wskaźniki
Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Kod produktu: MP01611
CZYTNIK RFID ZE ZINTEGROWANĄ ANTENĄ, WYJŚCIE RS232 (TTL) Moduł stanowi tani i prosty w zastosowaniu czytnik RFID dla transponderów UNIQUE 125kHz, umożliwiający szybkie konstruowanie urządzeń do bezstykowej
Funkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Wskaźniki. Programowanie Proceduralne 1
Wskaźniki Programowanie Proceduralne 1 Adresy zmiennych Sterta 1 #include 2 3 int a = 2 ; 4 5 int main ( ) 6 { 7 int b = 3 ; 8 9 printf ( " adres zmiennej a %p\n", &a ) ; 10 printf ( " adres
Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne
Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...
asix4 Podręcznik użytkownika LUMBUS - drajwer regulatorów firmy LUMEL Podręcznik użytkownika
Podręcznik użytkownika LUMBUS - drajwer regulatorów firmy LUMEL Podręcznik użytkownika Dok. Nr PLP4029 Wersja: 04-10-2005 Podręcznik użytkownika asix4 ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp.
Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Ćwiczenie 6 - Czytnik kart magnetycznych
Grzegorz Pietrzak (133329) Jacek Symonowicz (133375) Wrocław, dnia 8 marca 2007 Laboratorium nr 1 Ćwiczenie 6 - Czytnik kart magnetycznych Kurs: Urządzenia peryferyjne (2) Prowadzący: dr inż. Tomasz Walkowiak
Pliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego
MIKROKONTROLERY I MIKROPROCESORY
PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy
Sieci komputerowe. Definicja. Elementy 2012-05-24
Sieci komputerowe Wprowadzenie dr inż. Maciej Piechowiak Definicja grupa komputerów lub innych urządzeń połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów Elementy Cztery elementy
INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR
INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.
Programator układów HCS
Układy serii HCS. PROGRAMATOR HCS 200 HCS300 HCS 301 HCS 500 UKŁADÓW HCS NIE MOŻNA ODCZYTAĆ! żadnym programatorem, układy są zabezpieczone przed odczytem na etapie programowania. Układy serii HCS to enkodery
Spis procedur i programów
Spis procedur i programów Przykład 1.1. Szablon programu.................................... 10 Przykład 2.1. Dodawanie liczby jednobajtowej do trzybajtowej....................15 Przykład 2.2. Dodawanie
1. Wprowadzanie danych z klawiatury funkcja scanf
1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),
Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego
Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia
wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
Pytania sprawdzające wiedzę z programowania C++
Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?
Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF
Krzysztof Leszczyński Adam Sosnowski Michał Winiarski Projekt UCYF Temat: Dekodowanie kodów 2D. 1. Opis zagadnienia Kody dwuwymiarowe nazywane często kodami 2D stanowią uporządkowany zbiór jasnych i ciemnych
Tablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:
Zadania-7 1. Opracować program prowadzący spis pracowników firmy (max.. 50 pracowników). Każdy pracownik opisany jest za pomocą struktury zawierającej nazwisko i pensję. Program realizuje następujące polecenia:
Instrukcja logowania do aplikacji ING Agent
Instrukcja logowania do aplikacji ING Agent od 7 marca 2011 roku SPIS TREŚCI 1. Wstęp... 2 2. Parametry hasła... 2 3. Pierwsze logowanie... 2 3.1. Pierwsze logowanie dla dotychczasowych uŝytkowników...
INSTRUKCJA OBSŁUGI PRZYSTAWKI PEN-01 DO PENDRIVE A
INSTRUKCJA OBSŁUGI PRZYSTAWKI PEN-01 DO PENDRIVE A 1. Opis ogólny Przystawka umożliwia zapisywanie danych przesyłanych z urządzenia pomiarowego, np. z wagi, do pamięci typu pendrive (USB). Dane zapisywane
Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI
Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System
petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla
Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne
Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/
Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura
Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ
w C Zak lad Chemii Teoretycznej UJ 30 listopada 2006 1 2 3 Inicjalizacja zmiennych Zmienne jednowymiarowe można inicjować przy ich definicji. #include i n t x = 1 ; l o n g day = 1000L * 60L
Podstawy programowania w języku C
Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu
PERSON Kraków 2002.11.27
PERSON Kraków 2002.11.27 SPIS TREŚCI 1 INSTALACJA...2 2 PRACA Z PROGRAMEM...3 3. ZAKOŃCZENIE PRACY...4 1 1 Instalacja Aplikacja Person pracuje w połączeniu z czytnikiem personalizacyjnym Mifare firmy ASEC
Mikrooperacje. Mikrooperacje arytmetyczne
Przygotowanie: Przemysław Sołtan e-mail: kerk@moskit.ie.tu.koszalin.pl Mikrooperacje Mikrooperacja to elementarna operacja wykonywana podczas jednego taktu zegara mikroprocesora na informacji przechowywanej
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
12 kanałowy regulator mocy sterowany sygnałem DMX512
12 kanałowy regulator mocy sterowany P R sygnałem O J E DMX512 K T Y 12 kanałowy regulator mocy sterowany sygnałem DMX512 Opis dotyczy zestawu regulatorûw duøej mocy, ktûre mog¹ byê wykorzystane w duøych