![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 25.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
potrzebuje dostać się do mojego urzadzenia przez port COM. Znalazlem DLLke która obsługuje porty COM z poziomu PHP. ( http://www.easyvitools.com/phpserial/php_ser_SMS.html ) Mam manual do urządzenia ale brakuje mi troche doświadczenia z obsługą hardwaru. http://widmo.biz/tmp/rw_protocol_eng.pdf Oto moje wypociny ![]()
Wynikiem jest to:
Czy nie znalazł by się ktoś kto pokazał by mi wzorzec jak powinna wyglądać pełna komenda z komentarzami? Aktualnie w przykładzie wyżej staram się zmusić urzadzenie do wydania dziwięku ( 0x06 ) Wielkie dzięki za wszelką pomoc ![]() Ten post edytował Widmo 21.08.2008, 14:58:50 -------------------- Widmo
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Pomocne mogą być też funkcje: pack" title="Zobacz w manualu PHP" target="_manual, unpack" title="Zobacz w manualu PHP" target="_manual I jeszcze jedno. Bitowy XOR to: ^, a nie: xor Ten post edytował Kicok 21.08.2008, 18:25:50 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 24 Dołączył: 14.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował elemek 22.08.2008, 08:44:51 -------------------- Rzecz trudną rozbijam na kilka łatwiejszych :)
Pomogłem? Kliknij Pomógł. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 25.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
tego mi było trzeba ![]() elemek - jesteś mistrzem - dziękuję bardzo. Jednak są małe problemy:
zwraca:
Poogooglałem więc trochę, zamieniłem to na:
Jest lepiej. bo działa, ale nie do końca, bo wywala TIMEOUTa w linii 46
Zdaje sobie sprawe, ze pisanie na sucho bez urzadzenia jest trudne, ale może coś ktoś poradzi ![]() Widmo -------------------- Widmo
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 24 Dołączył: 14.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hmm faktycznie wcześniej otwierało mi '\\.\com1' ale nie zauważyłem ze tak naprawdę \\ w '' zmieniają się na jeden \ wiec fizycznie powstawał plik w katalogu głównym dysku
![]() Trzeba skorzystać z dllki którą znalazłeś. Zmieniłem kod z wcześniejszego posta, wypróbuj. Ten post edytował elemek 22.08.2008, 08:40:20 -------------------- Rzecz trudną rozbijam na kilka łatwiejszych :)
Pomogłem? Kliknij Pomógł. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 25.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Działa, ale zwraca E2:
Czyli urzadzenie nie odpowiada... Może warto na próbę zrobić polecenie na sztywno, żeby zobaczyć czy ta DLLka dziala? -------------------- Widmo
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 24 Dołączył: 14.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
hmm z tego co teraz czytam w dokumentacji buzzer wymaga 4 bajtow danych, sprobuj tak:
co powinno dac efekt 3 beepow. Ten post edytował elemek 22.08.2008, 12:21:24 -------------------- Rzecz trudną rozbijam na kilka łatwiejszych :)
Pomogłem? Kliknij Pomógł. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 25.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
niestety, komenda sie wysyla ale beepa nie ma.
sprobowalem jeszcze zmienic kolor LEDa:
zero reakcji.
zwraca
zamienilem (zakomentowalem returna) :
oraz:
zwraca:
trzech beepów brak. Ten post edytował Widmo 22.08.2008, 12:26:11 -------------------- Widmo
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 24 Dołączył: 14.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
sztywna komenda beepa ;] EDIT: teraz z odczytem ack, to musi w koncu zaczac dzialac ![]() Ten post edytował elemek 22.08.2008, 12:58:11 -------------------- Rzecz trudną rozbijam na kilka łatwiejszych :)
Pomogłem? Kliknij Pomógł. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 25.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
niestety dalej nic. mi sie wydaje że to ta DLLka nawala. Jak wróce to sprobuje jeszcze na sztywno przez fopen() to wrzucic. ![]() -------------------- Widmo
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 24 Dołączył: 14.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
sproboj przeedytowany kod wyzej, przez fopen nie da sie na pewno. wczesniej umknela mi jedna rzecz i dlatego myslalem ze mozna
![]() -------------------- Rzecz trudną rozbijam na kilka łatwiejszych :)
Pomogłem? Kliknij Pomógł. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 25.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Jak zwykle zmodyfikowałem troche
![]()
zwraca '6' czyli ACK a potem już tylko -1...
To moze jeszcze dodam tyle: http://thebyteworks.com/articles/ws2300/ws2300_php.html Gosciu mowi ze napisal obsluge stacji pogodowej, moze to cos naprowadzi: http://thebyteworks.com/articles/ws2300/ws2300_php.zip Ten post edytował Widmo 22.08.2008, 21:55:53 -------------------- Widmo
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat A to "\x03" na końcu to skąd się wzieło? Seq: 0x00 Cmd: 0x60 Len: 0x04 Data: 0x00202003 BCC: 0x67 EDIT Fakt, nie zauważyłem tego na początku specyfikacji. Ten post edytował Kicok 23.08.2008, 10:08:26 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 24 Dołączył: 14.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
@Kicok: \x03 na koncu to znak konca transmisji (ETX) i jest wymagane.
@Widmo: -1 to 0xff czyli COMM_ERR. To może oznaczać błąd komunikacji. Może to kwestia sprzętowej kontroli przepływu danych heh, kończą mi się pomysły. Pokombinuj jeszcze w ustawieniach portu w menedżerze urządzeń... -------------------- Rzecz trudną rozbijam na kilka łatwiejszych :)
Pomogłem? Kliknij Pomógł. |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 25.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
EXEc ktory byl dolaczony dziala bez prolemu...
to skoro z manualem sie nie da, a mam od producenta DLLkę i API do urzadzenia - naiwne może pytanie: da sie użyć DLLki i zaimplementować w PHP ? ![]() -------------------- Widmo
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 32 Dołączył: 14.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Myślę że powinno się dać - poczytaj o rozszerzeniu W32api. Jeżeli czujesz się na siłach możesz też napisać sobie własne rozszerzenie PHP które będzie wołać funkcje z biblioteki DLL którą posiadasz.
-------------------- |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 25.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Po parunastu godzinach siedzenia - stwierdzam - ze ta DLLka nie dziala jak powinna.
Odpaliłem sniffera portu COM i widze ze wyglada to tak 0x02 ( START ) 0x06 ( ACK ) ------ ( CISZA ) czyli po ack PHP nic nie wysyla do portu :/ zaczynam zabawe z linuxem - moze klasa PHP SERIAL z phpclasses.org bedzie lepsza ![]() -------------------- Widmo
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 16:42 |