'Helper function to handle the device readouts in a separate thread.
Arguments:
session         -- The request session id
process_fields  -- The fields to request from the devices
flags           -- [optional] flags to pass to the devices, e.g. momentary
Formatted as a dictionary like { "flag name": "flag value" ... }'

def _threaded_node_request(self, session, process_fields, flags):

    for node in self.sessions[session]['node_list']:
        self.sessions[session]['nodeDone'][node] = False
    for node in self.sessions[session]['node_list']:
        timer = TimerReset(self.nodes[node]['commTimeout'], self._event_comm_timeout, args=(session, node))
        self.sessions[session]['commTimers'][node] = timer
        timer.start()
        self.nodes[node]['device'].request_fields(process_fields, flags=flags, session=session, callback=self._device_field_request_callback)
