def send(self, command):
        """send function sends the command to the oxd server and recieves the
        response.

        Parameters:
            * **command (dict):** Dict representation of the JSON command string

        Returns:
            **response (dict):** The JSON response from the oxd Server as a dict
        """
        cmd = json.dumps(command)
        cmd = "{:04d}".format(len(cmd)) + cmd
        msg_length = len(cmd)

        # make the first time connection
        if not self.firstDone:
            logger.info('Initiating first time socket connection.')
            self.__connect()
            self.firstDone = True

        # Send the message the to the server
        totalsent = 0
        while totalsent < msg_length:
            try:
                logger.debug("Sending: %s", cmd[totalsent:])
                sent = self.sock.send(cmd[totalsent:])
                totalsent = totalsent + sent
            except socket.error as e:
                logger.exception("Reconneting due to socket error. %s", e)
                self.__connect()
                logger.info("Reconnected to socket.")

        # Check and receive the response if available
        parts = []
        resp_length = 0
        received = 0
        done = False
        while not done:
            part = self.sock.recv(1024)
            if part == "":
                logger.error("Socket connection broken, read empty.")
                self.__connect()
                logger.info("Reconnected to socket.")

            # Find out the length of the response
            if len(part) > 0 and resp_length == 0:
                resp_length = int(part[0:4])
                part = part[4:]

            # Set Done flag
            received = received + len(part)
            if received >= resp_length:
                done = True

            parts.append(part)

        response = "".join(parts)
        # return the JSON as a namedtuple object
        return json.loads(response)
send function sends the command to the oxd server and recieves the
        response.

        Parameters:
            * **command (dict):** Dict representation of the JSON command string

        Returns:
            **response (dict):** The JSON response from the oxd Server as a dict