Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Jak to zrobić?

Awatar użytkownika
amok67
-
-
Posty:108
Rejestracja:12 lip 2004, o 09:17
Lokalizacja:Warszawa
Jak to zrobić?

Postautor: amok67 » 3 kwie 2008, o 00:34

Cześć wszystkim.
mam taki problem.proc:m16.
Odczyt znaków ze skanera barkodu za pomocą Input.
Problem w tym że nie zawsze skaner odczyta, i w tym momencie program robi zwis.
Jak to obejść?
Pozdrawiam.

Awatar użytkownika
almatea
-
-
Posty:240
Rejestracja:12 gru 2003, o 17:02
Lokalizacja:Brzeszcze
Kontaktowanie:

Postautor: almatea » 3 kwie 2008, o 06:39

A dlaczego to musi być za pomocą Inputu? Co to za skaner? Pracowałem już z kilkoma typami i większych problemów nie było.

Pzdr

Awatar użytkownika
amok67
-
-
Posty:108
Rejestracja:12 lip 2004, o 09:17
Lokalizacja:Warszawa

Postautor: amok67 » 3 kwie 2008, o 09:45

Zwykły skaner BCR, skanuje kody ITF, 12 cyfr + CR.

Awatar użytkownika
almatea
-
-
Posty:240
Rejestracja:12 gru 2003, o 17:02
Lokalizacja:Brzeszcze
Kontaktowanie:

Postautor: almatea » 3 kwie 2008, o 11:58

Ja najczęściej używam SKK 3800. Link poniżej.
Tyle, że jakie to ma znaczenie? Jest CR na samym końcu. Nie lepiej zrobić Ci to Ischarwaiting()? Bo wg mnie zdecydowanie lepiej. I do tego nie blokuje Ci programu. Zresztą Input też możesz sparametryzować.

Dla 100% pewności, w skanerach SKK ustawiam sobie Preffix i Suffix. Np. Typowe chr(2) i chr(3) Przychodzi skan chr(2) + odczyt + chr(3)
Ale najczęściej wystarczy CR.

http://www.skk.com.pl/kody_kreskowe/pro ... 00_it3800/

Pozdrawiam

Awatar użytkownika
amok67
-
-
Posty:108
Rejestracja:12 lip 2004, o 09:17
Lokalizacja:Warszawa

Postautor: amok67 » 3 kwie 2008, o 16:38

Tak ,masz rację, ischarwaiting jest ok. Jeszcze jedno pytanie: co w momencie jak nie wyczyszczę bufora? Czy to może być przyczyną? I ostatnie pytanie dzisiaj :-], czy ostatni odebrany znak (domyślnie CR w Bascom) jest zaliczany do bufora?Pozdrawiam.

Awatar użytkownika
almatea
-
-
Posty:240
Rejestracja:12 gru 2003, o 17:02
Lokalizacja:Brzeszcze
Kontaktowanie:

Postautor: almatea » 3 kwie 2008, o 18:01

Problem może pojawić się w momencie, gdy na drodze skaner -> Twoja elektronika nastąpi jakieś zakłócenie - zabraknie jakiejś części komunikatu, zwłaszcza końcowej,
W tej sytuacji do tego komunikatu doklei się kolejny, który zostanie potraktowany jako cały na podstawie znaku CR na samym końcu.

Zwróć uwagę, czy jest to samo chr(13) czy poprzedza go wcześnie chr(10), tzw. line feed.
W najprostszej procedurze, z oczekiwaniem chr(13):

Kod: Zaznacz cały

Dim znak As String * 1 Dim skaner As String * 32 Dim a As Byte Config Serialin = Buffered , Size = 32 $baud=9600 Echo Off Enable Interrupts Do If Ischarwaiting() <> 0 Then skaner="" Do A = Inkey() Select Case A Case 32 to 127 'Podstawowe znaki znak=Chr(a) skaner=skaner+znak Case 13 'Koniec komunikatu Exit Do End Select Loop End If Loop
W kodzie mogą być drobne literówki, bo pisałem go on-line.
Warunki możesz stawiać najróżniejsze np. loop until a=13
Jeśli stosujesz Watchdoga, to musisz przemyśleć procedurę. Ta jest najprostsza z możliwych.
W obecnej, jeśli zabraknie chr(13), na pewno zadziała Watchdog, po program na skutek braku końca komunikatu nie będzie w stanie wyjść z pętli

Pzdr

Awatar użytkownika
amok67
-
-
Posty:108
Rejestracja:12 lip 2004, o 09:17
Lokalizacja:Warszawa

Postautor: amok67 » 4 kwie 2008, o 09:19

Dzięki.Sprawdzę i dam znak-sygnał. :607:

Awatar użytkownika
almatea
-
-
Posty:240
Rejestracja:12 gru 2003, o 17:02
Lokalizacja:Brzeszcze
Kontaktowanie:

Postautor: almatea » 4 kwie 2008, o 10:09

Że tak pozwolę sobie zapytać z czystej ciekawości - czyżbyś kontynuował projekt z taśmą transportową na który jakiś czas temu próbowałeś otworzyć zlecenie? :622:

O ile dobrze pamiętam chciałeś wspierać się tam plikami tekstowymi. Rozumiem, że odczytywał je będzie mikrokontroler albo PC komunikujący się z mikrokontrolerem.
Jeśli plik będzie obsługiwany przez dwa programy i będzie puchnął, to nie widzę tego :598:
Są zdecydowanie lepsze i szybsze rozwiązania :619:

Pzdr

Awatar użytkownika
amok67
-
-
Posty:108
Rejestracja:12 lip 2004, o 09:17
Lokalizacja:Warszawa

Postautor: amok67 » 8 kwie 2008, o 22:56

Nie.Tamto to tzw. monitor paczek na wyjściu.Masz bazę do której porównujesz to co wyszło.Różnica z tego to zguby.Pozdrawiam.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 65 gości