Nagrywarki |
Pliki |
Dyski twarde |
Recenzje |
Księgarnia |
Biosy |
Artykuły |
Nagrywanie od A do Z |
Słownik |
FAQ
|
||
|
Komputery - oprogramowanie i sprzęt Pytania i problemy niezwiązane z nagrywaniem, backupem i grami. |
|
Opcje związane z dyskusją | Tryby wyświetlania |
20.10.2012, 12:01 | #1 |
logged out
CDRinfo VIP
Data rejestracji: 12.07.2003
Lokalizacja: /home
Posty: 12,518
|
Programowanie - sprawdzenie skryptu
Elo moto.
Od jakiegoś czasu po głowie chodził mi pomysł stworzenia skryptu/profilu do programu Tasker, który będzie odpowiadał na połączenia przychodzące kiedy mam aktywne spotkanie ze statusem zajęty. Od kilkunastu dni po malutkim kawałeczku rozpisywałem sobie algorytm działania żeby kilka dni temu przelać to na profil taskera. Zanim go wdrożę muszę sprawdzić czy nie ma błędów - badzo bym nie chciał aby program wysłał np. 1000 smsów :D Założenie: Profil aktywuje się w momencie kiedy poniższe konteksty zostaną spełnione:
Skrypt wygląda tak: Profile: Autoresponder (18) State: Call [ Type:Incoming Number:* ] //Kontekst przychodzące połączenie State: Profile Active [ Name:Spotkanie ] //Kontekst aktywny profil Spotkanie State: Variable Value [ Name:%CNAME Op:Maths: Isn't Equal To Value:%CNUM ] //Kontekst sprawdzający czy numer jest w książce. Normalnie nazwa numeru jest numerem jeżeli nie mamy jej w książce adresowej. Jeżeli weźmiemy to pod uwagę możemy w łatwy sposób wykryć czy osoba, która do nas dzwoni jest w naszej książce adresowej. Enter: Auto odpowiedź (20) A1: Variable Set [ Name:%JEST To:0 Do Maths:Off Append:Off ] //Zmienna %JEST ustawiana jest na wartość 0. Zmienna ta mówi mi czy osoba dostała już powiadomienie w tej sesji - w tym spotkaniu A2: Variable Set [ Name:%NUMER To:%CNUM Do Maths:Off Append:Off ] //Kopiowanie numeru osoby dzwoniącej do zmiennej %NUMER A3: Variable Section [ Name:%NUMER From:1 Length:2 Adapt To Fit:Off Store Result In:%NUMER ] //Zmienna %NUMER zostaje skrócona do pierwszych cyfr. Po co? Po pierwszych cyfrach wykrywam czy to numer stacjonarny, czy komórkowy :) A4: For [ Variable:%KIERUNKOWY Items:1:12 ] //W pętli FOR sprawdzam czy nasz numer jest numerem kierunkowym A5: Variable Set [ Name:%index To:%index + 1 Do Maths:On Append:Off ] A6: If [ %KIERUNKOWY(%index) = %NUMER ] //Zmienna %KIERUNKOWY jest pseudotablicą, która przechowuje możliwe "prefixy" numerów komórkowych A7: For [ Variable:%TEL Items:%TEL(#) ] //Jeżeli jest to sprawdzam, czy już wysłaliśmy mu SMSa. A8: Variable Set [ Name:%IND To:%IND + 1 Do Maths:Off Append:Off ] A9: If [ %TEL(%IND) = %CNUM ] A10: Variable Set [ Name:%JEST To:1 Do Maths:Off Append:Off ] A11: End If A12: End For A13: If [ %JEST = 0 ] //Jeżeli nie dostał to wysyłam SMSa i dodaję jego numer do pseudotablicy %TEL. A14: Send SMS [ Number:%CNUM Message:Nie moge teraz rozmawiac. Bede osiagalny dopiero po godzinie: [Tutaj mam zamiar wstawić godzinę zakończenia się wydarzenia, ewentualnie dodam sobie przypomnienie do kalendarza, które się wykona 5 minut po zakończeniu spotkania - przypomnienie o oddzwonieniu] Store In Messaging App:On ] A15: Array Push [ Name:%TEL Position:1 Value:%CNUM Fill Spaces:Off ] A16: End If A17: End If A18: End For W momencie zakończenia się wydarzenia Spotkanie zostaje wyczyszczona zmienna %TEL. Skrypt posiada takie zabezpieczenia jak:
Czy ten skrypt jest poprawny? Tak i logika, jak i implementacja?
__________________
XMPP: andrzej(at)czerniak.info.pl Ostatnio zmieniany przez andy : 20.10.2012 o godz. 12:17 |
#ads | |
CDRinfo.pl
Reklamowiec
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
|
|
26.10.2012, 00:27 | #2 |
Թ
Data rejestracji: 13.02.2003
Posty: 3,066
|
andy, no różne są sposoby zapisywania algorytmu, nie każę Ci tu od razu schematu blokowego rysować, ale jakiś normalny pseudokod może? To powyżej jest niezbyt czytelne.
"Wstęp do algorytmiki" D. Knutha, polecam. Dokładnie już nie pamiętam jego wykładu, bo z 10 lat nie widziałem tej pozycji na oczy, no ale z pewnością coś tam ciekawego znajdziesz. A znalazłeś może rozwiązanie na jednoznaczne zidentyfikowanie operatora? Na fb polecałem te tablice, ale co zrobić gdy ktoś przeniósł numer do innego opa? |
Tagi |
android, programowanie, tasker |
Opcje związane z dyskusją | |
Tryby wyświetlania | |
|
|
Podobne dyskusje | ||||
Dyskusja | Autor | Forum | Odpow. | Ostatni Post |
Sprawdzenie znajomości regulaminu podczas rejestracji. | andy | Propozycje, sugestie, błędy forum | 41 | 20.11.2006 22:20 |
Archiwa - sprawdzenie czym zostały stworzone | andy | Off topic | 4 | 03.05.2006 21:37 |
Sprawdzenie zawartości obrazu płyty. | Pete | Napędy optyczne CD | 3 | 07.04.2002 16:47 |