saving measurement after reading pin value
parent
1b5810bb2f
commit
706ad1dd45
|
@ -0,0 +1,2 @@
|
|||
class Measurement < ActiveRecord::Base
|
||||
end
|
|
@ -193,7 +193,7 @@ class Controller
|
|||
when "PIN WRITE"
|
||||
$bot_hardware.pin_std_set_value(command_line.pin_nr, command_line.pin_value_1)
|
||||
when "PIN READ"
|
||||
$bot_hardware.pin_std_read_value(command_line.pin_nr)
|
||||
$bot_hardware.pin_std_read_value(command_line.pin_nr, command_line.external_info)
|
||||
when "PIN MODE"
|
||||
$bot_hardware.pin_std_set_mode(command_line.pin, command_line.pin_mode)
|
||||
when "PIN PULSE"
|
||||
|
|
|
@ -7,6 +7,7 @@ require './app/models/command_line.rb'
|
|||
require './app/models/refresh.rb'
|
||||
require './app/models/log.rb'
|
||||
require './app/models/parameter.rb'
|
||||
require './app/models/measurement.rb'
|
||||
|
||||
# retrieving and inserting commands into the schedule queue for the farm bot
|
||||
# using sqlite
|
||||
|
@ -153,10 +154,10 @@ class DbAccess
|
|||
# read measurement list
|
||||
#
|
||||
def read_measurement_list()
|
||||
measurements = Measuerements.find(:all)
|
||||
measurements = Measurement.all
|
||||
measurements_list = Array.new
|
||||
|
||||
measurement.each do |meas|
|
||||
measurements.each do |meas|
|
||||
item =
|
||||
{
|
||||
'id' => meas.measurement_id,
|
||||
|
@ -164,17 +165,18 @@ class DbAccess
|
|||
'timestamp' => meas.created_at,
|
||||
'value' => meas.value
|
||||
}
|
||||
measurement_list << item
|
||||
measurements_list << item
|
||||
end
|
||||
|
||||
measurement_list
|
||||
measurements_list
|
||||
end
|
||||
|
||||
# delete a measurement from the database
|
||||
#
|
||||
def delete_measurement(id)
|
||||
Log.where("measurement_id = (?)", id).find_each do |log|
|
||||
log.delete
|
||||
if Measurement.exists?(id)
|
||||
meas = Measurement.where("measurement_id = (?)", id).first
|
||||
meas.delete
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -34,13 +34,13 @@ class HardwareInterface
|
|||
|
||||
@bot_dbaccess = $bot_dbaccess
|
||||
|
||||
@axis_x_pos = 0
|
||||
@axis_y_pos = 0
|
||||
@axis_z_pos = 0
|
||||
@axis_x_pos = 0
|
||||
@axis_y_pos = 0
|
||||
@axis_z_pos = 0
|
||||
|
||||
@axis_x_pos_conv = 0
|
||||
@axis_y_pos_conv = 0
|
||||
@axis_z_pos_conv = 0
|
||||
@axis_x_pos_conv = 0
|
||||
@axis_y_pos_conv = 0
|
||||
@axis_z_pos_conv = 0
|
||||
|
||||
@axis_x_steps_per_unit = 0
|
||||
@axis_y_steps_per_unit = 0
|
||||
|
@ -48,10 +48,12 @@ class HardwareInterface
|
|||
|
||||
load_param_values_non_arduino()
|
||||
|
||||
@device_version = 'unknown'
|
||||
@param_version_db = 0
|
||||
@param_version_ar = 0
|
||||
@params_in_sync = false
|
||||
@device_version = 'unknown'
|
||||
@param_version_db = 0
|
||||
@param_version_ar = 0
|
||||
@params_in_sync = false
|
||||
|
||||
@external_info = ""
|
||||
|
||||
end
|
||||
|
||||
|
@ -68,8 +70,11 @@ class HardwareInterface
|
|||
|
||||
# read standard pin
|
||||
#
|
||||
def pin_std_read_value(pin)
|
||||
execute_command("F42 P#{pin}", false, @status_debug_msg)
|
||||
def pin_std_read_value(pin, external_info)
|
||||
@external_info = external_info
|
||||
# execute_command("F42 P#{pin}", false, @status_debug_msg)
|
||||
execute_command("F42 P#{pin}", true, true)
|
||||
@external_info = ''
|
||||
end
|
||||
|
||||
# set standard pin mode
|
||||
|
@ -412,6 +417,11 @@ class HardwareInterface
|
|||
@bot_dbaccess.write_parameter(param['name'],value)
|
||||
end
|
||||
|
||||
# save a pin measurement
|
||||
#
|
||||
def save_pin_value(pin_id, pin_val)
|
||||
@bot_dbaccess.write_measuements(pin_val, @external_info)
|
||||
end
|
||||
|
||||
## ARDUINO HANLDING
|
||||
## ****************
|
||||
|
@ -560,6 +570,27 @@ class HardwareInterface
|
|||
end
|
||||
end
|
||||
|
||||
when 'R41'
|
||||
pin_id = -1
|
||||
pin_val = 0
|
||||
|
||||
text.split(' ').each do |param|
|
||||
|
||||
par_code = param[0..0].to_s
|
||||
par_value = param[1..-1].to_i
|
||||
|
||||
case par_code
|
||||
when 'P'
|
||||
pin_id = par_value
|
||||
when 'V'
|
||||
pin_val = par_value
|
||||
end
|
||||
end
|
||||
|
||||
if pin_id >= 0
|
||||
save_pin_value(pin_id, pin_val)
|
||||
end
|
||||
|
||||
when 'R81'
|
||||
text.split(' ').each do |param|
|
||||
|
||||
|
|
|
@ -8,6 +8,8 @@ class MessageHandler
|
|||
|
||||
attr_accessor :message
|
||||
|
||||
## general handling messages
|
||||
|
||||
def initialize
|
||||
@dbaccess = DbAccess.new
|
||||
@last_time_stamp = ''
|
||||
|
@ -16,7 +18,7 @@ class MessageHandler
|
|||
# A list of MessageHandler methods (as strings) that a Skynet User may access.
|
||||
#
|
||||
def whitelist
|
||||
["single_command","crop_schedule_update","read_parameters","write_parameters","read_logs","read_status"]
|
||||
["single_command","crop_schedule_update","read_parameters","write_parameters","read_logs","read_status","read_measurements","delete_measurements"]
|
||||
end
|
||||
|
||||
# Handle the message received from skynet
|
||||
|
@ -66,7 +68,7 @@ class MessageHandler
|
|||
self.send(requested_command, message)
|
||||
else
|
||||
@dbaccess.write_to_log(2,'message type not in white list')
|
||||
self.error(message)
|
||||
send_error(sender, time_stamp, 'message type not in white list')
|
||||
end
|
||||
rescue Exception => e
|
||||
err_snd = true
|
||||
|
@ -114,7 +116,7 @@ class MessageHandler
|
|||
|
||||
@last_time_stamp = time_stamp
|
||||
|
||||
measurement_list = @dbaccess.read_measurements()
|
||||
measurements_list = @dbaccess.read_measurement_list()
|
||||
|
||||
return_message =
|
||||
{
|
||||
|
@ -146,7 +148,7 @@ class MessageHandler
|
|||
@last_time_stamp = time_stamp
|
||||
|
||||
if payload.has_key? 'ids'
|
||||
message_contents['ids'].each do |id|
|
||||
payload['ids'].each do |id|
|
||||
|
||||
@dbaccess.delete_measurement(id)
|
||||
|
||||
|
|
Loading…
Reference in New Issue