[python] UHF RFID čtečka

"Ing. Vladislav Ludík" vlada na ludik.cz
Neděle Květen 17 14:21:29 CEST 2015


Dobrý den,

víte co je zajímavé ?
Přes stejný program serial v Pythonu, kterým čtu z Alienu se tato čtečka 
normálně připojí.
Viz odpověď po inicializaci spojení:
Serial<id=0x2aeedd0, open=True>(port='COM7', baudrate=115200, 
bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=0L, rtscts=0L, 
dsrdtr=False)

Přdtím jsem ji v demo progamu správně nastavil.
Přiložením tagu nepískne, čtení skončí TimeOut. Data žádná nepošle.

Pokud dám zápis nějakého textu, vrátí počet bytů textu.

Pokud byste mi poradil jak z čtečky dostat ID tagu, tak mám hotovo. Dál 
už to umím.

Děkuji a hezký den
Vláďa

Dne 17.5.2015 v 10:32 Dex napsal(a):
> Rychle jsem to prošel (nemám čas to pitvat detailně). Čtečka 
> komunikuje přes COM, takže pyserial bude správná cesta.
>
> Dokumentace není nic moc, ale jsou tam příklady v C++, tak je můžete 
> zkusit "překlopit" do Pythona. Nenašel jsem tam popsané jak 
> komunikovat na "binární" úrovni bez ohledu na jazyk. To mne u zařízení 
> tohoto druhu překvapuje a prostě bych napsal výrobci.
>
> Btw u takto drahé čtečky nepoužít FTDI je minimálně zvláštní...
>
> Dex
>
>
> On 17.5.2015 10:19, "Ing. Vladislav Ludík" wrote:
>> Celá dokumentace je na adrese:
>> http://www.security-warehouse.com/index.php/rfid-860-925-mhz-equipment/rfid-uhf-860-960-mhz-iso-18000-6b-6c-desktop-reader-writrer-ultra-thin-usb-with-sdk.html 
>>
>>
>> unzip heslo je securitywarehouse
>>
>> Mám ještě jednu čtečku Alien ALR-8800 a ta po zapnutí opravdu po 
>> přiložení čipu odešle ID tagu přes COM port
>>
>> Tato malá ruční čtečka ne.
>> Potřebuje inicializaci a v demo od výrobce funguje.
>> Já programuju web aplikace v Cherrypy a potřebuju ji nějak připojit.
>> Nevím zazím jak.
>>
>> Dne 17.5.2015 v 9:50 Dex napsal(a):
>>> Je k té čtečce nějaký bližší popis?
>>>
>>> Obvod CP2102 je převodník USB <-> COM (podobně jako PL2303 nebo 
>>> FTDI). Nejsem expert na RFID čtečky, ale ty dvě co jsem viděl po 
>>> přiložení karty odeslaly sadu bajtů odpovídající ID karty. Stačilo 
>>> je mít správně nainstalované a používat vhodnou rychlost.
>>>
>>> Dex
>>>
>>>
>>> On 17.5.2015 9:28, "Ing. Vladislav Ludík" wrote:
>>>> Původně tam byl COM4, ale serial, nebo i hyperterminal se tvářili 
>>>> jako otevřené, ale čtečka nereagovala.
>>>> Po přeinstalaci ovladačů COM port zmizel.
>>>> Tak nevím jak to má být, protože v dokumentaci je nějaké:
>>>> Dynamic library file name*: RfidApiLib.dll*
>>>> a v příkazech například v popisu**aplikace:*
>>>>
>>>> *
>>>>
>>>> If(OpenCommPort(“COM1”,9600) == 0)
>>>>
>>>> MessageBox("success");
>>>>
>>>> Else
>>>>
>>>> MessageBox("failed");
>>>>
>>>> Ale nyní port nemám !
>>>> Přiznám se, že zatím nevím co dál.
>>>>
>>>> Dne 17.5.2015 v 9:11 Dex napsal(a):
>>>>> Zdravím,
>>>>>
>>>>> nechci Vás svést na špatnou cestu, ale netváří se ta čtečka jako 
>>>>> COM port? Poznámka o CP2102 by o tom svědčila. Pak bych ovšem 
>>>>> doporučil pyserial místo pyusb ;-)
>>>>>
>>>>> Jen nápad...
>>>>>
>>>>> Dex
>>>>>
>>>>>
>>>>>
>>>>> On 17.5.2015 8:30, "Ing. Vladislav Ludík" wrote:
>>>>>> libusb0 jsem jsem měl nahrané, ale asi špatné verze.
>>>>>> Teď jsem našel správnou verzi, libusb0 se nahrálo korektně.
>>>>>>
>>>>>> Čtečka pak zmizela ve správci zařízení z Portů (byl tam nějaký COM)
>>>>>> a objevil se samostatný symbol pro usb jako libusb-32 devices s 
>>>>>> podsložkou
>>>>>> CP2102 USB to UART Bridge Controller
>>>>>>
>>>>>> Když nyní dám usb.core.show_devices()
>>>>>> vrátí mi:
>>>>>> DEVICE ID 10c4:ea60 on Bus 000 Address 001, Specified at interface
>>>>>>
>>>>>> Takže idVendor=0x10C48 měl být 0x10C4
>>>>>> Po opravě se vše rozjelo. Zdá se, že jsem na dobré cestě.
>>>>>>
>>>>>> Děkuji za pomoc.
>>>>>>
>>>>>> Vláďa
>>>>>>
>>>>>> Dne 17.5.2015 v 2:43 Petr Messner napsal(a):
>>>>>>> Njn, když chceš hackovat, tak na to musíš mít křídla :)
>>>>>>>
>>>>>>> Z chyby 'generator' object has no attribute 'set_configuration' 
>>>>>>> je zřejmé, že to usb.core.find vrací iterátor. No a proč to 
>>>>>>> vrací iterátor? Protože deklarace té funkce 
>>>>>>> <https://github.com/walac/pyusb/blob/a83f17e568bf893bed53fa984f00c1e168348cb9/usb/core.py#L1127> 
>>>>>>> je
>>>>>>>
>>>>>>> deffind(find_all=False, backend=None, custom_match=None, **args):
>>>>>>>
>>>>>>> a když to voláš bez keyword argumentů, tak se jako find_all 
>>>>>>> nastaví to 0x10C48, což se interpretuje podobně jako find_all=True.
>>>>>>>
>>>>>>> Takže o krok zpět k ValueError: No backend available. Podívej se 
>>>>>>> do zdrojáku, co to dělá. Prochází to moduly usb.backend.libusb1, 
>>>>>>> usb.backend.libusb0 a usb.backend.openusb a volá to jejich 
>>>>>>> funkci get_backend(), která se snaží danou DLL (nebo .so) 
>>>>>>> knihovnu načíst (protože usb.backend.* jsou jen ctypes wrappery 
>>>>>>> "céčkových" knihoven). Takže problém je v tom, že žádnou z těch 
>>>>>>> knihoven buď nemáš k dispozici, nebo ji pyusb nemůže najít.
>>>>>>>
>>>>>>> PM
>>>>>>>
>>>>>>> Dne 16. května 2015 16:28 "Ing. Vladislav Ludík" <vlada na ludik.cz 
>>>>>>> <mailto:vlada na ludik.cz>> napsal(a):
>>>>>>>
>>>>>>>     Ještě chyby:
>>>>>>>
>>>>>>>     dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60)
>>>>>>>
>>>>>>>     hlásí chybu:
>>>>>>>
>>>>>>>     dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60)
>>>>>>>       File "build\bdist.win32\egg\usb\core.py", line 1199, in find
>>>>>>>         raise ValueError('No backend available')
>>>>>>>     ValueError: No backend available
>>>>>>>
>>>>>>>     Když jsem změnil řádek na:
>>>>>>>
>>>>>>>     dev = usb.core.find(0x10C48, 0xEA60)
>>>>>>>
>>>>>>>     program projde dále, ale hlásí chybu:
>>>>>>>
>>>>>>>     dev.set_configuration()
>>>>>>>     AttributeError: 'generator' object has no attribute
>>>>>>>     'set_configuration'
>>>>>>>
>>>>>>>     Co s tím dále, nevím.
>>>>>>>
>>>>>>>
>>>>>>>     Díky Vláďa
>>>>>>>     _______________________________________________
>>>>>>>     Python mailing list
>>>>>>>     python na py.cz <mailto:python na py.cz>
>>>>>>>     http://www.py.cz/mailman/listinfo/python
>>>>>>>
>>>>>>>     Visit: http://www.py.cz
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Python mailing list
>>>>>>> python na py.cz
>>>>>>> http://www.py.cz/mailman/listinfo/python
>>>>>>>
>>>>>>> Visit:http://www.py.cz
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Python mailing list
>>>>>> python na py.cz
>>>>>> http://www.py.cz/mailman/listinfo/python
>>>>>>
>>>>>> Visit:http://www.py.cz
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Python mailing list
>>>>> python na py.cz
>>>>> http://www.py.cz/mailman/listinfo/python
>>>>>
>>>>> Visit:http://www.py.cz
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Python mailing list
>>>> python na py.cz
>>>> http://www.py.cz/mailman/listinfo/python
>>>>
>>>> Visit:http://www.py.cz
>>>
>>>
>>>
>>> _______________________________________________
>>> Python mailing list
>>> python na py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit:http://www.py.cz
>>
>>
>>
>> _______________________________________________
>> Python mailing list
>> python na py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>
>
>
>
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20150517/d7e67604/attachment.html>


Další informace o konferenci Python