Komunikacja z telefonem poprzez bluetooth
Komunikacja z telefonem poprzez bluetooth
Witam Mam taki problem. Chcę nawiązać komunikację poprzez bluetooth z telefonem wykorzystując do tego celu labview 7.1 i komputer PC. Udało mi się sparować oba urządzenia, ale teraz pytanie jak wysłać plik z jednego urządzenia do drugiego? Bloczki bluetooth read/write wymagają danych w postaci stringa, a ja chcę wysłać plik w całości. Może ktoś na forum walczył już z tym kiedyś??
Komunikacja z telefonem poprzez bluetooth
Jako, że wykonałem podobny projekt, podzielę się informacjami.
Komunikacja LV z telefonem ogranicza się tylko do komend AT. I tyle. Jeśli nie posiadamy normalnego systemu operacyjnego na telefonie, na którym pójdzie LV dla urządzeń mobilnych, to niewiele więcej będzie można zrobić. Ale nawet proste komendy AT pozwalają na całkiem sprawną komunikację z telefonem.
W Windowsie parujemy urządzenia i tworzymy port szeregowy dla danego telefonu. W LV natomiast nie wykorzystujemy bloczków BT, bo nie ma takie potrzeby.
Otwieramy port szeregowy i wysyłamy odpowiednie komendy. Np. zapisanie wiadomości to:
- AT
- AT+CMGF=1 (kodowanie wiadomości, 1-tekst, 0-MTU)
- AT+CMGW="+48506666666", 147, "REC UNREAD" (najpierw numer telefonu, potem nie pamiętam co
i na koniec miejsce zapisania wiadomość REC (recent), STO (stored), UNREAD, READ.
- podajemy tekst do zapisania, zatwierdzamy CTRL+Z (kod HEX - 26, żeby wysłać taki cudo w LV trzeba skorzystać z konwersji tablicy HEX do stringa)
- w odpowiedni otrzymujemy numer wiadomości w pamięci telefonu
Niestety taka operacja nie powoduje wyświetlenia notyfikacji o odebraniu wiadomości, ani nawet o posiadaniu nieodczytanych wiadomości. Dopiero odświeżenie (np. przeczytanie jakiejś starej wiadomości) folderu wiadomości powoduje jego aktualizację i pojawia się ikonka nieodebranych wiadomości. Z tego co wiem, znajomemu udało się usunąć w jakiś sposób informację o odczytanych wiadomość i wtedy następuje aktualizacja folderu - nie wiem jednak jak to zrobił
Jakby były jakieś pytania to mogę wyjaśnić, na tyle na ile mi moja wiedza pozwoli. Program przeze mnie stworzony jest wolny jak żółw, wadliwy, ale działa
A działa tak:
- w telefonie zapisujemy wiadomość o określonej strukturze (KOMENDA urządzenie funkcja, np. KOMENDA SILNIK1 START)
- program pierwsze w LV odczytuje tą wiadomość i jeśli miała odpowiednią strukturę, to potwierdza odczytanie wiadomości
- program drugi wysyła do pamięci telefonu określoną wiadomość i nadaje komendę, która ją wysyła... wysyła na ten sam telefon
w ten sposób ominąłem problem braku notyfikacji o odebraniu wiadomości. Na koniec usuwa zapisaną wiadomość
W przyszłości, z ciekawości w sumie, bo nie widzę konkretnego zastosowania programu w takiej wersji (za wolna, zbyt wadliwa), zrobię kilka możliwych opcji komend, aby LV je wykrywał i reagował w odpowiedni sposób. Może w jakiś sposób uda mi się poprawić niezawodność i szybkość działania... Ale to w wakacje, teraz mam za dużo na głowie
Komunikacja LV z telefonem ogranicza się tylko do komend AT. I tyle. Jeśli nie posiadamy normalnego systemu operacyjnego na telefonie, na którym pójdzie LV dla urządzeń mobilnych, to niewiele więcej będzie można zrobić. Ale nawet proste komendy AT pozwalają na całkiem sprawną komunikację z telefonem.
W Windowsie parujemy urządzenia i tworzymy port szeregowy dla danego telefonu. W LV natomiast nie wykorzystujemy bloczków BT, bo nie ma takie potrzeby.
Otwieramy port szeregowy i wysyłamy odpowiednie komendy. Np. zapisanie wiadomości to:
- AT
- AT+CMGF=1 (kodowanie wiadomości, 1-tekst, 0-MTU)
- AT+CMGW="+48506666666", 147, "REC UNREAD" (najpierw numer telefonu, potem nie pamiętam co
- podajemy tekst do zapisania, zatwierdzamy CTRL+Z (kod HEX - 26, żeby wysłać taki cudo w LV trzeba skorzystać z konwersji tablicy HEX do stringa)
- w odpowiedni otrzymujemy numer wiadomości w pamięci telefonu
Niestety taka operacja nie powoduje wyświetlenia notyfikacji o odebraniu wiadomości, ani nawet o posiadaniu nieodczytanych wiadomości. Dopiero odświeżenie (np. przeczytanie jakiejś starej wiadomości) folderu wiadomości powoduje jego aktualizację i pojawia się ikonka nieodebranych wiadomości. Z tego co wiem, znajomemu udało się usunąć w jakiś sposób informację o odczytanych wiadomość i wtedy następuje aktualizacja folderu - nie wiem jednak jak to zrobił
Jakby były jakieś pytania to mogę wyjaśnić, na tyle na ile mi moja wiedza pozwoli. Program przeze mnie stworzony jest wolny jak żółw, wadliwy, ale działa
- w telefonie zapisujemy wiadomość o określonej strukturze (KOMENDA urządzenie funkcja, np. KOMENDA SILNIK1 START)
- program pierwsze w LV odczytuje tą wiadomość i jeśli miała odpowiednią strukturę, to potwierdza odczytanie wiadomości
- program drugi wysyła do pamięci telefonu określoną wiadomość i nadaje komendę, która ją wysyła... wysyła na ten sam telefon
W przyszłości, z ciekawości w sumie, bo nie widzę konkretnego zastosowania programu w takiej wersji (za wolna, zbyt wadliwa), zrobię kilka możliwych opcji komend, aby LV je wykrywał i reagował w odpowiedni sposób. Może w jakiś sposób uda mi się poprawić niezawodność i szybkość działania... Ale to w wakacje, teraz mam za dużo na głowie
Re: Komunikacja z telefonem poprzez bluetooth
Może Active X z Nokia PC Suite będzie rozwiązaniem.
Rumcajs.
Rumcajs.
Komunikacja z telefonem poprzez bluetooth
Ale wtedy ograniczasz się tylko do telefonów Nokii, czyż nie?