subduino 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,66 @@
1
+ Subduino
2
+ ========
3
+
4
+ AVR/Arduino Serial Tools on Ruby
5
+
6
+ http://github.com/nofxx/subduino
7
+
8
+
9
+ Install
10
+ -------
11
+
12
+ gem install subduino
13
+
14
+
15
+ Requirements
16
+ ------------
17
+
18
+ Gems:
19
+
20
+ * serialport http://github.com/hparra/ruby-serialport
21
+
22
+ If you want:
23
+
24
+ PubSub:
25
+
26
+ * redis
27
+
28
+ WebApp:
29
+
30
+ * sinatra
31
+ * haml
32
+
33
+
34
+ Use
35
+ ---
36
+
37
+ subduino -p <PORT> -b <BAUDS>
38
+
39
+
40
+
41
+ PubSub
42
+ ------
43
+
44
+
45
+ Subduino.start do |reading|
46
+ puts "Received from mcu: #{reading}"
47
+ # Mail.send("foo@bla.com") if reading && reading.digital?
48
+ # Postgre.remember(:sensor => reading)
49
+ # Mongoid.insert(:sensor => reading)
50
+ # ...
51
+ end
52
+
53
+ Subduino.write(TXT)
54
+
55
+
56
+ Webapp
57
+ ------
58
+
59
+ Need some love...
60
+
61
+
62
+
63
+ License
64
+ -------
65
+
66
+ "WTFPL":http://sam.zoy.org/wtfpl/
data/Rakefile CHANGED
@@ -1,51 +1,37 @@
1
- require 'rubygems'
2
- require 'rake'
1
+ require 'bundler'
2
+ Bundler.setup
3
3
 
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "subduino"
8
- gem.summary = "Arduino Ruby Helpers"
9
- gem.description = "Interface, compile, upload... Play with arduino on ruby!"
10
- gem.email = "x@nofxx.com"
11
- gem.homepage = "http://github.com/nofxx/subduino"
12
- gem.authors = ["Marcos Piccinini"]
13
- gem.add_dependency "redis"
14
- gem.add_dependency "eventmachine"
15
- gem.add_development_dependency "rspec", ">= 1.2.9"
16
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
- end
18
- Jeweler::GemcutterTasks.new
19
- rescue LoadError
20
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
21
- end
4
+ require "rspec"
5
+ require "rspec/core/rake_task"
22
6
 
23
- # require 'spec/rake/spectask'
24
- # Spec::Rake::SpecTask.new(:spec) do |spec|
25
- # spec.libs << 'lib' << 'spec'
26
- # spec.spec_files = FileList['spec/**/*_spec.rb']
27
- # end
7
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
8
+ require "subduino/version"
28
9
 
29
- # Spec::Rake::SpecTask.new(:rcov) do |spec|
30
- # spec.libs << 'lib' << 'spec'
31
- # spec.pattern = 'spec/**/*_spec.rb'
32
- # spec.rcov = true
33
- # end
10
+ desc "Builds the gem"
11
+ task :gem => :build
12
+ task :build do
13
+ system "gem build subduino.gemspec"
14
+ Dir.mkdir("pkg") unless Dir.exists?("pkg")
15
+ system "mv subduino-#{Subduino::VERSION}.gem pkg/"
16
+ end
34
17
 
35
- # task :spec => :check_dependencies
18
+ task :install => :build do
19
+ system "sudo gem install pkg/subduino-#{Subduino::VERSION}.gem"
20
+ end
36
21
 
37
- # task :default => :spec
22
+ task :release => :build do
23
+ system "git tag -a v#{Subduino::VERSION} -m 'Tagging #{Subduino::VERSION}'"
24
+ system "git push --tags"
25
+ system "gem push pkg/subduino-#{Subduino::VERSION}.gem"
26
+ end
38
27
 
39
- require 'rake/rdoctask'
40
- Rake::RDocTask.new do |rdoc|
41
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
42
28
 
43
- rdoc.rdoc_dir = 'rdoc'
44
- rdoc.title = "subduino #{version}"
45
- rdoc.rdoc_files.include('README*')
46
- rdoc.rdoc_files.include('lib/**/*.rb')
29
+ RSpec::Core::RakeTask.new(:spec) do |spec|
30
+ spec.pattern = "spec/**/*_spec.rb"
47
31
  end
48
32
 
33
+ task :default => [:spec]
34
+
49
35
  desc "Download and install arduino libraries"
50
36
  task :clibs do |t|
51
37
  puts "Starting...."
@@ -1,56 +1,44 @@
1
1
  #!/usr/bin/env ruby
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ #require 'pry'
4
+ #require 'faye'
3
5
  require 'rubygems'
4
6
  require 'optparse'
5
-
7
+ require 'subduino'
8
+ require 'subduino/os'
6
9
 
7
10
  Debug = false
8
11
 
9
- if File.exists?(f = ARGV.join)
10
- # return unless f =~ /\.yml$/
11
- puts "Using config file #{f}"
12
- AppConfig = YAML.load(File.read(f))["opts"]
13
- else
14
- AppConfig = { :log_interval => 30 }
15
- end
16
-
17
- OptionParser.new { |op|
12
+ op = OptionParser.new { |op|
18
13
  op.on('-d', '--debug') { |d| Debug = true }
19
- op.on('-b', '--bauds=BAUDS', Integer) { |b| AppConfig[:bauds] = b }
20
- op.on('-e env') { |val| set :environment, val.to_sym }
21
- op.on('-s server') { |val| set :server, val }
22
- op.on('-p port') { |val| set :port, val.to_i }
14
+ op.on('-b', '--bauds=BAUDS', Integer) { |b| Subduino::Opts[:bauds] = b }
15
+ op.on('-p', '--port=/dev/port') { |p| Subduino::Opts[:port] = p }
16
+ # op.on('-e env') { |val| set :environment, val.to_sym }
17
+ # op.on('-s server') { |val| set :server, val }
23
18
  op.parse!(ARGV)
24
19
  }
25
20
 
26
- require 'subduino'
27
- require 'subduino/os'
28
- require 'faye'
29
21
  # Cubduino.write("hahah")
30
22
  # puts Cubduino.read
31
23
 
32
- # set :run, true
33
-
34
-
35
24
  if ARGV.empty? || ARGV.join =~ /yml/
36
25
  LastRun = {:all => 0}
37
26
 
38
- client = Faye::Client.new('http://localhost:8000/faye')
27
+ # client = Faye::Client.new('http://localhost:8000/faye')
39
28
 
40
29
  EM.run do
41
30
  if Debug
42
31
  puts "Starting on #{OS}"
32
+ puts "--------------------- #{Time.now}"
43
33
  end
44
34
 
45
35
  Subduino.start do |read|
46
- # Subduino::ArdIO.write("hi")
47
- if Debug
48
- #puts "--------------------- #{Time.now}"
49
- #p read
50
- end
51
- if LastRun[:all] < (Time.now.to_i - AppConfig[:log_interval])
36
+
37
+ print read if Debug
38
+
39
+ if LastRun[:all] < (Time.now.to_i - Subduino::Opts[:log_interval])
52
40
  LastRun[:all] = Time.now.to_i
53
- client.publish('/stats', 'data' => read)
41
+ # client.publish('/stats', 'data' => read)
54
42
  Subduino::Store.add_csv_to_store(read, true)
55
43
  else
56
44
  Subduino::Store.add_csv_to_store(read)
@@ -17,14 +17,22 @@ require 'subduino/ard_io'
17
17
  require 'subduino/ard_ps'
18
18
  require 'subduino/parse'
19
19
  require 'subduino/store'
20
- require 'subduino/arduino'
20
+ require 'subduino/serial'
21
21
 
22
22
  #Thread.current.abort_on_exception = false
23
23
 
24
24
  module Subduino
25
+ if File.exists?(f = ARGV.join)
26
+ # return unless f =~ /\.yml$/
27
+ puts "Using config file #{f}"
28
+ Opts = YAML.load(File.read(f))["opts"]
29
+ else
30
+ Opts = { :log_interval => 30 }
31
+ end
32
+
33
+
25
34
  Log = Logger.new(const_defined?("DEBUG") ? STDOUT : "subduino-debug.log")
26
35
  # BAUDS = [300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200]
27
- Sensors = [:temp, :lux]
28
36
  # DATA_BITS = 8
29
37
  # DATA_STOP = 1
30
38
 
@@ -8,9 +8,8 @@ module Subduino
8
8
  #
9
9
  # Direct access to the SerialPort instance.
10
10
  #
11
- def sp
12
- @sp ||= SerialPort.new(Arduino.find_usb, AppConfig[:bauds] || 57600) #, DATA_BITS, DATA_STOP, parity)
13
- # @sp.read_timeout = 10;# @sp.write_timeout = 10
11
+ def serial
12
+ @serial ||= Serial.new(Opts[:bauds])
14
13
  end
15
14
 
16
15
  #
@@ -21,42 +20,43 @@ module Subduino
21
20
  # Feed it with a block to read the text.
22
21
  #
23
22
  def read(&proc)
24
- Log.info "[USB] Found Device...#{Arduino.find_usb}"
25
- Log.info "[USB] Starting Connect..." + sp.get_modem_params.map { |k,v| "#{k}: #{v}" }.join(" ")
26
- Log.info "[USB] Read Timeout #{sp.read_timeout}" # {sp.write_timeout}"
23
+ Log.info "[USB] Found Device...#{serial.port}"
24
+ Log.info "[USB] Starting Connect..." + serial.sp.get_modem_params.map { |k,v| "#{k}: #{v}" }.join(" ")
25
+ # Log.info "[USB] Read Timeout #{sp.read_timeout}" # {sp.write_timeout}"
27
26
 
28
- if sp
29
- @iothread ||= Thread.new do
30
- # Thread.current.abort_on_exception = false
31
- icache = []
32
- loop do
33
- begin
34
- while char = sp.getc
35
- if !char.valid_encoding?
36
- bytes = char.bytes.to_a
37
- hexes = bytes.map { |b| b.to_s(16) }
38
- puts " - Bad char #{char} - (Hex: #{char.unpack('H')} | Byte(s) #{bytes} | Hexe(s) #{hexes}"
39
- elsif char !~ /\n|\r/
40
- # print char if Debug
41
- icache << char
42
- else
43
- data = icache.join(""); icache = []
44
- unless data.empty?
45
- Log.info "[IO RX] #{data}"
46
- proc.call(data)
27
+ if serial.up?
28
+ @iothread ||= Thread.new do
29
+ # Thread.current.abort_on_exception = false
30
+ icache = []
31
+ loop do
32
+ begin
33
+ while char = @serial.read
34
+ if !char.valid_encoding?
35
+ bytes = char.bytes.to_a
36
+ hexes = bytes.map { |b| b.to_s(16) }
37
+ puts " - Bad char #{char} - (Hex: #{char.unpack('H')} | Byte(s) #{bytes} | Hexe(s) #{hexes}"
38
+ # elsif char !~ /\n|\r/
39
+ # # print char if Debug
40
+ # icache << char
41
+ else
42
+ #data = icache.join(""); icache = []
43
+ data = char
44
+ unless data.empty?
45
+ Log.info "[IO RX] #{data}"
46
+ proc.call(data)
47
+ end
47
48
  end
49
+ # sleep 1
48
50
  end
49
- # sleep 1
51
+ rescue => e
52
+ Log.error "[USB] Error #{e}"
53
+ Log.error e.backtrace.join("\n")
54
+ stop!
55
+ exit 1
50
56
  end
51
- rescue => e
52
- Log.error "[USB] Error #{e}"
53
- Log.error e.backtrace.join("\n")
54
- stop!
55
- exit 1
56
57
  end
57
58
  end
58
59
  end
59
- end
60
60
 
61
61
  end
62
62
 
@@ -69,10 +69,7 @@ module Subduino
69
69
  #
70
70
  def write(msg)
71
71
  Log.info "[IO TX] #{msg}"
72
- txt = msg.gsub("\r|\n", "")
73
- # txt += "\n" unless txt =~ /^\\n/
74
- puts "=> Sending #{txt.inspect}" if Debug
75
- sp.puts(msg)
72
+ serial.write(msg)
76
73
  end
77
74
 
78
75
 
@@ -80,7 +77,7 @@ module Subduino
80
77
  # Finish Him!
81
78
  #
82
79
  def stop!
83
- sp.close
80
+ serial.kill
84
81
  Thread.kill @iothread
85
82
  Log.info "[IO] K.I.A"
86
83
  end
@@ -0,0 +1,13 @@
1
+ ;; Object semantic.cache
2
+ ;; SEMANTICDB Tags save file
3
+ (semanticdb-project-database "semantic.cache"
4
+ :file "semantic.cache"
5
+ :tables (list
6
+ (semanticdb-table "Makefile"
7
+ :file "Makefile"
8
+ :pointmax 11514
9
+ :major-mode 'makefile-gmake-mode
10
+ :tokens '(("TARGET" variable nil (("!!SCAFFOLD!!")) nil nil nil [274 302]) ("ARDUINO_DIR" variable nil (("/usr/share/arduino")) nil nil nil [302 336]) ("ARDUINO_LIBS" variable nil (("Messenger")) nil nil ((dirty . t)) [336 361]) ("MCU" variable nil (("atmega328p")) nil nil nil [370 396]) ("F_CPU" variable nil (("16000000")) nil nil nil [396 420]) ("ARDUINO_PORT" variable nil (("/dev/ttyUSB*")) nil nil nil [420 448]) ("AVR_TOOLS_PATH" variable nil (("/usr/bin")) nil nil nil [457 483]) ("AVRDUDE_CONF" variable nil (("/usr/share/arduino/hardware/tools/avrdude.conf")) nil nil nil [483 547]) ("AVRDUDE_ARD_PROGRAMMER" variable nil (("stk500v1")) nil nil nil [558 592]) ("AVRDUDE_ARD_BAUDRATE" variable nil (("57600")) nil nil nil [592 623]) ("AVR_TOOLS_PATH" variable nil (("$(ARDUINO_DIR)/hardware/tools/avr/bin")) nil nil nil [2902 2960]) ("ARDUINO_ETC_PATH" variable nil (("$(ARDUINO_DIR)/hardware/tools/avr/etc")) nil nil nil [2991 3049]) ("AVRDUDE_CONF" variable nil (("$(ARDUINO_ETC_PATH)/avrdude.conf")) nil nil nil [3076 3128]) ("ARDUINO_LIB_PATH" variable nil (("$(ARDUINO_DIR)/libraries")) nil nil nil [3135 3180]) ("ARDUINO_CORE_PATH" variable nil (("$(ARDUINO_DIR)/hardware/arduino/cores/arduino")) nil nil nil [3180 3246]) ("OBJDIR" variable nil (("build-cli")) nil nil nil [3286 3310]) ("LOCAL_C_SRCS" variable nil (("$(wildcard *.c)")) nil nil nil [3402 3436]) ("LOCAL_CPP_SRCS" variable nil (("$(wildcard *.cpp)")) nil nil nil [3436 3472]) ("LOCAL_CC_SRCS" variable nil (("$(wildcard *.cc)")) nil nil nil [3472 3507]) ("LOCAL_PDE_SRCS" variable nil (("$(wildcard *.pde)")) nil nil nil [3507 3543]) ("LOCAL_AS_SRCS" variable nil (("$(wildcard *.S)")) nil nil nil [3543 3577]) ("LOCAL_OBJ_FILES" variable nil (("$(LOCAL_C_SRCS:.c=.o)") ("$(LOCAL_CPP_SRCS:.cpp=.o)") nil ("$(LOCAL_CC_SRCS:.cc=.o)") ("$(LOCAL_PDE_SRCS:.pde=.o)") nil ("$(LOCAL_AS_SRCS:.S=.o)")) nil nil nil [3577 3728]) ("LOCAL_OBJS" variable nil (("$(patsubst %,$(OBJDIR)/%,$(LOCAL_OBJ_FILES))")) nil nil nil [3728 3791]) ("DEPS" variable nil (("$(LOCAL_OBJS:.o=.d)")) nil nil nil [3811 3849]) ("CORE_C_SRCS" variable nil (("$(wildcard $(ARDUINO_CORE_PATH)/*.c)")) nil nil nil [3917 3972]) ("CORE_CPP_SRCS" variable nil (("$(wildcard $(ARDUINO_CORE_PATH)/*.cpp)")) nil nil nil [3972 4029]) ("EXTRA_CPP_SRCS" variable nil (("$(wildcard $(ARDUINO_LIB_PATH)/Messenger/*.cpp)")) nil nil nil [4029 4096]) ("CORE_OBJ_FILES" variable nil (("$(CORE_C_SRCS:.c=.o)") ("$(CORE_CPP_SRCS:.cpp=.o)") ("$(EXTRA_CPP_SRCS:.cpp=.o)")) nil nil nil [4096 4186]) ("CORE_OBJS" variable nil (("$(patsubst $(ARDUINO_CORE_PATH)/%, $(OBJDIR)/%,$(CORE_OBJ_FILES))")) nil nil nil [4186 4270]) ("OBJS" variable nil (("$(LOCAL_OBJS)") ("$(CORE_OBJS)")) nil nil nil [4302 4347]) ("TARGET_HEX" variable nil (("$(OBJDIR)/$(TARGET).hex")) nil nil nil [4480 4517]) ("TARGET_ELF" variable nil (("$(OBJDIR)/$(TARGET).elf")) nil nil nil [4517 4554]) ("TARGETS" variable nil (("$(OBJDIR)/$(TARGET).*")) nil nil nil [4554 4589]) ("DEP_FILE" variable nil (("$(OBJDIR)/depends.mk")) nil nil nil [4615 4649]) ("CC" variable nil (("$(AVR_TOOLS_PATH)/avr-gcc")) nil nil nil [4673 4709]) ("CXX" variable nil (("$(AVR_TOOLS_PATH)/avr-g++")) nil nil nil [4709 4745]) ("OBJCOPY" variable nil (("$(AVR_TOOLS_PATH)/avr-objcopy")) nil nil nil [4745 4785]) ("OBJDUMP" variable nil (("$(AVR_TOOLS_PATH)/avr-objdump")) nil nil nil [4785 4825]) ("AR" variable nil (("$(AVR_TOOLS_PATH)/avr-ar")) nil nil nil [4825 4860]) ("SIZE" variable nil (("$(AVR_TOOLS_PATH)/avr-size")) nil nil nil [4860 4897]) ("NM" variable nil (("$(AVR_TOOLS_PATH)/avr-nm")) nil nil nil [4897 4932]) ("REMOVE" variable nil (("rm") ("-f")) nil nil nil [4932 4948]) ("MV" variable nil (("mv") ("-f")) nil nil nil [4948 4964]) ("CAT" variable nil (("cat")) nil nil nil [4964 4978]) ("ECHO" variable nil (("echo")) nil nil nil [4978 4993]) ("SYS_LIBS" variable nil (("$(patsubst %,$(ARDUINO_LIB_PATH)/%,$(ARDUINO_LIBS))")) nil nil nil [5014 5082]) ("SYS_INCLUDES" variable nil (("$(patsubst %,-I%,$(SYS_LIBS))")) nil nil nil [5082 5128]) ("SYS_OBJS" variable nil (("$(wildcard $(patsubst %,%/*.o,$(SYS_LIBS)))")) nil nil nil [5128 5188]) ("CPPFLAGS" variable nil (("-mmcu=$(MCU)") ("-DF_CPU=$(F_CPU)") nil ("-I.") ("-I$(ARDUINO_CORE_PATH)") nil ("$(SYS_INCLUDES)") ("-g") ("-Os") ("-w") ("-Wall") nil ("-ffunction-sections") ("-fdata-sections")) nil nil nil [5189 5354]) ("CFLAGS" variable nil (("-std=gnu99")) nil nil nil [5354 5381]) ("CXXFLAGS" variable nil (("-fno-exceptions")) nil nil nil [5381 5413]) ("ASFLAGS" variable nil (("-mmcu=$(MCU)") ("-I.") ("-x") ("assembler-with-cpp")) nil nil nil [5413 5468]) ("LDFLAGS" variable nil (("-mmcu=$(MCU)") ("-lm") ("-Wl,--gc-sections") ("-Os")) nil nil nil [5468 5523]) ("ARD_PORT" variable nil (("$(firstword $(wildcard $(ARDUINO_PORT)))")) nil nil nil [5659 5716]) ("$(OBJDIR)" function nil (("%.c")) nil nil nil [6187 6249]) ("$(OBJDIR)" function nil (("%.cc")) nil nil nil [6249 6315]) ("$(OBJDIR)" function nil (("%.cpp")) nil nil nil [6315 6382]) ("$(OBJDIR)" function nil (("%.S")) nil nil nil [6382 6445]) ("$(OBJDIR)" function nil (("%.s")) nil nil nil [6445 6508]) ("$(OBJDIR)" function nil (("%.c")) nil nil nil [6508 6587]) ("$(OBJDIR)" function nil (("%.cc")) nil nil nil [6587 6670]) ("$(OBJDIR)" function nil (("%.cpp")) nil nil nil [6670 6754]) ("$(OBJDIR)" function nil (("%.S")) nil nil nil [6754 6834]) ("$(OBJDIR)" function nil (("%.s")) nil nil nil [6834 6914]) ("$(OBJDIR)" function nil (("%.pde")) nil nil nil [6941 7012]) ("$(OBJDIR)" function nil (("$(OBJDIR)/%.cpp")) nil nil nil [7012 7089]) ("$(OBJDIR)" function nil (("$(OBJDIR)/%.cpp")) nil nil nil [7089 7183]) ("$(OBJDIR)" function nil (("$(ARDUINO_CORE_PATH)/%.c")) nil nil nil [7196 7279]) ("$(OBJDIR)" function nil (("$(ARDUINO_CORE_PATH)/%.cpp")) nil nil nil [7279 7367]) ("$(OBJDIR)" function nil (("$(OBJDIR)/%.elf")) nil nil nil [7396 7468]) ("$(OBJDIR)" function nil (("$(OBJDIR)/%.elf")) nil nil nil [7468 7619]) ("$(OBJDIR)" function nil (("$(OBJDIR)/%.elf")) nil nil nil [7619 7680]) ("$(OBJDIR)" function nil (("$(OBJDIR)/%.elf")) nil nil nil [7680 7733]) ("AVRDUDE" variable nil (("$(AVR_TOOLS_PATH)/avrdude")) nil nil nil [7835 7880]) ("AVRDUDE_COM_OPTS" variable nil (("-q") ("-V") ("-p") ("$(MCU)")) nil nil nil [7887 7922]) ("+" variable nil (("-C") ("$(AVRDUDE_CONF)")) nil nil nil [7958 7980]) ("AVRDUDE_ARD_PROGRAMMER" variable nil (("stk500v1")) nil nil nil [8017 8051]) ("AVRDUDE_ARD_BAUDRATE" variable nil (("57600") nil) nil nil nil [8086 8125]) ("AVRDUDE_ARD_OPTS" variable nil (("-c") ("$(AVRDUDE_ARD_PROGRAMMER)") ("-b") ("$(AVRDUDE_ARD_BAUDRATE)") ("-P") ("$(ARD_PORT)")) nil nil nil [8132 8222]) ("ISP_LOCK_FUSE_PRE" variable nil (("0x3f")) nil nil nil [8248 8274]) ("ISP_LOCK_FUSE_POST" variable nil (("0xcf")) nil nil nil [8307 8333]) ("ISP_HIGH_FUSE" variable nil (("0xdf")) nil nil nil [8361 8387]) ("ISP_LOW_FUSE" variable nil (("0xff")) nil nil nil [8414 8440]) ("ISP_EXT_FUSE" variable nil (("0x01")) nil nil nil [8467 8493]) ("ISP_PROG" variable nil (("-c") ("stk500v2")) nil nil nil [8516 8543]) ("AVRDUDE_ISP_OPTS" variable nil (("-P") ("$(ISP_PORT)") ("$(ISP_PROG)")) nil nil nil [8550 8596]) ("all" function nil (("$(OBJDIR)") ("$(TARGET_HEX)")) nil nil nil [8706 8739]) ("$(OBJDIR)" function nil (nil) nil nil nil [8739 8771]) ("$(TARGET_ELF)" function nil (("$(OBJS)")) nil nil nil [8771 8843]) ("$(DEP_FILE)" function nil (("$(OBJDIR)") ("$(DEPS)")) nil nil nil [8843 8906]) ("upload" function nil (("reset") ("raw_upload")) nil nil nil [8906 8934]) ("raw_upload" function nil (("$(TARGET_HEX)")) nil nil nil [8934 9051]) ("reset" function nil (nil) nil nil nil [9246 9481]) ("ispload" function nil (("$(TARGET_HEX)")) nil nil nil [9481 9907]) ("clean" function nil (nil) nil nil nil [9907 9968]) ("depends" function nil (("$(DEPS)")) nil nil nil [9968 10017]) (".PHONY" function nil (("all") ("clean") ("depends") ("upload") ("raw_upload") ("reset")) nil nil nil [10017 10068]) ("$(DEP_FILE)" include nil nil nil [10068 10088]))
11
+ )
12
+ )
13
+ )
@@ -0,0 +1,44 @@
1
+ module Subduino
2
+
3
+ class Serial
4
+ attr_reader :sp, :port, :bauds
5
+
6
+ def initialize(bauds = 57600)
7
+ @bauds = bauds
8
+ @port = find_port
9
+ @sp ||= SerialPort.new(@port, bauds) #, DATA_BITS, DATA_STOP, parity)
10
+ # @sp.read_timeout = 10
11
+ # @sp.write_timeout = 10
12
+ end
13
+
14
+ def find_port
15
+ prefix = RUBY_PLATFORM =~ /darwin/ ? ".usbmodem" : "USB"
16
+ port = Dir.glob("/dev/tty#{prefix}*").first
17
+ raise "Can't find serial port" unless port
18
+ port
19
+ end
20
+
21
+ def read
22
+ sp.getc
23
+ end
24
+
25
+ def write msg
26
+ # txt += "\n" unless txt =~ /^\\n/
27
+ txt = msg.gsub("\r|\n", "")
28
+ Log.debug "=> Sending #{txt.inspect}"
29
+ sp.puts txt
30
+ # msg.to_s.chomp.split("").each do |char|
31
+ # @sp.putc char
32
+ end
33
+
34
+ def up?
35
+ sp
36
+ end
37
+
38
+ def kill
39
+ sp.close
40
+ end
41
+
42
+ end
43
+
44
+ end
@@ -0,0 +1,4 @@
1
+ module Subduino
2
+ VERSION = '0.5.0'
3
+ end
4
+
@@ -0,0 +1,12 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Cubduino" do
4
+
5
+ it "should define module" do
6
+ Subduino.const_defined?("Cubduino").should be_true
7
+ end
8
+
9
+
10
+
11
+
12
+ end
@@ -3,8 +3,8 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
3
3
  describe ArdIO do
4
4
 
5
5
  it "should start serial port" do
6
- Arduino.stub!(:find_usb).and_return("/dev/ttyUSB0")
6
+ Serial.stub!(:find_usb).and_return("/dev/ttyUSB0")
7
7
  SerialPort.should_receive(:new).with("/dev/ttyUSB0", 115200)
8
- ArdIO.sp
8
+ ArdIO.serial
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,151 +1,130 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: subduino
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 3
8
- - 1
9
- version: 0.3.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Marcos Piccinini
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-08-29 00:00:00 -03:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-01-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: redis
16
+ requirement: &11141820 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
22
23
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: *11141820
25
+ - !ruby/object:Gem::Dependency
26
+ name: serialport
27
+ requirement: &11141120 !ruby/object:Gem::Requirement
24
28
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
31
33
  type: :runtime
32
- version_requirements: *id001
33
- - !ruby/object:Gem::Dependency
34
- name: eventmachine
35
34
  prerelease: false
36
- requirement: &id002 !ruby/object:Gem::Requirement
35
+ version_requirements: *11141120
36
+ - !ruby/object:Gem::Dependency
37
+ name: eventmachine
38
+ requirement: &11140640 !ruby/object:Gem::Requirement
37
39
  none: false
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
44
  type: :runtime
45
- version_requirements: *id002
46
- - !ruby/object:Gem::Dependency
47
- name: rspec
48
45
  prerelease: false
49
- requirement: &id003 !ruby/object:Gem::Requirement
46
+ version_requirements: *11140640
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: &11161880 !ruby/object:Gem::Requirement
50
50
  none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- segments:
55
- - 1
56
- - 2
57
- - 9
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
58
54
  version: 1.2.9
59
55
  type: :development
60
- version_requirements: *id003
56
+ prerelease: false
57
+ version_requirements: *11161880
61
58
  description: Interface, compile, upload... Play with arduino on ruby!
62
59
  email: x@nofxx.com
63
- executables:
60
+ executables:
64
61
  - subduino
65
62
  - subduino-cli
66
- extensions:
63
+ extensions:
67
64
  - ext/subduino/extconf.rb
68
65
  extra_rdoc_files: []
69
-
70
- files:
71
- - .document
72
- - Rakefile
73
- - Readme.textile
74
- - VERSION
75
- - bin/subduino
76
- - bin/subduino-cli
77
- - duino/.gitignore
78
- - duino/Makefile
79
- - duino/duino.pde
80
- - duino/duino.rb
81
- - duino/methods.pde
82
- - examples/duin
83
- - ext/subduino/Makefile
84
- - ext/subduino/cubduino.c
85
- - ext/subduino/cubduino.h
86
- - ext/subduino/cubduino.o
87
- - ext/subduino/cubduino.so
88
- - ext/subduino/extconf.rb
66
+ files:
89
67
  - lib/subduino.rb
90
- - lib/subduino/ard_io.rb
91
- - lib/subduino/ard_ps.rb
92
- - lib/subduino/arduino.rb
93
- - lib/subduino/os.rb
94
- - lib/subduino/parse.rb
68
+ - lib/subduino/parse/temp.rb
95
69
  - lib/subduino/parse/bool.rb
70
+ - lib/subduino/parse/pressure.rb
96
71
  - lib/subduino/parse/energy.rb
97
72
  - lib/subduino/parse/flow.rb
98
73
  - lib/subduino/parse/lux.rb
99
74
  - lib/subduino/parse/presence.rb
100
- - lib/subduino/parse/pressure.rb
101
- - lib/subduino/parse/temp.rb
102
- - lib/subduino/scaffold/Makefile
75
+ - lib/subduino/parse.rb
76
+ - lib/subduino/os.rb
77
+ - lib/subduino/ard_ps.rb
78
+ - lib/subduino/ard_io.rb
79
+ - lib/subduino/version.rb
80
+ - lib/subduino/scaffold/scaffold.pde
81
+ - lib/subduino/scaffold/semantic.cache
103
82
  - lib/subduino/scaffold/Makefile2
83
+ - lib/subduino/scaffold/Makefile
104
84
  - lib/subduino/scaffold/generator.rb
105
- - lib/subduino/scaffold/scaffold.pde
106
85
  - lib/subduino/scaffold/scaffold.rb
86
+ - lib/subduino/serial.rb
107
87
  - lib/subduino/store.rb
108
- - node/arduinode.js
109
- - node/server.js
110
- - node/vendor/faye.js
88
+ - spec/subduino_spec.rb
111
89
  - spec/spec_helper.rb
112
- - spec/subduino/ard_io_spec.rb
113
90
  - spec/subduino/cubduino_spec.rb
114
- - spec/subduino/parse_spec.rb
115
91
  - spec/subduino/store_spec.rb
116
- - spec/subduino_spec.rb
117
- - subduino.gemspec
118
- has_rdoc: true
92
+ - spec/subduino/ard_io_spec.rb
93
+ - spec/subduino/#cubduino_spec.rb#
94
+ - spec/subduino/parse_spec.rb
95
+ - README.md
96
+ - Rakefile
97
+ - bin/subduino
98
+ - bin/subduino-cli
99
+ - ext/subduino/extconf.rb
119
100
  homepage: http://github.com/nofxx/subduino
120
101
  licenses: []
121
-
122
102
  post_install_message:
123
103
  rdoc_options: []
124
-
125
- require_paths:
104
+ require_paths:
126
105
  - lib
127
- required_ruby_version: !ruby/object:Gem::Requirement
106
+ required_ruby_version: !ruby/object:Gem::Requirement
128
107
  none: false
129
- requirements:
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- segments:
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ segments:
133
113
  - 0
134
- version: "0"
135
- required_rubygems_version: !ruby/object:Gem::Requirement
114
+ hash: 330229238283923974
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
116
  none: false
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- segments:
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ segments:
141
122
  - 0
142
- version: "0"
123
+ hash: 330229238283923974
143
124
  requirements: []
144
-
145
125
  rubyforge_project:
146
- rubygems_version: 1.3.7
126
+ rubygems_version: 1.8.11
147
127
  signing_key:
148
128
  specification_version: 3
149
129
  summary: Arduino Ruby Helpers
150
130
  test_files: []
151
-