首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建字符串时需要帮助

创建字符串时需要帮助
EN

Stack Overflow用户
提问于 2010-08-27 02:11:39
回答 3查看 122关注 0票数 0

我是Ruby新手,需要获取10个字符的rfid令牌串行数据(来自arduino和parallax rfid读取器),并将其转换为字符串。看起来没有任何东西被添加到字符串中。当我扫描令牌时,我会在终端窗口中获得rfid令牌数据。

代码语言:javascript
复制
require 'rubygems'  
require 'serialport'   

 #params for serial port  
 port_str = "/dev/tty.usbserial-A4000ORO"    
 baud_rate = 2400  
 data_bits = 8  
 stop_bits = 1  
 parity = SerialPort::NONE  
 sp = SerialPort.new(port_str, baud_rate, data_bits, stop_bits, parity) 

 rfid_token = String.new 

 while true do  
   sp_char = sp.getc 
   rfid_token[0] = sp_char

   if sp_char  
     printf("%c", sp_char)  
   end  

   if rfid_token.size == 10
     puts "full token"
   end   


 end

  puts rfid_token
EN

回答 3

Stack Overflow用户

发布于 2010-08-27 02:16:45

要使用getch创建字符串,应该是这样的

代码语言:javascript
复制
a = ""; a << 36 # => "$"
票数 0
EN

Stack Overflow用户

发布于 2010-08-27 04:02:49

我不知道您的代码中出了什么问题,但我看到的一件事是,您不断地向rfid_token赋值。字符串不会以这种方式增长,您只需一遍又一遍地替换第一个字符。相反,您需要像这样追加到字符串中。

代码语言:javascript
复制
rfid_token << sp_char

我在Arduino和Linux上做了一些事情,你可以读到关于here的文章。我只是使用gets来读取字符串。根据Arduino发送数据的方式,您可能也可以这样做。

票数 0
EN

Stack Overflow用户

发布于 2010-08-27 05:22:05

这是一段可以工作的代码:

代码语言:javascript
复制
 require 'rubygems'  
 require 'serialport'   

 #params for serial port  
 port_str = "/dev/tty.usbserial-A4000ORO"    
 baud_rate = 2400  
 data_bits = 8  
 stop_bits = 1  
 parity = SerialPort::NONE  
 sp = SerialPort.new(port_str, baud_rate, data_bits, stop_bits, parity) 

 rfid_token = "" 

 while true do
   rfid_token << sp.getc

   printf("%c", rfid_token[-1])

   if rfid_token.size == 10
     puts "full token"
     break; #exits loop if you don't want to add more than 10 chars
   end   
 end

 puts rfid_token
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3578118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档