local function waitForResponse( _id ) while true do local event = {os.pullEvent()} if event[2] == _id then if event[1] == "ocs_success" then return event[3] elseif event[1] == "ocs_error" then error(event[3],2) end end end end function wrap(side) local wrappedTable = {} if peripheral.getType(side) == "sensor" then local periph = peripheral.wrap(side) for k,v in pairs(periph) do if type(k) == "string" and type(v) == "function" then wrappedTable[k] = function(...) local id = periph[k](...) if id == -1 then return false end return waitForResponse(id) end end end return wrappedTable else return nil, "not a sensor" end end function call(side, ...) if peripheral.getType(side) == "sensor" then local id = peripheral.call(side, ...) if id == -1 then return false end return waitForResponse(id) else return nil, "not a sensor" end end