Sha256: 7d05d93ffbd3c25e6fd787a97829d6d386ba9ff161af0a14df00b21b9effdfcb
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
require 'particlepi' module ParticlePi class Agent def run!(daemon) create_pipes puts "Starting firmware" until daemon.quit? run_firmware end puts "Quitting gracefully" end private def stdin_pipe "/var/run/particlepi-stdin" end def stdout_pipe "/var/run/particlepi-stdout" end def create_pipes system("mkfifo #{stdin_pipe}") unless File::exist?(stdin_pipe) system("mkfifo #{stdout_pipe}") unless File::exist?(stdout_pipe) end def run_firmware pid = Process.spawn( firmware_env, firmware_executable, *firmware_args, in: [stdin_pipe, 'r+'], out: [stdout_pipe, 'w+'], # stderr is shared with the agent process chdir: settings_path ) pid, status = Process.waitpid2(pid) puts "Firmware exited with status #{status}" end def settings_path File.join(ParticlePi.project_root, "settings") end def firmware_env {} end def firmware_executable File.join(ParticlePi.project_root, "binaries/tinker") end def firmware_args ["-v", "70"] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
particlepi-0.1.0 | lib/particlepi/agent.rb |