|
OK, I misunderstood, I was thinking of more basic electronic stuff.
you did not and still don't tell the make and model, the kind of interface, etc. so how could anyone offer real help?
if the interface is serial (RS232C) you should use the SerialPort class, and transmit/receive byte arrays. if the interface is something else (e.g. USB) you would need the manufacturer's driver.
As far as the commands and encryption go, your first reference should also be the manufacturer's documentation.
If in the end you have a specific question or problem, show some code, and someone will be able to help you.
|
|
|
|
|
If you're right about that, is something more at the programming level. Well if necessary, the manufacturer's documentation does not offer me much, except what I have outlined here. I am communicating by serial interface. Hopefully someone can help me. When communication was achieved by sending a byte array, however, to verify the PIN PAD communication do not operate if you do not send as a command EC is, I sent
02 67 69 48 03 <lrc>
STX C E 0 ETX <lrc>
06 And I get a response (ACK) on the device but not recognized as an instruction, told me I should send a command such as CE, I suppose that as a single byte, but not how to do
|
|
|
|
|
you still are keeping everything a secret except that you now told the world it is using a serial port.
What is the make and model?
what documentation do you have?
do you have their sample code?
do you have examples of messages?
where did you get those STX, ETX, ACK inspiration?
does it say anything about ENQ?
does it say anything about hardware handshake lines?
etc etc.
and why do you send CE and call it an EC command?????
|
|
|
|
|
Sorry luc
The information that I had not previously requested, but this time I can answer your questions.
1- It is a PINpas Secura (http://www.secure-retail.co.uk/products/index.php?sg=&manufacturer=all§ion=Terminals&range=Chip% 20and% 20PIN & pid = 1146)
2- The documentation I have is a small reference manual says that only the commands to be sent to the device but do not specify mas.Solo say "you have to send <stx> <ce0> <ext> <lrc>" They do not provide any other info.
3- The example code is
Public Sub SendData(ByRef strCadena As String, ByVal strType As String, ByVal LRC As String, ByVal strCaracterInicial As String, ByVal strcaracterFinal As String, Optional ByRef strComando As String = "")
Dim strNuevaCadena As String = "", nCount As Integer = 0
Try
If comm.OpenPort = True Then
comm.ClosePort()
comm.OpenPort()
End If
Catch
MsgBox("Error " & Err.Description, MsgBoxStyle.Critical + MsgBoxStyle.Exclamation, "Open Port")
comm.ClosePort()
comm = Nothing
End Try
Try
comm.Message = strCadena
If strType = "HEX" Then
comm.CurrentTransmissionType = clscommanager.TransmissionType.Hex
Else
comm.CurrentTransmissionType = clscommanager.TransmissionType.Text
End If
For nCount = 1 To Len(strCadena)
strNuevaCadena = strNuevaCadena & Asc(Mid(strCadena, nCount, 1))
Next
comm.Type = clscommanager.MessageType.Normal
comm.WriteData(strCaracterInicial, Asc(strComando), strNuevaCadena, strcaracterFinal, LRC)
Catch
MsgBox("Error " & Err.Description , MsgBoxStyle.Critical + MsgBoxStyle.Exclamation, "Open Port")
End Try
End Sub
Where strCadena ="CE1", strType = "HEX", LRC = Result LRC, strCaracterInicial = "STX", strcaracterFinal = "EXT", strComando = ????
4- STX EXT values etc. The got a page with ASCII values (http://i-logic.com/serial/ascii.htm)
5- What you mentioned is the following ENQ:
"The master must send an ENQ character (0x05) to be answered with an ACK character (0x06) with the PIN pad. This procedure indicates whether the PIN pad is ready to accept a request from the master device.
If no ACK is received from the PIN pad within the time-out period (default = 15 seconds), the master must send poll before sending the command.
The master must repeat the process of sending a pennyroyal ENQ command until an ACK is received within the period of time-out"
6- does it say anything about hardware handshake lines. No
7- When I started to program the service provider asaesorando me and I sent copies of the bytes being sent to the port. When you send in the final chain <stx> <ce0> <etx> <lrc> I said, "The calculation of the LRC's fine, "The problem is not sending these as CE0 or CE1 command"
String that I send is : 02 67 69 48 03 45. giH.E
I hope this helps you better ented
|
|
|
|
|
Hi,
this will not go easy; there are many dark points left.
1.
what is your programming language (VB? VB.NET? ...), and your development tool Visual Studio 6? 2003? 2005? 2008? ...)
2.
are you receiving anything at all through the serial port?
e.g. when sending an ENQ do you get an ACK?
when hitting some keys on the pin pad do you get anything?
if not: either you are not connected, connected to the wrong port, have bad port parameters, or some general programming mistake
3.
do you have the "small reference manual" in electronic form? if so, can you provide a URL or mail it to me? or scan it and mail it?
I wouldn't mind if it were in another language (I expect it is in Spanish)
4.
the command character will be crucial (the one in between STX and EC0), and only some manual can tell what it should be.
5.
I have strong doubts about the checksum (LRC). For one, if it could have any value, it could also interfere with the protocol (e.g. it could happen to be equal to an STX). Also your example "02 67 69 48 03 45. giH.E" seems wrong, not only for the giH.E but also 45 would not be the LRC of "67 69 48 03"
6.
If you have some code that already communicates successfully, I would like to see it.
BTW: when publishing code on CodeProject, please use PRE tags or use the "code block" button below the editor window, it preserves formatting.
|
|
|
|
|
Hi Luc648011
1- I am programming in Visual Studio 2008.
2- If you send even if you mention the chain sends me an ACK but I do not do anything
3- I hope you can provide your email account to be able to send you what I have so far.
|
|
|
|
|
Hi,
I did receive your rar file, and had a very quick browse of the Word document
(Especificaciones Dispositivo lector de tarjetas chip v1.107 2.doc) which seems like a rather complete programmer's manual.
On page 15 they explain the CE command, it looks like:
- 1 byte STX
- 3 characters CE0/CE1/.../CE4
- 2 bytes
- a number of data bytes
- 1 byte ETX
- 1 byte LRC
So there is no byte between STX and 'C' but there are date bytes between "CEx" and ETX.
I haven't looked at your code so far.
I suggest you begin with the simplest communication message, I would choose the test command on page 12; it consists of:
- 1 byte <si>
- 2 characters "11"
- 1 byte <so>
- 1 byte LRC
The nice thing is it is a fixed command, there is no variable data; and when successful it will tell you:
- the connection is present;
- your basic serial port settings and code are fine;
- your LRC calculation is correct (which is not the case right now as I recall from an earlier message)
Do this before you try anything more complex!
If you need more help, I might start and look at the code.
I trust you have read most of the manual. It really is much more than "a small reference manual", I expect it holds all information you need.
|
|
|
|
|
Hi,
If in fact the communication simple and I have been able to get me the device sends an ACK to the command 11.
Now when I try sending the command CEX I also returned an ACK, the detail is that I did not read the tapes, speaking with the vendor told me that the mistake was that I am not sending as CE command.
Thanks
|
|
|
|
|
Same SD card when used by USB card reader IOCTL_DISK_GET_LENGTH_INFO reports 979968 sectors, but when used in Texas Instruments PCI Integrated FlashMedia Controller IOCTL_DISK_GET_LENGTH_INFO reports 979776 sectors. Why they are so different?
|
|
|
|
|
yech wrote: Same SD card when used by USB card reader IOCTL_DISK_GET_LENGTH_INFO reports 979968 sectors
IOCTL_DISK_GET_LENGTH_INFO[^] does not return the number of sectors it is returning the length in bytes of the object.
Best Wishes,
-David Delaune
|
|
|
|
|
Sir ,
Here i m introducing u my project based on embedded system ................
This project is basically abt learning RF Communication with the help of " BLUETOOTH USB DONGLE "......
bluetooth has it's own protocol stack and in which i m going to use only rf communication part .........i m interfacing this
Bluetooth Usb Dongle with microcontroller with the
help of usb socket ..................and joining these wires with the microcontroller
Now , I will burn the USB Code and Bluetooth Code in the microcontroller ........so that they will first read out the usb code
and enable it and then read out the bluetooth code
and then start my Bluetooth Usb Dongle and then i will Disable the AUTHENTICATION i.e. passkey funda from it i.e. either
by removing passkey or making it "0"...........so that it can be used by any bluetooth Device
now i m stucked in midst of coding only ..................i need usb code to enable usb and bluetooth code to enable my usb
dongle which is of " ENTER " company ...........with the help of usb socket ..........
So pls have a look for this open source code for both so that i can deal with my devices.................pls sir send me that code as soon as possible as i have no help from anyone because no one knows abt it
pls tell me sir...........pls mail it on my id atbaheti.baheti24@gmail.com
pls solve my problem .............
|
|
|
|
|
Hi All,
i want to develop a application which resides on mobile(mobile application)and runs on PC when connected.
Now to do this my phone memory should be detected as removable disk.
Can i have any mechanism(drivers to be designed) to make my phone memory removable disk when connected to PC
Please post ur help...
ashok
|
|
|
|
|
Your mobile phone USB device should report as mass storage class, which has class 08, and subclass 06. At the same time the class protocol should be also supported.
|
|
|
|
|
I currently have 6 Windows Server 2003 machines and 2 Windows XP PCs running specific tasks.
2 of the 6 Server 2003 machines cannot be virtualised, but I see no reason why the others cannot.
The question is what are advantages and disadvantages of virtualisation and how would I go about specifying hardware?
Steve Jowett
-------------------------
Real programmers don't comment their code. If it was hard to write, it should be hard to read.
|
|
|
|
|
Well, it obviously would prevent you from wasting resources and energy. You might have to invest into higher-end hardware, though, especially if one or more of the servers have maxed their CPU loads. The main disadvantage: If that system fails, all VMs fail as well - you need redundant power supplies, networking, harddisk storage....
If you want to specify the hardware: see above. You need to provide CPU cycles for all VMs, as well as redundant hardware.
Cheers,
Sebastian
--
"If it was two men, the non-driver would have challenged the driver to simply crash through the gates. The macho image thing, you know." - Marc Clifton
|
|
|
|
|
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 50, {ff974cb0, 0, 80461e23, 0}
*** ERROR: Module load completed but symbols could not be loaded for Dbgv.sys
*** ERROR: Module load completed but symbols could not be loaded for klif.sys
*** WARNING: Unable to verify checksum for irp4exe.exe
*** ERROR: Module load completed but symbols could not be loaded for irp4exe.exe
*************************************************************************
*** ***
*** ***
*** Your debugger is not using the correct symbols ***
*** ***
*** In order for this command to work properly, your symbol path ***
*** must point to .pdb files that have full type information. ***
*** ***
*** Certain .pdb files (such as the public OS symbols) do not ***
*** contain the required information. Contact the group that ***
*** provided you with these symbols if you need this command to ***
*** work. ***
*** ***
*** Type referenced: kernel32!pNlsUserInfo ***
*** ***
*************************************************************************
Probably caused by : Dbgv.sys ( Dbgv+992 )
Followup: MachineOwner
---------
nt!RtlpBreakWithStatusInstruction:
80455558 cc int 3
kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced. This cannot be protected by try-except,
it must be protected by a Probe. Typically the address is just plain bad or it
is pointing at freed memory.
Arguments:
Arg1: ff974cb0, memory referenced.
Arg2: 00000000, value 0 = read operation, 1 = write operation.
Arg3: 80461e23, If non-zero, the instruction address which referenced the bad memory
address.
Arg4: 00000000, (reserved)
Debugging Details:
------------------
READ_ADDRESS: ff974cb0 Nonpaged pool
FAULTING_IP:
nt!_output+434
80461e23 66833800 cmp word ptr [eax],0
MM_INTERNAL_CODE: 0
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0x50
PROCESS_NAME: irp4exe.exe
TRAP_FRAME: be1204d4 -- (.trap 0xffffffffbe1204d4)
ErrCode = 00000000
eax=ff974cb0 ebx=80064b53 ecx=ff974cb0 edx=7fffffff esi=7ffffffe edi=00000001
eip=80461e23 esp=be120548 ebp=be12079c iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010206
nt!_output+0x434:
80461e23 66833800 cmp word ptr [eax],0 ds:0023:ff974cb0=????
Resetting default scope
LAST_CONTROL_TRANSFER: from 8042a9eb to 80455558
STACK_TEXT:
be1200b8 8042a9eb 00000003 be120100 ff974cb0 nt!RtlpBreakWithStatusInstruction
be1200e8 8042afde 00000003 c03fe5d0 80064b7c nt!KiBugCheckDebugBreak+0x31
be120474 80449d19 00000001 ff974cb0 00000000 nt!KeBugCheckEx+0x390
be1204bc 80467cbf 00000000 ff974cb0 00000000 nt!MmAccessFault+0x757
be1204bc 80461e23 00000000 ff974cb0 00000000 nt!KiTrap0E+0xc3
be12079c 80461626 be1207b4 f41a69de be120b00 nt!_output+0x434
be1207d4 be0e9992 be1207ec f41a69d0 be120afc nt!vsprintf+0x2d
WARNING: Stack unwind information not available. Following frames may be wrong.
be120af0 f41a6acd f41a69d0 ff974cb0 ff974cb0 Dbgv+0x992
be120bb8 8041ddf1 814ef030 815bef68 815bef68 irp4!MyDeviceIoControl+0xdd [e:\mydriver\irp\4\sys\irp4.c @ 172]
be120bcc 804ae9bc 815befd8 00000000 815bef68 nt!IopfCallDriver+0x35
be120be0 804af826 814ef030 815bef68 812e76e8 nt!IopSynchronousServiceTail+0x60
be120cb8 804a73ae 000003d4 00000000 00000000 nt!IopXxxControlFile+0x5e4
be120cec be6580ce 000003d4 00000000 00000000 nt!NtDeviceIoControlFile+0x28
be120d34 80465024 000003d4 00000000 00000000 klif+0x100ce
be120d34 77f88403 000003d4 00000000 00000000 nt!KiSystemService+0xc4
0012feb8 77e6951b 000003d4 00000000 00000000 ntdll!ZwDeviceIoControlFile+0xb
0012ff1c 00401072 000003d4 00222400 00000000 KERNEL32!DeviceIoControl+0xf8
0012ffc0 77e889d5 00000006 00000008 7ffdf000 irp4exe+0x1072
0012fff0 00000000 00401181 00000000 000000c8 KERNEL32!BaseProcessStart+0x3d
STACK_COMMAND: kb
FOLLOWUP_IP:
Dbgv+992
be0e9992 83c40c add esp,0Ch
SYMBOL_STACK_INDEX: 7
SYMBOL_NAME: Dbgv+992
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: Dbgv
IMAGE_NAME: Dbgv.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4436c4b6
FAILURE_BUCKET_ID: 0x50_Dbgv+992
BUCKET_ID: 0x50_Dbgv+992
Followup: MachineOwner
---------
|
|
|
|
|
Hi,
Have you eventually figured it out? I'm fighting a very similar problem and got stuck.
TIA,
-Mihai
|
|
|
|
|
i am running in my project and i need special person who can help me ..
i am planning to run my project with oracle10g and oracle tools.
now i need to know some people who are realy want to help me.
i know my project is not clear right now but i will explin it later.
.
.
.
.
but now i want to get code that let me stor data from passport reader to the database.....
this is my email to contact with me
ma_3001_ma@hotmail.com
thank you
|
|
|
|
|
And people wonder why I don't work for Customs anymore...
|
|
|
|
|
mansoor hajer wrote: i know my project is not clear right now but i will explin it later
I doubt that you will get an answer. You might, but I doubt it.
For me at least to make a response other than this one, you gonna have to explin it now, in full, in detail.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
I'm sorry ...
now i will explain my problem and i hope you help me...
i made my graduate project which is control the ports of country,
so it's apply on airports...
and i need the passport reader to input the details of the passengers
of their passport....
but i don't know how can i connect the passport reader device with
a PC and then with my project form.
i need at least to read the data from the traveler's passport by
the passport reader device to hyper terminal program which come with any
win-XP or to any text file....
i use (CM20xx) passport reader.
|
|
|
|
|
Your best bet for this is to contact the manufacturer of the CM20xx, via their website if they have one. Get the technical specs to discover what interfaces they have, together with details of any encryption / data encoding and schema they use.
It may turn out to be as simple as the data is read into a database, which you might be able to access.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Thank you mr- Henry Minute for your answer ..
but i searched about the web site but i failed..
if you have any information about any thing that help me to
connect the passports reader to the Hyper Terminal Or to any program
in windows i will be glad and i give you a small Kiss.
|
|
|
|
|
mansoor hajer wrote: windows i will be glad and i give you a small Kiss
Well, gee, thanks! But I think I'll pass on that.
Before I gave my last reply I Googled for 'CM20xx' and got several hits, none of which could be specifically attributed to a Passport Reading device. One of them, which did mention 'reader' had both a USB and a serial interface. There are lots of articles on interfacing to both of these using C#, however, that's not a lot of use unless you can somehow confirm that your choice has either/both of these.
Two things occur to me.
1) Find the postal address of the manufacturer and write to them, explain your situation and ask what help, if any, they can give you.
2) And you may have to do this if 1) doesn't work. Select a different reader, that you can get some information on.
That's all I got, sorry.
Good luck with whatever you do.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
thank you very much mr henry minute.
i wil follow your advice..
|
|
|
|
|