Reputation: 91
I am working on coding lua script.
What I am coding is..Collecting the data and save it into the certain file.
Situation :
There are two sensors that when they recognize the object in front of it, the value of the sensor will be increased.
I want to save the data of the value of sensor every 100ms with time.
Time format would be "2013-04-25 10:30:004"
What I did is here.
===========================================================
require("TIMER")
require("TIMESTAMP")
require("ANALOG_IN")
function OnExit()
print("Exit code...do something")
end
function main()
timer = "TIMER"
analogsensor_1 = "AIR_1"
analogsensor_2 = "AIR_2"
while true do
valueOfSensor_1 = ANALOG_IN.readAnalogIn(analogsensor_1);
valueOfSensor_2 = ANALOG_IN.readAnalogIn(analogsensor_2);
write(colltection_of_data.txt)
go(print(valueOfSensor_1), 0.1) //print value of sensor every 100ms
print(time)
go(print(valueOfSensor_2), 0.1)
print(time)
end
TIMER.sleep(timer,500)
end
print("start main")
main()
================================================================
I know it's not complete code. How can I save the data into certain file? and how can I show the time format like that?
Thank you in advance!
Upvotes: 0
Views: 4881
Reputation: 5525
To get date and time you call:
local timestr = os.date("%Y-%m-%d %H:%M:%S")
Now to save that to a file you need to open the file
local filehandle = io.open(filename[, mode])
- Manual
To output desired data, you then use
local filehandle = io.open("Log.txt", "w+")
filehandle:write(timestr, " - Sensor1: ", tostring(valueOfSensor1), "\n")
Of course, you open your file only once and then issue write command every x (milli)seconds. After you're done:
filehandle:close()
P.S. Please use locals whenever possible. It's much faster than globals (local analogSensor_1
instead of just analogSensor_1
)
Upvotes: 4
Reputation: 23757
Sorry, no fractional seconds
-- Open file
local file = assert(io.open('collection_of_data.txt','wb'))
-- Write to file
local dt = os.date'*t'
local time_string =
dt.year..'-'..('0'..dt.month):sub(-2)..'-'..('0'..dt.day):sub(-2)..' '..
('0'..dt.hour):sub(-2)..':'..('0'..dt.min):sub(-2)..':'..('0'..dt.sec):sub(-2)
file:write(valueOfSensor_1, '\n', time_string, '\n')
-- Close file
file:close()
Upvotes: 1