'Helper function to handle the device control in a separate thread.
Arguments:
session         -- The request session id
process_fields  -- The fields to set in the devices. List of tuple format:
(name, datatype, value)'

def _threaded_node_request(self, session, process_fields):

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