[UNSTABLE] Still refactoring. Messages no longer raise
parent
de7bfd2172
commit
a134e8f16a
|
@ -16,7 +16,6 @@ require_relative 'lib/status'
|
|||
Status.current = Status.new
|
||||
|
||||
$shutdown = 0
|
||||
$db_write_sync = Mutex.new
|
||||
|
||||
print 'database '
|
||||
require 'active_record'
|
||||
|
|
|
@ -39,6 +39,10 @@ class DbAccess
|
|||
|
||||
end
|
||||
|
||||
def write_sync
|
||||
@write_sync ||= Mutex.new
|
||||
end
|
||||
|
||||
def create_command(*args)
|
||||
add_command_line(*args)
|
||||
create_new_command(Time.now,'NOTSET')
|
||||
|
|
|
@ -27,7 +27,7 @@ class DbAccessCommands
|
|||
@new_command.scheduled_time = scheduled_time
|
||||
@new_command.crop_id = crop_id
|
||||
@new_command.status = 'creating'
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
@new_command.save
|
||||
end
|
||||
end
|
||||
|
@ -38,7 +38,7 @@ class DbAccessCommands
|
|||
fill_in_command_line_coordinates(line, action, x, y, z, speed)
|
||||
fill_in_command_line_pins(line, pin_nr, value1, value2, mode, time)
|
||||
fill_in_command_line_extra(line, amount, external_info)
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
line.save
|
||||
end
|
||||
end
|
||||
|
@ -70,7 +70,7 @@ class DbAccessCommands
|
|||
def save_new_command
|
||||
if @new_command != nil
|
||||
@new_command.status = 'scheduled'
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
@new_command.save
|
||||
end
|
||||
end
|
||||
|
@ -78,7 +78,7 @@ class DbAccessCommands
|
|||
|
||||
def clear_schedule
|
||||
Command.where("status = ? AND scheduled_time IS NOT NULL",'scheduled').find_each do |cmd|
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
cmd.delete
|
||||
end
|
||||
end
|
||||
|
@ -86,7 +86,7 @@ class DbAccessCommands
|
|||
|
||||
def clear_crop_schedule(crop_id)
|
||||
Command.where("status = ? AND scheduled_time IS NOT NULL AND crop_id = ?",'scheduled',crop_id).find_each do |cmd|
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
cmd.delete
|
||||
end
|
||||
end
|
||||
|
@ -100,7 +100,7 @@ class DbAccessCommands
|
|||
def set_command_to_execute_status(new_status)
|
||||
if @last_command_retrieved != nil
|
||||
@last_command_retrieved.status = new_status
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
@last_command_retrieved.save
|
||||
end
|
||||
end
|
||||
|
|
|
@ -29,14 +29,14 @@ class DbAccessLogs
|
|||
log.text = text
|
||||
log.module_id = module_id
|
||||
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
log.save
|
||||
end
|
||||
|
||||
# clean up old logs
|
||||
|
||||
if Log.count > @dbaccess.max_nr_log_lines
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
Log.delete(Log.order("created_at asc").first(Log.count - @dbaccess.max_nr_log_lines))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -24,7 +24,7 @@ class DbAccessMeasurements
|
|||
meas = Measurement.new
|
||||
meas.value = value
|
||||
meas.external_info = external_info
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
meas.save
|
||||
end
|
||||
end
|
||||
|
@ -54,7 +54,7 @@ class DbAccessMeasurements
|
|||
def delete_measurement(id)
|
||||
if Measurement.exists?(id)
|
||||
meas = Measurement.find(id)
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
meas.delete
|
||||
end
|
||||
end
|
||||
|
|
|
@ -22,7 +22,7 @@ class DbAccessParameters
|
|||
# increment param version
|
||||
#
|
||||
def increment_parameters_version
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
param = Parameter.find_or_create_by(name: 'PARAM_VERSION')
|
||||
param.valuetype = 1 if param.valuetype != 1
|
||||
param.valueint = 0 if param.valueint == nil
|
||||
|
@ -39,7 +39,7 @@ class DbAccessParameters
|
|||
|
||||
fill_parameter_values(param, value)
|
||||
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
param.save
|
||||
end
|
||||
|
||||
|
@ -97,7 +97,7 @@ class DbAccessParameters
|
|||
param.valuestring = type == 3 ? value.to_s : nil
|
||||
param.valuebool = type == 4 ? value : nil
|
||||
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
param.save
|
||||
end
|
||||
increment_parameters_version
|
||||
|
|
|
@ -33,7 +33,7 @@ class DbAccessRefreshes
|
|||
def increment_refresh
|
||||
r = Refresh.find_or_create_by(name: 'FarmBotControllerSchedule')
|
||||
r.value = r.value == nil ? 0 : r.value.to_i + 1
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
r.save
|
||||
end
|
||||
end
|
||||
|
|
|
@ -42,11 +42,10 @@ class MessageHandler
|
|||
send_message_obj_to_individual_handlers(msg)
|
||||
check_if_message_handled(msg)
|
||||
rescue => e
|
||||
begin
|
||||
send_error(msg.sender, time_stamp, " #{e.message} @ #{e.backtrace.last}")
|
||||
rescue => e
|
||||
puts "Error while sending error message: #{e.message}"
|
||||
end
|
||||
sender = msg.try(:sender) || "UNKNOWN-SENDER"
|
||||
# require 'pry'
|
||||
# binding.pry
|
||||
send_error(sender, e)
|
||||
end
|
||||
|
||||
# Handles an error (typically, an unauthorized or unknown message). Returns
|
||||
|
@ -67,14 +66,17 @@ class MessageHandler
|
|||
send_message(destination, command)
|
||||
end
|
||||
|
||||
def send_error(destination, time_stamp, error)
|
||||
time_stamp ||= Time.now.to_f.to_s
|
||||
def send_error(destination, error, time_stamp = Time.now.to_f.to_s)
|
||||
err_msg = "#{error.message} @ #{error.backtrace.first}"
|
||||
puts err_msg
|
||||
command = { :message_type => 'error',
|
||||
:time_stamp => Time.now.to_f.to_s,
|
||||
:confirm_id => time_stamp,
|
||||
:error => error }
|
||||
:error => err_msg }
|
||||
|
||||
send_message(destination, command)
|
||||
rescue => e
|
||||
puts "Error while sending error message:", e.message, e.backtrace.first
|
||||
end
|
||||
|
||||
def send_message(destination, command)
|
||||
|
@ -91,9 +93,9 @@ class MessageHandler
|
|||
end
|
||||
|
||||
def check_if_message_handled(message_obj)
|
||||
if message_obj.handled == false
|
||||
send_error(message_obj.sender, '', 'message could not be handled')
|
||||
end
|
||||
raise 'message could not be handled' if message_obj.handled == false
|
||||
rescue => e
|
||||
send_error(message_obj.sender, e)
|
||||
end
|
||||
|
||||
# Print incoming JSON as YAML, but only if it's not a read_status message.
|
||||
|
|
|
@ -62,8 +62,10 @@ class MessageHandlerParameter < MessageHandlerBase
|
|||
end
|
||||
message.handler.send_confirmation(message.sender, message.time_stamp)
|
||||
else
|
||||
message.handler.send_error(message.sender, message.time_stamp, 'no paramer list in message')
|
||||
raise 'no paramer list in message'
|
||||
end
|
||||
rescue => e
|
||||
message.handler.send_error(message.sender, e)
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -3,7 +3,6 @@ require './lib/database/dbaccess.rb'
|
|||
require 'time'
|
||||
require_relative 'messagehandler_base'
|
||||
require_relative 'messagehandler_schedule_cmd_line'
|
||||
|
||||
# Get the JSON command, received through skynet, and send it to the farmbot
|
||||
# command queue Parses JSON messages received through SkyNet.
|
||||
class MessageHandlerSchedule < MessageHandlerBase
|
||||
|
@ -58,7 +57,7 @@ class MessageHandlerSchedule < MessageHandlerBase
|
|||
|
||||
@dbaccess.clear_crop_schedule(crop_id)
|
||||
|
||||
message_contents['commands'].each do |command|
|
||||
Array(message_contents['commands']).each do |command|
|
||||
save_command_with_lines(command)
|
||||
end
|
||||
|
||||
|
|
1
menu.rb
1
menu.rb
|
@ -4,7 +4,6 @@ puts 'starting up'
|
|||
require './lib/database/dbaccess.rb'
|
||||
require './lib/database/filehandler.rb'
|
||||
|
||||
$db_write_sync = Mutex.new
|
||||
|
||||
#require './lib/controller.rb'
|
||||
#require "./lib/hardware/ramps.rb"
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
require_relative 'lib/status'
|
||||
require_relative 'lib/messaging/messenger'
|
||||
|
||||
Messenger.current.start
|
||||
|
||||
puts "UID: #{Messenger.current.uuid}"
|
||||
puts "TOKEN: #{Messenger.current.token}"
|
||||
|
||||
loop { sleep 0.3 }
|
||||
|
|
|
@ -9,7 +9,6 @@ require './app/models/command_line.rb'
|
|||
describe ControllerCommandProc do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -4,7 +4,6 @@ require './lib/database/dbaccess.rb'
|
|||
describe DbAccess do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
@db = DbAccess.new('development')
|
||||
end
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ require './lib/database/dbaccess.rb'
|
|||
describe DbAccess do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
@db = DbAccess.new('development')
|
||||
#@db.max_nr_log_lines = 10
|
||||
end
|
||||
|
|
|
@ -4,7 +4,6 @@ require './lib/database/dbaccess.rb'
|
|||
describe DbAccess do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
@db = DbAccess.new('development')
|
||||
end
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ require './lib/database/dbaccess.rb'
|
|||
describe DbAccess do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
@db = DbAccess.new('development')
|
||||
end
|
||||
|
||||
|
@ -324,7 +323,7 @@ describe DbAccess do
|
|||
param.valuestring = nil;
|
||||
param.valuebool = nil;
|
||||
|
||||
$db_write_sync.synchronize do
|
||||
DbAccess.current.write_sync.synchronize do
|
||||
param.save
|
||||
end
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ require './lib/database/dbaccess.rb'
|
|||
describe DbAccess do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
@db = DbAccess.new('development')
|
||||
end
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ describe MessageHandlerEmergencyStop do
|
|||
let(:message_handler) { MessageHandler.new(StubMessenger.new) }
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -9,7 +9,6 @@ describe MessageHandlerLog do
|
|||
let(:message) { MessageHandlerMessage.new({}, StubMessenger.new) }
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -9,7 +9,6 @@ describe MessageHandlerMeasurement do
|
|||
let(:message) { MessageHandlerMessage.new({}, StubMessenger.new) }
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -8,7 +8,6 @@ describe MessageHandlerParameter do
|
|||
let(:message) { MessageHandlerMessage.new({}, StubMessenger.new) }
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
require 'spec_helper'
|
||||
require './lib/status.rb'
|
||||
#require './lib/messaging/messenger.rb'
|
||||
#require './lib/messagehandler_base'
|
||||
require './lib/handlers/messagehandler.rb'
|
||||
require './lib/handlers/messagehandler_schedule.rb'
|
||||
require './spec/fixtures/stub_messenger.rb'
|
||||
|
||||
#require './lib/messagehandler_schedule'
|
||||
#require './lib/messagehandler_schedule_cmd_line'
|
||||
#require './lib/handlers/messagehandler_logs.rb'
|
||||
|
||||
describe MessageHandlerSchedule do
|
||||
let(:message) { MessageHandlerMessage.new({}, StubMessenger.new) }
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -9,7 +9,6 @@ describe MessageHandler do
|
|||
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
$dbaccess = DbAccess.current
|
||||
$dbaccess.disable_log_to_screen()
|
||||
|
|
|
@ -14,7 +14,6 @@ describe MessageHandlerStatus do
|
|||
let(:message) { MessageHandlerMessage.new({}, StubMessenger.new) }
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -7,7 +7,6 @@ require './lib/hardware/gcode/ramps_param.rb'
|
|||
describe HardwareInterfaceArduino do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -6,7 +6,6 @@ require './lib/hardware/gcode/ramps_arduino_values_received.rb'
|
|||
describe HardwareInterfaceArduinoValuesReceived do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -6,7 +6,6 @@ require './lib/hardware/gcode/ramps_arduino_write_status.rb'
|
|||
describe HardwareInterfaceArduinoWriteStatus do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -7,7 +7,6 @@ require './lib/hardware/gcode/ramps_param.rb'
|
|||
describe HardwareInterfaceArduino do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -6,7 +6,6 @@ require './lib/hardware/gcode/ramps.rb'
|
|||
describe HardwareInterface do
|
||||
|
||||
before do
|
||||
$db_write_sync = Mutex.new
|
||||
DbAccess.current = DbAccess.new('development')
|
||||
DbAccess.current = DbAccess.current
|
||||
DbAccess.current.disable_log_to_screen()
|
||||
|
|
|
@ -2,7 +2,6 @@ system('clear')
|
|||
puts 'parameter settings'
|
||||
|
||||
$shutdown = 0
|
||||
$db_write_sync = Mutex.new
|
||||
|
||||
require 'active_record'
|
||||
require_relative 'lib/database/dbaccess'
|
||||
|
|
Loading…
Reference in New Issue