code: def write_single_register(self, reg_addr, reg_value):
          
          # check params
          if not (0 <= int(reg_addr) <= 65535):
              self.__debug_msg('write_single_register(): reg_addr out of range')
              return None
          if not (0 <= int(reg_value) <= 65535):
              self.__debug_msg('write_single_register(): reg_value out of range')
              return None
          # build frame
          tx_buffer = self._mbus_frame(const.WRITE_SINGLE_REGISTER,
                                       struct.pack('>HH', reg_addr, reg_value))
          # send request
          s_send = self._send_mbus(tx_buffer)
          # check error
          if not s_send:
              return None
          # receive
          f_body = self._recv_mbus()
          # check error
          if not f_body:
              return None
          # check fix frame size
          if len(f_body) != 4:
              self.__last_error = const.MB_RECV_ERR
              self.__debug_msg('write_single_register(): rx frame size error')
              self.close()
              return None
          # register extract
          rx_reg_addr, rx_reg_value = struct.unpack('>HH', f_body)
          # check register write
          is_ok = (rx_reg_addr == reg_addr) and (rx_reg_value == reg_value)
          return True if is_ok else None
docs: Modbus function WRITE_SINGLE_REGISTER (0x06)
  
          :param reg_addr: register address (0 to 65535)
          :type reg_addr: int
          :param reg_value: register value to write
          :type reg_value: int
          :returns: True if write ok or None if fail
          :rtype: bool or None