card reader or bar code reader in rails ? URGENT HELP

23 views
Skip to first unread message

Pokkai Dokkai

unread,
Mar 24, 2008, 1:10:04 AM3/24/08
to rubyonra...@googlegroups.com

hai all
how to manipulate (read/write) card readers (or bar code reader ) in
rails project ?
give me any sample code ,tutorials ,tools, etc .

i am new to this card reader category
its very urgent

thank you .
--
Posted via http://www.ruby-forum.com/.

AndyV

unread,
Mar 24, 2008, 3:52:07 PM3/24/08
to Ruby on Rails: Talk
Is there a card reader or bar code reader attached to your webserver?

On Mar 24, 1:10 am, Pokkai Dokkai <rails-mailing-l...@andreas-s.net>
wrote:

Kyle

unread,
Mar 24, 2008, 4:21:13 PM3/24/08
to Ruby on Rails: Talk
Most card readers that I've seen (for barcodes, at least) simply scan
an object and return a number. You could do whatever you want with
the number.

-Kyle

Michael Graff

unread,
Mar 24, 2008, 4:35:34 PM3/24/08
to rubyonra...@googlegroups.com
Most readers I've played with come in two varieties: Keyboard Wedge
or RS-232 Serial.

Keyboard Wedge -- these are probably the most common type in use today
since PC hardware is so damned cheap. They look like a keyboard, and
actually type out the numbers. You can usually program what they send
before and after a bar code or credit card is read, so you could (for
instance) send some codes to focus on the right input field, where the
number will just be typed as any other keyboard input would go. I
also suspect some clever Javascript might help here.

Serial types are usually driven by a central server or some other
special driver on a local machine. For example, I've had up to 32
serial barcode scanners tied into one machine before, each doing
inventory processing. The user would scan in the box, then scan in a
quantity from a card they had. This is probably not what you mean
though when you want to use it with Rails.

This is where a real application (written in Java, C++, or whatever)
would work better than a Web application. If you really want to limit
people to using IE (like so many do...) then you can write an ActiveX
based application, but that's not really Rails anymore. You can also
just require the user to focus on the right field when scanning /
swiping, but that is going to cause errors.

--Michael

Ruby Freak

unread,
Mar 24, 2008, 5:49:28 PM3/24/08
to Ruby on Rails: Talk
I just evaluated and purchased bar code readers and after buy and
returning 3 different models, I highly recommend the Intermec SR30 (P/
N 225-728-001)

They are windows Plug and Play, USB and your software will not know
that the user did not type in the info.

Suggested retail price of about 299.00

I hate to sound like a salesman, but I am a very happy customer


On Mar 24, 1:35 pm, "Michael Graff" <skan.gryp...@gmail.com> wrote:
> Most readers I've played with come in two varieties: Keyboard Wedge
> or RS-232 Serial.
>
> Keyboard Wedge -- these are probably the most common type in use today
> since PC hardware is so damned cheap. They look like a keyboard, and
> actually type out the numbers. You can usually program what they send
> before and after a bar code or credit card is read, so you could (for
> instance) send some codes to focus on the right input field, where the
> number will just be typed as any other keyboard input would go. I
> also suspect some clever Javascript might help here.
>
> Serial types are usually driven by a central server or some other
> special driver on a local machine. For example, I've had up to 32
> serial barcode scanners tied into one machine before, each doing
> inventory processing. The user would scan in the box, then scan in a
> quantity from a card they had. This is probably not what you mean
> though when you want to use it with Rails.
>
> This is where a real application (written in Java, C++, or whatever)
> would work better than a Web application. If you really want to limit
> people to using IE (like so many do...) then you can write an ActiveX
> based application, but that's not really Rails anymore. You can also
> just require the user to focus on the right field when scanning /
> swiping, but that is going to cause errors.
>
> --Michael
>

Michael Graff

unread,
Mar 24, 2008, 5:56:08 PM3/24/08
to rubyonra...@googlegroups.com
That means these are "keyboard wedge" types.

They are probably by far the easiest to handle when a web browser is
the application in use. However, it is still necessary to either have
the user focus on the right field, have a screen used just for
scanning (a pop-up Javascript window, etc) or have some way to make
the keyboard wedge scanner focus the display.

Most sites I've seen recently will use the Javascript pop-up modal
window method, which will ask the user to scan / swipe, and the
"submit" button will automatically be pressed. This also allows
manual entry of some data.

Just remember, most credit card swipes won't really be human readable,
and you have to be prepared for this. The readers I use (Scanteam
models of various types) are all keyboard wedge or serial, and they
frame the credit card, check MICR, or barcodes well, and are easily to
process.

I also have several serial-only 2c barcode scanners made by Symbol,
which will read 1D and 2D barcodes in common use, as well as take
(rather crappy) photos. :)

Pokkai Dokkai

unread,
Mar 25, 2008, 1:32:50 AM3/25/08
to rubyonra...@googlegroups.com
AndyV wrote:
> Is there a card reader or bar code reader attached to your webserver?
>
> On Mar 24, 1:10 am, Pokkai Dokkai <rails-mailing-l...@andreas-s.net>

yes

Michael Graff

unread,
Mar 25, 2008, 3:19:11 AM3/25/08
to rubyonra...@googlegroups.com
How is it attached to your web server machine, via serial or USB?

Pokkai Dokkai

unread,
Mar 25, 2008, 5:49:59 AM3/25/08
to rubyonra...@googlegroups.com
Michael Graff wrote:
> How is it attached to your web server machine, via serial or USB?
>
> On Tue, Mar 25, 2008 at 12:32 AM, Pokkai Dokkai

through USB Port

feli...@gmail.com

unread,
Mar 25, 2008, 12:47:22 PM3/25/08
to Ruby on Rails: Talk
Gan you give us more specifics on the scenario and what you are trying
to accomplish here?

This is kinda unusual.

On Mar 25, 2:49 am, Pokkai Dokkai <rails-mailing-l...@andreas-s.net>
wrote:

Michael Graff

unread,
Mar 25, 2008, 4:16:59 PM3/25/08
to rubyonra...@googlegroups.com
OK, so from what I understand, you have:

A web server running RoR, with a USB-connected bar code or other scanner.

A client which may or may not be running on the same machine.

You want the client to see data coming in from the bar code scanner.

This is a rather unusual situation, as most bar code scanners will
typically connect to the client machine. If they are the same
machine, I could see what you're wanting to do, but really the server
part doesn't come into play at all -- the USB scanner will look like
someone is typing into the browser.

If you really want to read a "remote" scanner from the client somehow,
then you need to have some way (in Ruby or callable from Ruby) to read
server keyboard input or to talk to the USB scanner in some other
manner.

If the device looks like a serial port this is fairly easy to do, but
if it looks like a keyboard, this is going to be hard.

saljamil

unread,
Mar 25, 2008, 5:15:32 PM3/25/08
to Ruby on Rails: Talk
I have used a barcode reader attached to a usb port to read label to a
text file. Once I am done the barcoding. I save the file and then
upload that to the application. I then read the file, parse and
process the information. Let me know if you are interested in any
piece of that code and I will send it to you.

AndyV

unread,
Mar 25, 2008, 10:37:28 PM3/25/08
to Ruby on Rails: Talk


> Gan you give us more specifics on the scenario and what you are trying
> to accomplish here?
>
> This is kinda unusual.
>
This was basically my point. If the barcode reader were on the client
(browser) end then you 'd never know. The USB/wedge/RS-232 would pass
straight through STDIN and the webserver would have no clue that it
wasn't keyed from a keyboard.

The same is essentially true on the webserver... but I'm not sure why
you'd be doing it.

Pokkai Dokkai

unread,
Mar 26, 2008, 12:29:03 AM3/26/08
to rubyonra...@googlegroups.com
saljamil wrote:
> I have used a barcode reader attached to a usb port to read label to a
> text file. Once I am done the barcoding. I save the file and then
> upload that to the application. I then read the file, parse and
> process the information. Let me know if you are interested in any
> piece of that code and I will send it to you.

thank you for the help ...

this is exactly what i want.
my client machine have one bar code reader which is connected through
USB Port.
In client browser html form has lots of text_fields one of that is
register_no.
When the cursor point that register_no text_field, that time the barcode
reader should read a ID card (which have registration_no,etc,..those are
encrypted in barcode styles). And the corresponding registration_no
text_filed should be filled automatically .that is my requirement.

thank you for your help

Pokkai Dokkai

unread,
Mar 26, 2008, 12:31:28 AM3/26/08
to rubyonra...@googlegroups.com

how to get the barcode input into browser javascripts code ?
how to parse it to corresponding values ?

Pokkai Dokkai

unread,
Mar 26, 2008, 12:39:48 AM3/26/08
to rubyonra...@googlegroups.com
saljamil wrote:
> I have used a barcode reader attached to a usb port to read label to a
> text file. Once I am done the barcoding. I save the file and then
> upload that to the application. I then read the file, parse and
> process the information. Let me know if you are interested in any
> piece of that code and I will send it to you.

thank you
can you send me the source code what you have ?

saljamil

unread,
Mar 26, 2008, 7:29:10 AM3/26/08
to Ruby on Rails: Talk
Here is the controller methods:

def load_file
@data_loads=DataLoad.find(:all,:conditions => ["organization_id in
(?)",session[:org_ids]])
end
def load_data
if params[:csv_file].class==StringIO
@file=File.new("temp1","w")
params[:csv_file].each_line do |line|
@file.puts line
end
@file.close
else
@file=params[:csv_file]
end
i=0
@data_load=DataLoad.find(params[:load_header])

#load physical records here
arr=Array.new
cable_link=Hash.new
File.open("temp1","r") do |f|
arr=IO.readlines("temp1")
end
j=0
for i in 0...arr.length
b_data=arr[i].split("-")
case b_data[0]
when "RP"

dc=Datacenter.find(:first, :conditions=>["short_name=?",b_data[1]])
dcroom=Dcroom.find(:first, :conditions=>["name=? and
datacenter_id=?",b_data[2],dc.id])
dcrack=Dcrack.find(:first, :conditions=>["name=? and
dcroom_id=?",b_data[3],dcroom.id])
rp=b_data[4].delete("*").to_i #rack position (integer)
when "AS"
asset=Server.find(:first, :conditions=>["name=? and
organization_id in (?)",b_data[1].delete("*\n"),session[:org_ids]])
@pi=PhysicalItem.new
@pi.data_load_id=@data_load.id
@pi.created_by=session[:user_id]
@pi.asset_type="Server"
@pi.dcrack_id=dcrack.id
@pi.rack_position=rp
@pi.asset_id=asset.id
if @pi.save
j+=1
end
last_asset="server"
rp=rp+asset.server_type.height
when "AC" # Console
cnsole=Console.find(:first, :conditions=>["name=? and
organization_id in (?)",b_data[1].delete("*\n"),session[:org_ids]])
@pi=PhysicalItem.new
@pi.data_load_id=@data_load.id
@pi.created_by=session[:user_id]
@pi.asset_type="Console"
@pi.dcrack_id=dcrack.id
@pi.rack_position=rp
@pi.asset_id=cnsole.id
if @pi.save
j+=1
end
last_asset="console"
rp=rp+cnsole.rus
when "C" #Cable
c_num=b_data[1].delete("*\n")
if cable_link[c_num].nil?
cable_link[c_num]=Array.new
end
case last_asset # we need to expand this to all asset classes
when "console"
cable_link[c_num][1]=cnsole.id
else
cable_link[c_num][0]=asset.id
end
end
cable_link.each_key {|k|
pi=PhysicalItem.find(:first, :conditions=>["asset_id=? and
data_load_id=?",cable_link[k][0],@data_load.id])
pi.console_id=cable_link[k][1]
pi.save
}
flash[:notice] = j.to_s+' Physical records were loaded
successfully.'
redirect_to :controller=> 'inventory', :action =>
'list_physical_items', :id=>@data_load
end
end

and here is the view:

<fieldset class='w450'>
<legend>Please select file to upload</legend>
<%= form_tag({:action=>:load_data}, :multipart => true)%>
<p><label for="csv_file"> File to Upload:</label>
<%=file_field_tag 'csv_file', :size=>30 %></p>
<p><label for="load_header">Select Data Load:</label>
<select id="load_header" name="load_header">
<%=options_for_select(@data_loads.collect{|p|[p.name, p.id]})%>
</select></p>
<%= submit_tag 'upload it' %>
<%=end_form_tag%>
</fieldset>

On Mar 25, 11:39 pm, Pokkai Dokkai <rails-mailing-l...@andreas-s.net>
wrote:

feli...@gmail.com

unread,
Mar 26, 2008, 11:59:10 AM3/26/08
to Ruby on Rails: Talk
When the cursor is on the form field register_no, the user should
"swipe" the card. This will fill the field with the code from the
card. This is totally transparent to your Rails application, since not
even the browser knows that data is coming from a barcode reader. You
see, the way a simple barcode reader works is that when you swipe the
card, it sends to the keyboard port on your computer the electric
signals for the numbers, so probably not even your computer can tell
if those signals are coming from the keyboard or what. It is
essentially the same thing as you typing in your phone number or your
name, only its done "instantly" as you swipe the card.

If it is a USB reader, it is a little bit different on how it does
it's magic, but the way you interact with it should be the same. Have
you tried creating a simple HTML form with the field, positioning the
cursor on the field and swiping the card? It should work.

On Mar 25, 9:31 pm, Pokkai Dokkai <rails-mailing-l...@andreas-s.net>
wrote:

Pokkai Dokkai

unread,
Mar 27, 2008, 2:52:41 AM3/27/08
to rubyonra...@googlegroups.com
saljamil wrote:
> Here is the controller methods:
>
>
> On Mar 25, 11:39�pm, Pokkai Dokkai <rails-mailing-l...@andreas-s.net>

thank you saljamil to give the source code

thank you to all..

Juliew9855 Juliew9855

unread,
Oct 12, 2010, 4:00:39 AM10/12/10
to rubyonra...@googlegroups.com
Hi !
I've just visited this forum. Happy to get acquainted with you. Thanks.

__________________
http://moviesonlineworld.com

Ailsa Leng

unread,
Feb 24, 2016, 10:24:58 PM2/24/16
to rubyonra...@googlegroups.com
feli...@gmail.com wrote in post #651378:
> When the cursor is on the form field register_no, the user should
> "swipe" the card. This will fill the field with the code from the
> card. This is totally transparent to your Rails application, since not
> even the browser knows that data is coming from a barcode reader. You
> see, the way a simple barcode reader works is that when you swipe the
> card, it sends to the keyboard port on your computer the electric
> signals for the numbers, so probably not even your computer can tell
> if those signals are coming from the keyboard or what. It is
> essentially the same thing as you typing in your phone number or your
> name, only its done "instantly" as you swipe the card.
>
> If it is a USB reader, it is a little bit different on how it does
> it's magic, but the way you interact with it should be the same. Have
> you tried creating a simple HTML form with the field, positioning the
> cursor on the field and swiping the card? It should work.
>
> On Mar 25, 9:31 pm, Pokkai Dokkai <rails-mailing-l...@andreas-s.net>
Well, the usb magnetic card reader can install directly on your computer
host.
(http://www.syncotek.com/product/card_reader_1.html )
Reply all
Reply to author
Forward
0 new messages