Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Require statements and component definitions.
- local component = require("component")
- local event = require("event")
- local computer = require("computer")
- local detector = component.ir_augment_detector
- local controller = component.ir_augment_control
- local BRAKE_ENABLED = false
- local function pullTrainEvent(func)
- local event_name, net_address, augment_type, stock_uuid = event.pull("ir_train_overhead")
- func(net_address, augment_type, stock_uuid)
- end
- local function strStarts(str, start)
- return string.sub(str, 1, string.len(start)) == start
- end
- local function isStockLocomotive()
- local info = detector.info()
- return strStarts(info.id, "rolling_stock/loc")
- end
- local function handleTrainEvent(net_address, augment_type, stock_uuid)
- if (augment_type == "DETECTOR") then
- local data = detector.consist()
- if (data == nil or not isStockLocomotive()) then
- return
- end
- print("Locomotive Data from: "..net_address)
- print(" Speed: "..data.speed_km.." Km/h")
- print(" Direction: "..data.direction)
- print(" Weight: "..data.weight_kg.." Kg")
- print(" Tractive Effort: "..data.tractive_effort_N.." N")
- print(" Cars: "..data.cars)
- print(" TIME: "..os.time())
- end
- if (augment_type == "LOCO_CONTROL" and BRAKE_ENABLED) then
- controller.setThrottle(0)
- controller.setBrake(1)
- controller.horn()
- end
- end
- while true do
- pullTrainEvent(handleTrainEvent)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement