diff options
author | Sebastian Reichel <sre@ring0.de> | 2012-05-17 15:04:24 +0200 |
---|---|---|
committer | Sebastian Reichel <sre@ring0.de> | 2012-05-17 15:04:24 +0200 |
commit | 22f7cca9be9ef5b4d2973770edab5ebc30408093 (patch) | |
tree | 1ca2b55fd2ec64690a3e06475c6cdeb99e4f062b | |
parent | c02426b27b06b8eb9fa201b6bb480ee39bbded21 (diff) | |
download | serial-barcode-scanner-22f7cca9be9ef5b4d2973770edab5ebc30408093.tar.bz2 |
fix Device.receive()
-rw-r--r-- | device.vala | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/device.vala b/device.vala index ee0967b..454e79b 100644 --- a/device.vala +++ b/device.vala @@ -125,23 +125,23 @@ public class Device { char[] detected = {}; char buf[64]; - int size = (int) this.read(buf, 64); - - if(size <= 0) - error("serial device lost.\n"); - - for(int i = 0; i < size; i++) { - if(buf[i] != '\r' && buf[i] != '\n') { - detected += (char) buf[i]; - } else { - if(detected.length > 0) { - detected += '\0'; - return (string) detected; + while(true) { + int size = (int) this.read(buf, 64); + + if(size <= 0) + error("serial device lost.\n"); + + for(int i = 0; i < size; i++) { + if(buf[i] != '\r' && buf[i] != '\n') { + detected += (char) buf[i]; + } else { + if(detected.length > 0) { + detected += '\0'; + return (string) detected; + } } } } - - return ""; } /** |