Index: ControlEx.cpp
===================================================================
--- /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/ControlEx.cpp	(revision 5127)
+++ /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/ControlEx.cpp	(working copy)
@@ -245,10 +245,20 @@
 
 bool ControlEditAscii::valid()
 {
-	if (rawInEdit.length() > 20)
-	{
-		throw QStringLiteral("name的长度不能大于20");
-	}
+    if(m_addressTable->get_control_object_name() == "lineEdit_website")
+    {
+        if (rawInEdit.length() > 40)
+        {
+            throw QStringLiteral("网址的长度不能大于40");
+        }
+    }
+    else
+    {
+        if (rawInEdit.length() > 20)
+        {
+            throw QStringLiteral("蓝牙名的长度不能大于20");
+        }
+    }
 	return true;
 }
 
Index: ParseFlashDatFile.cpp
===================================================================
--- /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/ParseFlashDatFile.cpp	(revision 5127)
+++ /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/ParseFlashDatFile.cpp	(working copy)
@@ -54,201 +54,205 @@
 void ParseFlashDatFile::parseDatFile(QString filePath)
 {
     //获取文件内容
-	rawDataInFile = getFileContent(filePath);
+    rawDataInFile = getFileContent(filePath);
     //解析文件
-	parse(rawDataInFile);
+    parse(rawDataInFile);
 }
 
 bool ParseFlashDatFile::fileExtIsDat(QString in)
 {
-	return in.compare("dat", Qt::CaseInsensitive) == 0;
+    return in.compare("dat", Qt::CaseInsensitive) == 0;
 }
 
 QString ParseFlashDatFile::getFileContent(QString filePath)
 {
-	QFile file(filePath);
-	// 1.是否存在
-	if (!file.exists())
-	{
-		throw FileNotFoundException();
-	}
-
-	// 2.是否包含"."
-	const int indexOfDot = filePath.lastIndexOf(".");
-	if (indexOfDot == -1)
-	{
-		throw QStringLiteral("传入的路径非法:") + filePath;
-	}
-	// 3.是否文件后缀名合法
-	auto theFileSuffixName = filePath.mid(indexOfDot + 1);
-	if (!fileExtIsDat(theFileSuffixName))
-	{
-		throw QStringLiteral("传入的路径后缀非法:") + theFileSuffixName;
-	}
-	// 4.打开文件,处理内容
-	if (file.open(QIODevice::ReadOnly | QIODevice::Text))
-	{
-		QTextStream in(&file);
-		// in.setCodec("UTF-8"); // 如果文件编码不是UTF-8，请根据实际情况设置编码
-
-		QString fileContent;
-		while (!in.atEnd())
-		{
-			QString line = in.readLine();
-			fileContent += line; // 逐行读取并拼接内容
-		}
-
-		// 替换所有换行符（'\n'）为其他内容，例如空格
-		fileContent.replace("\n", "");
-
-		file.close();
-		datFilePath = filePath;
-		return fileContent;
-	}
-	else
-	{
-		throw QStringLiteral("无法打开文件：") + filePath;
-	}
+    QFile file(filePath);
+    // 1.是否存在
+    if (!file.exists())
+    {
+        throw FileNotFoundException();
+    }
+
+    // 2.是否包含"."
+    const int indexOfDot = filePath.lastIndexOf(".");
+    if (indexOfDot == -1)
+    {
+        throw QStringLiteral("传入的路径非法:") + filePath;
+    }
+    // 3.是否文件后缀名合法
+    auto theFileSuffixName = filePath.mid(indexOfDot + 1);
+    if (!fileExtIsDat(theFileSuffixName))
+    {
+        throw QStringLiteral("传入的路径后缀非法:") + theFileSuffixName;
+    }
+    // 4.打开文件,处理内容
+    if (file.open(QIODevice::ReadOnly | QIODevice::Text))
+    {
+        QTextStream in(&file);
+        // in.setCodec("UTF-8"); // 如果文件编码不是UTF-8，请根据实际情况设置编码
+
+        QString fileContent;
+        while (!in.atEnd())
+        {
+            QString line = in.readLine();
+            fileContent += line; // 逐行读取并拼接内容
+        }
+
+        // 替换所有换行符（'\n'）为其他内容，例如空格
+        fileContent.replace("\n", "");
+
+        file.close();
+        datFilePath = filePath;
+        return fileContent;
+    }
+    else
+    {
+        throw QStringLiteral("无法打开文件：") + filePath;
+    }
 }
 
 void ParseFlashDatFile::parse(QString content)
 {
-	QString temp = content;
-	int index1 = 0;
-	// 1. 固定部分
-	// 1.1 偏移量,2byte,4个长度
-	temp = temp.mid(4);
-	// 1.2 程序段 头
-	if (!temp.startsWith(flagStr, Qt::CaseInsensitive))
-	{
-		throw QStringLiteral("非正确开头") + flagStr;
-	}
-	// 1.3 程序段length
-	const int codeLen = parseString2number(temp.mid(4, 4));
-	// 开头2byte偏移量,aa55 (2byte),len( 2byte)+code data (len byte) ,固定不变
-	const int fixLen = 4 + 4 + 4 + codeLen * 2;
-	const QString fixPartStr = content.left(fixLen);
-	// qDebug() << QStringLiteral("fix部分字符串:") << fixPartStr;
-	// QCOMPARE(s1, fixPartStr);
-	m_parts.append(fixPartStr);
-
-	// 2. 数据部分
-	temp = content.mid(fixLen);
-
-	index1 = temp.indexOf(endFlagStr, 0, Qt::CaseInsensitive);
-	if (index1 == -1)
-	{
-		throw QStringLiteral("未找到data结束标识") + endFlagStr;
-	}
-	const QString unitsString = temp.left(index1);
-	// qDebug() << QStringLiteral("unit部分字符串:") << unitsString;
-	// QCOMPARE(s2, unitsString);
-	m_parts.append(unitsString);
-	parseUnitsFromQString(unitsString);
-	// 3. 结束标识
-	m_parts.append(endFlagStr);
-	// 4. checksum
-	temp = temp.mid(index1 + 8);
-	const QString checksumStr = temp.left(4);
-	// qDebug() << QStringLiteral("checksumStr:") << checksumStr;
-	// 5. crc16
-	QString crc = temp.mid(4, 4);
-	// qDebug() << QStringLiteral("crc16:") << crc;
-	m_parts.append(crc); // 直接使用旧的crc16,加载时并不使用
-	// 6. 填充部分，不解析，生成时填充即可。
+    QString temp = content;
+    int index1 = 0;
+    // 1. 固定部分
+    // 1.1 偏移量,2byte,4个长度
+    temp = temp.mid(4);
+    // 1.2 程序段 头
+    if (!temp.startsWith(flagStr, Qt::CaseInsensitive))
+    {
+        throw QStringLiteral("非正确开头") + flagStr;
+    }
+    // 1.3 程序段length
+    const int codeLen = parseString2number(temp.mid(4, 4));
+    // 开头2byte偏移量,aa55 (2byte),len( 2byte)+code data (len byte) ,固定不变
+    const int fixLen = 4 + 4 + 4 + codeLen * 2;
+    const QString fixPartStr = content.left(fixLen);
+    // qDebug() << QStringLiteral("fix部分字符串:") << fixPartStr;
+    // QCOMPARE(s1, fixPartStr);
+    m_parts.append(fixPartStr);
+
+    // 2. 数据部分
+    temp = content.mid(fixLen);
+
+    index1 = temp.indexOf(endFlagStr, 0, Qt::CaseInsensitive);
+    if (index1 == -1)
+    {
+        throw QStringLiteral("未找到data结束标识") + endFlagStr;
+    }
+    const QString unitsString = temp.left(index1);
+    // qDebug() << QStringLiteral("unit部分字符串:") << unitsString;
+    // QCOMPARE(s2, unitsString);
+    m_parts.append(unitsString);
+    parseUnitsFromQString(unitsString);
+    // 3. 结束标识
+    m_parts.append(endFlagStr);
+    // 4. checksum
+    temp = temp.mid(index1 + 8);
+    const QString checksumStr = temp.left(4);
+    // qDebug() << QStringLiteral("checksumStr:") << checksumStr;
+    // 5. crc16
+    QString crc = temp.mid(4, 4);
+    // qDebug() << QStringLiteral("crc16:") << crc;
+    m_parts.append(crc); // 直接使用旧的crc16,加载时并不使用
+    // 6. 填充部分，不解析，生成时填充即可。
 }
 
 QString ParseFlashDatFile::toDatString()
 {
-	QString result = "";
-	QString data = "";
-	// 1.固定部分
-	result += m_parts[0];
-	// 2.数据部分
-	for (auto item : m_units)
-	{
-		data += item.toString();
-	}
-	result += data;
-	// 3.结束标识
-	result += endFlagStr;
-	// 4.checksum
-	result += checksum(data);
-	// 5.crc16
-	result += crc16(result.mid(4));
-	// 6.padding
-	result = paddingString(result);
-	// 7.最后的crc16
-	result += crc16(result.mid(4));
-	return result;
+    QString result = "";
+    QString data = "";
+    // 1.固定部分
+    result += m_parts[0];
+    // 2.数据部分
+    for (auto item : m_units)
+    {
+        data += item.toString();
+    }
+    result += data;
+    // 3.结束标识
+    result += endFlagStr;
+    // 4.checksum
+    result += checksum(data);
+    // 5.crc16
+    result += crc16(result.mid(4));
+    // 6.padding
+    result = paddingString(result);
+    // 7.最后的crc16
+    result += crc16(result.mid(4));
+    return result;
 }
 
 QString ParseFlashDatFile::checksum(QString hexString)
 {
-	QString result;
-	int checksumValue = 0;
-	for (int i = 0; i < hexString.length() / 2; i++)
-	{
-		checksumValue += parseString2number(hexString.mid(i * 2, 2));
-	}
-	result += QString("%1").arg(checksumValue & 0xff, 2, 16, QChar('0'));
-	result += QString("%1").arg((checksumValue >> 8) & 0xff, 2, 16, QChar('0'));
-	return result;
+    QString result;
+    int checksumValue = 0;
+    for (int i = 0; i < hexString.length() / 2; i++)
+    {
+        checksumValue += parseString2number(hexString.mid(i * 2, 2));
+    }
+    result += QString("%1").arg(checksumValue & 0xff, 2, 16, QChar('0'));
+    result += QString("%1").arg((checksumValue >> 8) & 0xff, 2, 16, QChar('0'));
+    return result;
 }
 
 QString ParseFlashDatFile::crc16(QString hexString)
 {
-	QString result;
-	int crc16 = 0xffff;
-	for (int i = 0; i < hexString.length() / 2; i++)
-	{
-		int curLine = parseString2number(hexString.mid(i * 2, 2));
-		crc16 = (crc16 >> 8) | (crc16 << 8);
-		crc16 ^= curLine & 0xff;
-		crc16 ^= (crc16 & 0xff) >> 4;
-		crc16 ^= crc16 << 12;
-		crc16 ^= (crc16 & 0xff) << 5;
-		crc16 &= 0xffff;
-	}
-
-	result += QString("%1").arg((crc16 >> 8) & 0xff, 2, 16, QChar('0'));
-	result += QString("%1").arg(crc16 & 0xff, 2, 16, QChar('0'));
-	return result;
+    QString result;
+    int crc16 = 0xffff;
+    for (int i = 0; i < hexString.length() / 2; i++)
+    {
+        int curLine = parseString2number(hexString.mid(i * 2, 2));
+        crc16 = (crc16 >> 8) | (crc16 << 8);
+        crc16 ^= curLine & 0xff;
+        crc16 ^= (crc16 & 0xff) >> 4;
+        crc16 ^= crc16 << 12;
+        crc16 ^= (crc16 & 0xff) << 5;
+        crc16 &= 0xffff;
+    }
+
+    result += QString("%1").arg((crc16 >> 8) & 0xff, 2, 16, QChar('0'));
+    result += QString("%1").arg(crc16 & 0xff, 2, 16, QChar('0'));
+    return result;
 }
 
 QByteArray ParseFlashDatFile::getData(AddressTable* m_addressTable)
 {
-	const int bitLength = m_addressTable->get_bit_width();
-	const int addr = m_addressTable->get_address();
-	const int startBitOffset = m_addressTable->get_start_bit_index();
-
-	qDebug() << QStringLiteral("实际的addr:") << parseNumber2HexQstring(addr, 2, false);
-	qDebug() << QStringLiteral("startBitOffset:") << startBitOffset;
-	qDebug() << QStringLiteral("bitLength:") << bitLength;
-
-
-	for (int i = 0; i < m_units.count(); i++)
-	{
-		const int curAddress = m_units[i].get_m_address();
-		const int dateLenBytes = m_units[i].get_m_data_len();
-		if ((curAddress + dateLenBytes) > addr && curAddress <= addr)
-		{
-			auto m_data = m_units[i].get_m_data();
-			if (bitLength < 8) // bit操作
-			{
-				quint8 byteValue = static_cast<quint8>(m_data[addr - curAddress]);
-				// 创建一个位掩码，将要获取的位设置为1
-				quint8 bitMask = ((1 << bitLength) - 1) << startBitOffset;
-				int bitValue = (byteValue & bitMask) >> startBitOffset;
-				return QByteArray::fromHex(parseNumber2HexQstring(bitValue, 1).toLatin1());
-			}
-			else // byte操作
-			{
-				int byteNumber = bitLength / 8;
-				return m_data.mid(startBitOffset + (addr - curAddress), byteNumber);
-			}
-		}
-	}
+    const int bitLength = m_addressTable->get_bit_width();
+    const int addr = m_addressTable->get_address();
+    const int startBitOffset = m_addressTable->get_start_bit_index();
+
+    qDebug() << QStringLiteral("实际的addr:") << parseNumber2HexQstring(addr, 2, false);
+    qDebug() << QStringLiteral("startBitOffset:") << startBitOffset;
+    qDebug() << QStringLiteral("bitLength:") << bitLength;
+
+
+    for (int i = 0; i < m_units.count(); i++)
+    {
+        const int curAddress = m_units[i].get_m_address();
+        const int dateLenBytes = m_units[i].get_m_data_len();
+        if ((curAddress + dateLenBytes) > addr && curAddress <= addr)
+        {
+            auto m_data = m_units[i].get_m_data();
+            if (bitLength < 8) // bit操作
+            {
+                quint8 byteValue = static_cast<quint8>(m_data[addr - curAddress]);
+                // 创建一个位掩码，将要获取的位设置为1
+                quint8 bitMask = ((1 << bitLength) - 1) << startBitOffset;
+                int bitValue = (byteValue & bitMask) >> startBitOffset;
+                return QByteArray::fromHex(parseNumber2HexQstring(bitValue, 1).toLatin1());
+            }
+            else // byte操作
+            {
+                if(addr == 0x4df7 && addr != curAddress)
+                {
+                    return QByteArray::fromHex("55aa"); //网址变量公版SDK没有 会出现不兼容 这里进行特别处理
+                }
+                int byteNumber = bitLength / 8;
+                return m_data.mid(startBitOffset + (addr - curAddress), byteNumber);
+            }
+        }
+    }
     qDebug()<<"error address:"<<addr;
 
     return QByteArray::fromHex("55aa");
@@ -259,169 +263,169 @@
 
 QString ParseFlashDatFile::paddingString(QString rawString)
 {
-	QString result = rawString;
-	int targetStringLength = 8190 * 2;
-	int currentLength = rawString.length();
-	int toPaddingLength = targetStringLength - currentLength;
-	for (int i = 0; i < toPaddingLength; i++)
-	{
-		result += "f";
-	}
-	return result;
+    QString result = rawString;
+    int targetStringLength = 8190 * 2;
+    int currentLength = rawString.length();
+    int toPaddingLength = targetStringLength - currentLength;
+    for (int i = 0; i < toPaddingLength; i++)
+    {
+        result += "f";
+    }
+    return result;
 }
 
 void ParseFlashDatFile::parseUnitsFromQString(QString raw)
 {
-	m_units.clear();
-	QString temp = raw;
-	// 以aa55开头
-	while (temp.startsWith(flagStr))
-	{
-		// 解析当前unit单元
-		int unitLen = parseString2number(temp.mid(4, 4));
-		int addr = parseString2number(temp.mid(8, 4));
-		QString unitData = temp.mid(12, unitLen * 2);
-		auto t = UnitItem(addr, unitData);
-		m_units.append(t);
-		// 不需要维护key的顺序,默认升序,便于查找不能直接找到的addr
-		m_unitMap[addr] = t;
-		temp = temp.mid(12 + unitLen * 2);
-	}
+    m_units.clear();
+    QString temp = raw;
+    // 以aa55开头
+    while (temp.startsWith(flagStr))
+    {
+        // 解析当前unit单元
+        int unitLen = parseString2number(temp.mid(4, 4));
+        int addr = parseString2number(temp.mid(8, 4));
+        QString unitData = temp.mid(12, unitLen * 2);
+        auto t = UnitItem(addr, unitData);
+        m_units.append(t);
+        // 不需要维护key的顺序,默认升序,便于查找不能直接找到的addr
+        m_unitMap[addr] = t;
+        temp = temp.mid(12 + unitLen * 2);
+    }
     //if (!temp.isEmpty()) throw QStringLiteral("未正确解析") + s2;
    // if(!temp.isEmpty())
 }
 
 QString ParseFlashDatFile::genDatFile(QString content)
 {
-	auto taretString = format(content);
+    auto taretString = format(content);
 
-	auto result = genFilePath();
-	// 创建一个QFile对象并打开文件（如果文件不存在，会自动创建）
-	result = debug() ? "flash1.dat" : result;
-	QFile file(result);
-
-	if (file.open(QIODevice::WriteOnly | QIODevice::Text))
-	{
-		// 创建一个QTextStream对象，将其与文件关联
-		QTextStream out(&file);
-
-		// 将QString写入文件
-		out << taretString;
-
-		// 关闭文件
-		file.close();
-
-		qDebug() << "QString successfully written to file.";
-		return result;
-	}
-	else
-	{
-		throw "Failed to open file for writing.";
-	}
+    auto result = genFilePath();
+    // 创建一个QFile对象并打开文件（如果文件不存在，会自动创建）
+    result = debug() ? "flash1.dat" : result;
+    QFile file(result);
+
+    if (file.open(QIODevice::WriteOnly | QIODevice::Text))
+    {
+        // 创建一个QTextStream对象，将其与文件关联
+        QTextStream out(&file);
+
+        // 将QString写入文件
+        out << taretString;
+
+        // 关闭文件
+        file.close();
+
+        qDebug() << "QString successfully written to file.";
+        return result;
+    }
+    else
+    {
+        throw "Failed to open file for writing.";
+    }
 }
 
 QString ParseFlashDatFile::genDatFile()
 {
-	return genDatFile(toDatString());
+    return genDatFile(toDatString());
 }
 
 QString ParseFlashDatFile::genFilePath()
 {
-	if (datFilePath.isEmpty())
-	{
-		throw QStringLiteral("dat文件路径为空");
-	}
-	int index = datFilePath.lastIndexOf(".");
-	QString result = datFilePath;
-	result.insert(index, "_" + now());
-	qDebug() << QStringLiteral("生成的新文件路径:") << result;
-	return result;
+    if (datFilePath.isEmpty())
+    {
+        throw QStringLiteral("dat文件路径为空");
+    }
+    int index = datFilePath.lastIndexOf(".");
+    QString result = datFilePath;
+    result.insert(index, "_" + now());
+    qDebug() << QStringLiteral("生成的新文件路径:") << result;
+    return result;
 }
 
 int ParseFlashDatFile::dynamicFindTargetAddr(int addr)
 {
-	int count = m_unitMap.count();
-	QList<int> sortedKeys = m_unitMap.keys();
+    int count = m_unitMap.count();
+    QList<int> sortedKeys = m_unitMap.keys();
 
-	for (int i = 0; i < count - 1; i++)
-	{
-		if (addr > sortedKeys[i] && addr < sortedKeys[i + 1])
-		{
-			return sortedKeys[i + 1];
-		}
-	}
-	return sortedKeys[count - 1];
+    for (int i = 0; i < count - 1; i++)
+    {
+        if (addr > sortedKeys[i] && addr < sortedKeys[i + 1])
+        {
+            return sortedKeys[i + 1];
+        }
+    }
+    return sortedKeys[count - 1];
 }
 
 QString ParseFlashDatFile::format(QString content)
 {
-	QString formattedHexString;
-	for (int i = 0; i < content.length(); i += 2)
-	{
-		formattedHexString += content.mid(i, 2) + "\n";
-	}
-	return formattedHexString;
+    QString formattedHexString;
+    for (int i = 0; i < content.length(); i += 2)
+    {
+        formattedHexString += content.mid(i, 2) + "\n";
+    }
+    return formattedHexString;
 }
 
 void ParseFlashDatFile::setData(AddressTable* m_addressTable, QByteArray value)
 {
-	int addr = m_addressTable->get_address();
-	qDebug() << QStringLiteral("当前地址传入的地址:") << parseNumber2HexQstring(addr, 2, false);
-	// 使用foreach拿到是元素的副本.不修改m_units的值
-	for (int i = 0; i < m_units.count(); i++)
-	{
-		const int curAddress = m_units[i].get_m_address();
-		const int dateLenBytes = m_units[i].get_m_data_len();
-		if ((curAddress + dateLenBytes) > addr && curAddress <= addr)
-		{
-			m_units[i].setData(m_addressTable, value);
-			if (debug()) genDatFile();
-			break;
-		}
-	}
+    int addr = m_addressTable->get_address();
+    qDebug() << QStringLiteral("当前地址传入的地址:") << parseNumber2HexQstring(addr, 2, false);
+    // 使用foreach拿到是元素的副本.不修改m_units的值
+    for (int i = 0; i < m_units.count(); i++)
+    {
+        const int curAddress = m_units[i].get_m_address();
+        const int dateLenBytes = m_units[i].get_m_data_len();
+        if ((curAddress + dateLenBytes) > addr && curAddress <= addr)
+        {
+            m_units[i].setData(m_addressTable, value);
+            if (debug()) genDatFile();
+            break;
+        }
+    }
 }
 
 void ParseFlashDatFile::setData(ControlBase* m_controlBase)
 {
-	m_controlBase->tryToModifyAddressTable();
-	QByteArray bytes = m_controlBase->result();
-	qDebug() << QStringLiteral("修改后的hex:") << bytes.toHex();
-	setData(m_controlBase->m_addressTable, bytes);
+    m_controlBase->tryToModifyAddressTable();
+    QByteArray bytes = m_controlBase->result();
+    qDebug() << QStringLiteral("修改后的hex:") << bytes.toHex();
+    setData(m_controlBase->m_addressTable, bytes);
 }
 
 
 UnitItem::UnitItem()
 {
-	m_dataLen = 0;
-	m_address = 0;
+    m_dataLen = 0;
+    m_address = 0;
 }
 
 UnitItem::UnitItem(const UnitItem& unit)
 {
-	headStr = unit.headStr;
-	m_headStr = unit.m_headStr;
-	m_dataLen = unit.m_dataLen;
-	m_address = unit.m_address;
-	m_data = unit.m_data;
+    headStr = unit.headStr;
+    m_headStr = unit.m_headStr;
+    m_dataLen = unit.m_dataLen;
+    m_address = unit.m_address;
+    m_data = unit.m_data;
 }
 
 UnitItem& UnitItem::operator=(const UnitItem& unitEx)
 {
-	if (this != &unitEx)
-	{
-		m_headStr = unitEx.m_headStr;
-		headStr = unitEx.headStr;
-		m_headStr = unitEx.m_headStr;
-		m_address = unitEx.m_address;
-		m_data = unitEx.m_data;
-	}
-	return *this;
+    if (this != &unitEx)
+    {
+        m_headStr = unitEx.m_headStr;
+        headStr = unitEx.headStr;
+        m_headStr = unitEx.m_headStr;
+        m_address = unitEx.m_address;
+        m_data = unitEx.m_data;
+    }
+    return *this;
 }
 
 UnitItem::UnitItem(int addr, QString dataStr)
 {
-	m_address = addr;
-	setData(dataStr);
+    m_address = addr;
+    setData(dataStr);
 }
 
 UnitItem::~UnitItem()
@@ -430,152 +434,152 @@
 
 void UnitItem::setData(QString dataValue)
 {
-	m_data = QByteArray::fromHex(dataValue.toLocal8Bit());
-	m_dataLen = m_data.size();
+    m_data = QByteArray::fromHex(dataValue.toLocal8Bit());
+    m_dataLen = m_data.size();
 }
 
 void UnitItem::setData(AddressTable* m_addressTable, QByteArray value)
 {
-	const int bitWidth = m_addressTable->get_bit_width();
-	const int theActualAddress = m_addressTable->get_address();
-	const int startBit = m_addressTable->get_start_bit_index();
-	const bool dynimacLength = m_addressTable->is_dynimac_date_len();
-
-	if (bitWidth < 8) // 修改某个bit
-	{
-		if (value.isEmpty())
-		{
-			throw QStringLiteral("传入的value为空");
-		}
-
-		int theActualOffsetByte = (theActualAddress - m_address);
-		byte toModify = m_data[theActualOffsetByte];
-		// 创建一个位掩码，将指定位范围清零
-		quint8 clearMask = ~(static_cast<quint8>((1 << bitWidth) - 1) << startBit);
-
-		// 清除指定位范围
-		toModify &= clearMask;
-
-		// 创建一个位掩码，将新值放入指定位范围
-		quint8 setMask = (value.at(0) << startBit);
-
-		// 设置新值到字节中
-		toModify |= setMask;
-		m_data[theActualOffsetByte] = toModify;
-	}
-	else // 修改byte数组
-	{
-		const int toModifyByteCount = (bitWidth + 7) / 8;
-		qDebug() << QStringLiteral("修改数据时,m_data的长度为:") << m_data.length() << QStringLiteral("传入的value的长度:") <<
-			toModifyByteCount;
-		if (dynimacLength)
-		{
-			m_data.resize(toModifyByteCount);
-			m_dataLen = toModifyByteCount;
-		}
-		int j = 0;
-		for (int i = startBit; i < toModifyByteCount + startBit; i++)
-		{
-			m_data[i + (theActualAddress - m_address)] = value[j++];
-		}
-	}
+    const int bitWidth = m_addressTable->get_bit_width();
+    const int theActualAddress = m_addressTable->get_address();
+    const int startBit = m_addressTable->get_start_bit_index();
+    const bool dynimacLength = m_addressTable->is_dynimac_date_len();
+
+    if (bitWidth < 8) // 修改某个bit
+    {
+        if (value.isEmpty())
+        {
+            throw QStringLiteral("传入的value为空");
+        }
+
+        int theActualOffsetByte = (theActualAddress - m_address);
+        byte toModify = m_data[theActualOffsetByte];
+        // 创建一个位掩码，将指定位范围清零
+        quint8 clearMask = ~(static_cast<quint8>((1 << bitWidth) - 1) << startBit);
+
+        // 清除指定位范围
+        toModify &= clearMask;
+
+        // 创建一个位掩码，将新值放入指定位范围
+        quint8 setMask = (value.at(0) << startBit);
+
+        // 设置新值到字节中
+        toModify |= setMask;
+        m_data[theActualOffsetByte] = toModify;
+    }
+    else // 修改byte数组
+    {
+        const int toModifyByteCount = (bitWidth + 7) / 8;
+        qDebug() << QStringLiteral("修改数据时,m_data的长度为:") << m_data.length() << QStringLiteral("传入的value的长度:") <<
+            toModifyByteCount;
+        if (dynimacLength)
+        {
+            m_data.resize(toModifyByteCount);
+            m_dataLen = toModifyByteCount;
+        }
+        int j = 0;
+        for (int i = startBit; i < toModifyByteCount + startBit; i++)
+        {
+            m_data[i + (theActualAddress - m_address)] = value[j++];
+        }
+    }
 }
 
 QString UnitItem::toString()
 {
-	QString result("");
-	result.append(m_headStr);
-	result.append(parseNumber2HexQstring(m_dataLen));
-	result.append(parseNumber2HexQstring(m_address));
-	result.append(m_data.toHex());
-	return result;
+    QString result("");
+    result.append(m_headStr);
+    result.append(parseNumber2HexQstring(m_dataLen));
+    result.append(parseNumber2HexQstring(m_address));
+    result.append(m_data.toHex());
+    return result;
 }
 
 void UnitItem::parseRightTargetString()
 {
-	QString str("aa5501009a4008");
-	if (!str.startsWith(m_headStr, Qt::CaseInsensitive))
-	{
-		throw QStringLiteral("非以") + m_headStr + QStringLiteral("开头");
-	}
-	// head
-	headStr = m_headStr;
-	// data len
-	str = str.mid(4);
-	m_dataLen = parseString2number(str.left(4));
-	str = str.mid(4);
-	// address
-	m_address = parseString2number(str.left(4));
-	str = str.mid(4);
-	// data
-	m_data = QByteArray::fromHex(str.toLocal8Bit());
-	// 校验data的实际长度和传入的长度
-	if (m_data.length() / 2 != m_dataLen)
-	{
-		throw QStringLiteral("数据部分的实际长度和传入的长度不符");
-	}
+    QString str("aa5501009a4008");
+    if (!str.startsWith(m_headStr, Qt::CaseInsensitive))
+    {
+        throw QStringLiteral("非以") + m_headStr + QStringLiteral("开头");
+    }
+    // head
+    headStr = m_headStr;
+    // data len
+    str = str.mid(4);
+    m_dataLen = parseString2number(str.left(4));
+    str = str.mid(4);
+    // address
+    m_address = parseString2number(str.left(4));
+    str = str.mid(4);
+    // data
+    m_data = QByteArray::fromHex(str.toLocal8Bit());
+    // 校验data的实际长度和传入的长度
+    if (m_data.length() / 2 != m_dataLen)
+    {
+        throw QStringLiteral("数据部分的实际长度和传入的长度不符");
+    }
 }
 
 void UnitItem::parseShortString()
 {
-	try
-	{
-		QString str("aa5501009a40");
-		if (!str.startsWith(m_headStr, Qt::CaseInsensitive))
-		{
-			throw QStringLiteral("非以") + m_headStr + QStringLiteral("开头");
-		}
-		// head
-		headStr = m_headStr;
-		// data len
-		str = str.mid(4);
-		m_dataLen = parseString2number(str.left(4));
-		str = str.mid(4);
-		// address
-		m_address = parseString2number(str.left(4));
-		str = str.mid(4);
-		// data
-		m_data = QByteArray::fromHex(str.toLocal8Bit());
-		// 校验data的实际长度和传入的长度
-		if (m_data.length() / 2 != m_dataLen)
-		{
-			throw QStringLiteral("数据部分的实际长度和传入的长度不符");
-		}
-	}
-	catch (const QString& exceptionMessage)
-	{
-		qDebug() << exceptionMessage;
-	}
+    try
+    {
+        QString str("aa5501009a40");
+        if (!str.startsWith(m_headStr, Qt::CaseInsensitive))
+        {
+            throw QStringLiteral("非以") + m_headStr + QStringLiteral("开头");
+        }
+        // head
+        headStr = m_headStr;
+        // data len
+        str = str.mid(4);
+        m_dataLen = parseString2number(str.left(4));
+        str = str.mid(4);
+        // address
+        m_address = parseString2number(str.left(4));
+        str = str.mid(4);
+        // data
+        m_data = QByteArray::fromHex(str.toLocal8Bit());
+        // 校验data的实际长度和传入的长度
+        if (m_data.length() / 2 != m_dataLen)
+        {
+            throw QStringLiteral("数据部分的实际长度和传入的长度不符");
+        }
+    }
+    catch (const QString& exceptionMessage)
+    {
+        qDebug() << exceptionMessage;
+    }
 }
 
 void UnitItem::parseLongString()
 {
-	try
-	{
-		QString str("aa5501009a400102");
-		if (!str.startsWith(m_headStr, Qt::CaseInsensitive))
-		{
-			throw QStringLiteral("非以") + m_headStr + QStringLiteral("开头");
-		}
-		// head
-		headStr = m_headStr;
-		// data len
-		str = str.mid(4);
-		m_dataLen = parseString2number(str.left(4));
-		str = str.mid(4);
-		// address
-		m_address = parseString2number(str.left(4));
-		str = str.mid(4);
-		// data
-		m_data = QByteArray::fromHex(str.toLocal8Bit());
-		// 校验data的实际长度和传入的长度
-		if (m_data.length() / 2 != m_dataLen)
-		{
-			throw QStringLiteral("数据部分的实际长度和传入的长度不符");
-		}
-	}
-	catch (const QString& exceptionMessage)
-	{
-		qDebug() << exceptionMessage;
-	}
+    try
+    {
+        QString str("aa5501009a400102");
+        if (!str.startsWith(m_headStr, Qt::CaseInsensitive))
+        {
+            throw QStringLiteral("非以") + m_headStr + QStringLiteral("开头");
+        }
+        // head
+        headStr = m_headStr;
+        // data len
+        str = str.mid(4);
+        m_dataLen = parseString2number(str.left(4));
+        str = str.mid(4);
+        // address
+        m_address = parseString2number(str.left(4));
+        str = str.mid(4);
+        // data
+        m_data = QByteArray::fromHex(str.toLocal8Bit());
+        // 校验data的实际长度和传入的长度
+        if (m_data.length() / 2 != m_dataLen)
+        {
+            throw QStringLiteral("数据部分的实际长度和传入的长度不符");
+        }
+    }
+    catch (const QString& exceptionMessage)
+    {
+        qDebug() << exceptionMessage;
+    }
 }
Index: Ttile1.cpp
===================================================================
--- /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/Ttile1.cpp	(revision 5127)
+++ /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/Ttile1.cpp	(working copy)
@@ -37,270 +37,6 @@
     connect(this, SIGNAL(modifyVoltageSignal(QWidget*, QByteArray, QWidget*)), this->m_advancedConfigurationDlg1, SLOT(modifyVoltageSlot(QWidget*, QByteArray, QWidget* )));
 
     set_ControlBase();
-//	const Ui::MouseConfigTool* mainUi = m_MouseConfigTool1->getUi();
-//	const Ui::advancedConfigurationDlg* advancedConfigDlgUi = m_advancedConfigurationDlg1->getUi();
-
-//	// 主界面配置
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_theDefaultMode,
-//	                                      new AddressTable(0x4938, 0, 8, "comboBox_theDefaultMode"),
-//	                                      QList<int>() << 0 << 1));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_bluetoothBroadcastType,
-//	                                      new AddressTable(0x4bb3, 0, 8, "comboBox_bluetoothBroadcastType"),
-//	                                      QList<int>() << 1 << 2 << 3));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_maximumNumberOfChannels,
-//	                                      new AddressTable(0x4bb4, 0, 8, "comboBox_maximumNumberOfChannels"),
-//	                                      QList<int>() << 1 << 2 << 3));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_crystalFrequency,
-//	                                      new AddressTable(0x4bac, 4, 1, "comboBox_crystalFrequency"),
-//	                                      QList<int>() << 1 << 0));
-//	m_controls.append(new ControlCheckBox(mainUi->groupBox_customKeyEnable,
-//	                                      new AddressTable(0x4bad, 5, 1, "groupBox_customKeyEnable")));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_numberOfDpiGears,
-//	                                      new AddressTable(0x4bae, 4, 1, "comboBox_numberOfDpiGears"),
-//	                                      QList<int>() << 0 << 1));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_modeSwitch,
-//	                                      new AddressTable(0x4bb0, 0, 3, "comboBox_modeSwitch"),
-//	                                      QList<int>() << 0 << 1 << 2 << 4));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_theDpiKeyIsGrounded,
-//	                                      new AddressTable(0x4bb0, 4, 1, "checkBox_theDpiKeyIsGrounded")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_pbKeyGrounding,
-//	                                      new AddressTable(0x4bb0, 5, 1, "checkBox_pbKeyGrounding")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_24gFirst,
-//	                                      new AddressTable(0x4bb0, 7, 1, "checkBox_24gFirst")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_noPairs,
-//	                                      new AddressTable(0x4bb1, 0, 1, "checkBox_noPairs")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_poweronCombinationKeyPairCode,
-//	                                      new AddressTable(0x4bb1, 1, 1, "checkBox_poweronCombinationKeyPairCode")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_backToTheCompanyFailedToBroadcast,
-//	                                      new AddressTable(0x4bb1, 3, 1,
-//	                                                       "checkBox_backToTheCompanyFailedToBroadcast")));
-//	m_controls.append(new ControlCheckBox(mainUi->groupBox_keyCombinationBroadcast,
-//	                                      new AddressTable(0x4bb1, 5, 1, "groupBox_keyCombinationBroadcast")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_longPressDpiToBroadcast,
-//	                                      new AddressTable(0x4bb1, 6, 1, "checkBox_longPressDpiToBroadcast")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_pbKeyLongPressBroadcast,
-//	                                      new AddressTable(0x4bb1, 7, 1, "checkBox_pbKeyLongPressBroadcast")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_theFirstFreeRightCode,
-//	                                      new AddressTable(0x4bb2, 2, 1, "checkBox_theFirstFreeRightCode")));
-//	m_controls.append(new ControlCheckBox(mainUi->groupBox_ledLampEnable,
-//	                                      new AddressTable(0x4c40, 0, 1, "groupBox_ledLampEnable")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_reconnectLampEfficiencyEnable,
-//	                                      new AddressTable(0x4c40, 1, 1, "checkBox_reconnectLampEfficiencyEnable")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_limitTheNumberOfFlickerTimesOfReconnect,
-//	                                      new AddressTable(0x4c40, 2, 1,
-//	                                                       "checkBox_limitTheNumberOfFlickerTimesOfReconnect")));
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_DpiDoubleEnable,
-//                                          new AddressTable(0x4bb2, 5, 1,
-//                                                           "checkBox_DpiDoubleEnable")));
-//    m_controls.append(new ControlComboBox(mainUi->comboBox_SensorTyoeSelect,
-//                                          new AddressTable(0x4dcf, 1, 8, "comboBox_SensorTyoeSelect"),
-//                                          QList<int>() << 0 << 1 << 2));
-//    //灯高/低亮
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_LogoLedHighlight,
-//                                          new AddressTable(0x4bed, 7, 1, "checkBox_LogoLedHighlight")));
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_24GLedHighlight,
-//                                         new AddressTable(0x4c55, 7, 1, "checkBox_24GLedHighlight")));
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_Bt1LedHighlight,
-//                                         new AddressTable(0x4c56, 7, 1, "checkBox_Bt1LedHighlight")));
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_Bt2LedHighlight,
-//                                         new AddressTable(0x4c57, 7, 1, "checkBox_Bt2LedHighlight")));
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_DpiLedHighlight,
-//                                          new AddressTable(0x4c59, 7, 1, "checkBox_DpiLedHighlight")));
-
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_DpiAnothorKey_Conn_Vdd,
-//                                          new AddressTable(0x4c3b, 7, 1, "checkBox_DpiAnothorKey_Conn_Vdd")));
-
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_FierKey_Conn_Vdd,
-//                                          new AddressTable(0x4c38, 7, 1, "checkBox_FierKey_Conn_Vdd")));
-
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_customKey_conn_Vdd,
-//                                          new AddressTable(0x4912, 7, 1, "checkBox_customKey_conn_Vdd")));
-
-
-//    /*添加关联的slot事情*/
-//    m_controls.append(new ControlCheckBox(mainUi->checkBox_1io_to_2led_reuse,
-//                                          new AddressTable(0x4c40, 5, 1, "checkBox_1io_to_2led_reuse")));
-//	m_controls.append(new ControlCheckBox(mainUi->checkBox_lowFlickerFrequencyLimit,
-//	                                      new AddressTable(0x4c40, 4, 1, "checkBox_lowFlickerFrequencyLimit")));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_radioModeKeyCombination,
-//	                                      new AddressTable(0x4bca, 0, 8, "comboBox_radioModeKeyCombination"),
-//	                                      QList<int>() << 3 << 5 << 6 << 7));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_keyPairCodeCombination,
-//	                                      new AddressTable(0x4bcb, 0, 8, "comboBox_keyPairCodeCombination"),
-//	                                      QList<int>() << 3 << 5 << 6 << 7));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_logoLampGpio,
-//	                                     new AddressTable(0x4bed, 0, 8, "lineEdit_logoLampGpio")));
-
-//    m_controls.append(new ControlEditHex(mainUi->lineEdit_24gLight,
-//                                         new AddressTable(0x4c55, 0, 8, "lineEdit_24gLight")));
-
-//    m_controls.append(new ControlEditHex(mainUi->lineEdit_bluetooth1Lamp,
-//                                         new AddressTable(0x4c56, 0, 8, "lineEdit_bluetooth1Lamp")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_bluetooth2Lamp,
-//	                                     new AddressTable(0x4c57, 0, 8, "lineEdit_bluetooth2Lamp")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_dpiLamp, new AddressTable(0x4c59, 0, 8, "lineEdit_dpiLamp")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_b4Key, new AddressTable(0x490d, 0, 8, "lineEdit_b4Key")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_b5Key, new AddressTable(0x490e, 0, 8, "lineEdit_b5Key")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_dpiAddKey,
-//	                                     new AddressTable(0x490f, 0, 8, "lineEdit_dpiAddKey")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_publicFeet,
-//	                                     new AddressTable(0x4910, 0, 8, "lineEdit_publicFeet")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_customKeyGpio,
-//	                                     new AddressTable(0x4912, 0, 8, "lineEdit_customKeyGpio")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_positiveRollerAKey,
-//	                                     new AddressTable(0x4913, 0, 8, "lineEdit_positiveRollerAKey")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_positiveRollerBKey,
-//	                                     new AddressTable(0x4914, 0, 8, "lineEdit_positiveRollerBKey")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_selectGpioForOrientation,
-//	                                     new AddressTable(0x4917, 0, 8, "lineEdit_selectGpioForOrientation")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_leftKey, new AddressTable(0x4918, 0, 8, "lineEdit_leftKey")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_rightKey, new AddressTable(0x4919, 0, 8, "lineEdit_rightKey")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_middleKey,
-//	                                     new AddressTable(0x491a, 0, 8, "lineEdit_middleKey")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_pbKey, new AddressTable(0x491b, 0, 8, "lineEdit_pbKey")));
-//    m_controls.append(new ControlEditHex(mainUi->lineEdit_FireKey, new AddressTable(0x4c38, 0, 8, "lineEdit_FireKey")));
-//	m_controls.append(new ControlEditHex(mainUi->lineEdit_flipTheSwitch,
-//	                                     new AddressTable(0x491e, 0, 8, "lineEdit_flipTheSwitch")));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_inTheAir,
-//                                          new AddressTable(0x4924, 0, 8, "comboBox_inTheAir"),
-//	                                      QList<int>() << 3 << 0 << 1 << 2 ));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_theDefaultDpiFile,
-//	                                      new AddressTable(0x4926, 0, 8, "comboBox_theDefaultDpiFile"),
-//	                                      QList<int>() << 0 << 1));
-
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_modeLampReuse,
-//	                                      new AddressTable(0x4c45, 0, 8, "comboBox_modeLampReuse"),
-//	                                      QList<int>() << 0 << 1 << 2 << 3));
-//    m_controls.append(new ControlEditHex(mainUi->lineEdit_DpiAnotherKey,
-//                                         new AddressTable(0x4c3b, 0,8, "lineEdit_DpiAnotherKey")));
-//    m_controls.append(new ControlComboBox(mainUi->comboBox_24GRateReturn,
-//                                          new AddressTable(0x4bae, 0, 1, "comboBox_24GRateReturn"),
-//                                          QList<int>() << 0 << 1));
-//    m_controls.append(new ControlCheckBox(mainUi->groupBox_24GSearchDongleEnable,
-//                                          new AddressTable(0x4bad, 6, 1, "groupBox_24GSearchDongleEnable")));
-//    m_controls.append(new ControlEditInt(mainUi->lineEdit_24GSearchTimer,
-//                                         new AddressTable(0x4bbc, 0, 16, "lineEdit_24GSearchTimer"), 10, 2));
-//	// 高级配置
-//    m_controls.append(new ControlComboBox(advancedConfigDlgUi->comboBox_adcSamplingMode_3,
-//                                          new AddressTable(0x48fd, 0, 8, "comboBox_adcSamplingMode_3"),
-//                                          QList<int>() << 2 << 1));
-//    m_controls.append(new ControlCheckBox(advancedConfigDlgUi->groupBox_lowPowerEnable_2,
-//                                          new AddressTable(0x4bad, 4, 1, "groupBox_lowPowerEnable_2")));
-//    m_controls.append(new ControlCheckBox(advancedConfigDlgUi->groupBox_lowLightEnable_3,
-//                                          new AddressTable(0x4c40, 3, 1, "groupBox_lowLightEnable_3")));
-//    m_controls.append(new ControlEditHex(advancedConfigDlgUi->lineEdit_lowLightGpio_3,
-//                                         new AddressTable(0x4c58, 0, 8, "lineEdit_lowLightGpio_3")));
-
-
-
-
-//    m_controls.append(new ControlComboBox(advancedConfigDlgUi->comboBox_DpiSelectCombination,
-//                                          new AddressTable(0x4d98, 0, 8, "comboBox_DpiSelectCombination"),
-//                                          QList<int>() << 0xff << 3 << 5 << 6 << 7 )); //dpi组合键
-//    m_controls.append(new ControlComboBox(advancedConfigDlgUi->comboBox_LogoLedControlCombination,
-//                                          new AddressTable(0x4da3,0, 8, "comboBox_LogoLedControlCombination"),
-//                                          QList<int>() << 0xff << 3 << 5 << 6 << 7 )); //Logo灯组合键
-//    m_controls.append(new ControlComboBox(advancedConfigDlgUi->comboBox_ModeSelectCombination,
-//                                          new AddressTable(0x4da3, 1, 8, "comboBox_ModeSelectCombination"),
-//                                          QList<int>() << 0xff << 3 << 5 << 6 << 7 )); //模式切换组合键
-
-//    m_controls.append(new ControlComboBox(advancedConfigDlgUi->comboBox_Logo_led_reuse,
-//                                          new AddressTable(0x4dcf, 0, 8, "comboBox_Logo_led_reuse"),
-//                                          QList<int>() << 0 << 1 << 2 << 3)); //Logo灯复用类型
-//    m_controls.append(new ControlComboBox(advancedConfigDlgUi->comboBox_Logo_led_control,
-//                                          new AddressTable(0x4da2, 1, 2, "comboBox_Logo_led_control"),
-//                                          QList<int>() << 0 << 1 << 2)); //Logo灯控制类型
-//	m_controls.append(new ControlCheckBox(advancedConfigDlgUi->checkBox_smoothAlgorithm,
-//                                          new AddressTable(0x4bb2, 0, 2, "checkBox_smoothAlgorithm")));
-
-//    // m_controls.append(new ControlCheckBox(advancedConfigDlgUi->checkBox_smoothAlgorithm,
-//    //                                       new AddressTable(0x4bb2, 1, 1, "checkBox_smoothAlgorithm")));
-
-//	m_controls.append(new ControlCheckBox(advancedConfigDlgUi->checkBox_cancelTheBatteryReport,
-//                                          new AddressTable(0x4bb2, 3, 1, "checkBox_cancelTheBatteryReport")));
-//    m_controls.append(new ControlCheckBox(advancedConfigDlgUi->checkBox_BtNameEnable, //蓝牙名字使能
-//                                          new AddressTable(0x4da6, 0, 8, "checkBox_BtNameEnable")));
-//    m_controls.append(new ControlCheckBox(advancedConfigDlgUi->checkBox_LogoLedMemory, //Logo灯记忆使能
-//                                          new AddressTable(0x4da2, 0, 1, "checkBox_LogoLedMemory")));
-//	m_controls.append(new ControlEditHex(advancedConfigDlgUi->lineEdit_clockGpio,
-//	                                     new AddressTable(0x491f, 0, 8, "lineEdit_clockGpio")));
-//	m_controls.append(new ControlEditHex(advancedConfigDlgUi->lineEdit_sdioGpio,
-//	                                     new AddressTable(0x4920, 0, 8, "lineEdit_sdioGpio")));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_directionOfGrounding,
-//                                          new AddressTable(0x4925, 0, 8, "comboBox_directionOfGrounding"),
-//	                                      QList<int>() << 3 << 0 << 1 << 2));
-//	m_controls.append(new ControlComboBox(mainUi->comboBox_customButtonFunction,
-//	                                      new AddressTable(0x4bcc, 0, 144, "comboBox_customButtonFunction"),
-//	                                      QList<QString>() << "03ea00000000000000030000000000000000" <<
-//	                                      "020100000000000000020000000000000000" <<
-//	                                      "000500040000000000000000000000000000" <<
-//	                                      "000800070000000000000000000000000000"));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_bluetoothBroadcastTime,
-//	                                     new AddressTable(0x48fe, 0, 16, "lineEdit_bluetoothBroadcastTime"), 10, 2));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_24gCodetocodeTime,
-//	                                     new AddressTable(0x4900, 0, 16, "lineEdit_24gCodetocodeTime"), 10, 2));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_bluetoothBackTime,
-//	                                     new AddressTable(0x4902, 0, 8, "lineEdit_bluetoothBackTime"), 10));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_24gCallBackTime,
-//	                                     new AddressTable(0x4903, 0, 8, "lineEdit_24gCallBackTime"), 10));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_24gFastConnectTime,
-//	                                     new AddressTable(0x4bba, 0, 16, "lineEdit_24gFastConnectTime"), 1, 2));
-
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_sleepTime,
-//	                                     new AddressTable(0x4bbe, 0, 16, "lineEdit_sleepTime"), 10, 2));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_dpiLampDelayFlicker,
-//	                                     new AddressTable(0x4bc1, 0, 8, "lineEdit_dpiLampDelayFlicker")));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_theModeLightUsuallyTurnsOnTime,
-//	                                     new AddressTable(0x4c46, 0, 8, "lineEdit_theModeLightUsuallyTurnsOnTime"),
-//	                                     10));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_24GFlickerFrequency,
-//	                                     new AddressTable(0x4c48, 0, 8, "lineEdit_24GFlickerFrequency")));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_bluetoothBroadcastFlickerFrequency,
-//	                                     new AddressTable(0x4c49, 0, 8,
-//	                                                      "lineEdit_bluetoothBroadcastFlickerFrequency")));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_bluetoothLinkBackToFlickerFrequency,
-//	                                     new AddressTable(0x4c4a, 0, 8,
-//	                                                      "lineEdit_bluetoothLinkBackToFlickerFrequency")));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_dpiFlickerFrequency,
-//	                                     new AddressTable(0x4c4b, 0, 8, "lineEdit_dpiFlickerFrequency")));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_lowLampFlickerFrequency,
-//	                                     new AddressTable(0x4c4d, 0, 8, "lineEdit_lowLampFlickerFrequency")));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_24GFlickerTimes,
-//	                                     new AddressTable(0x4c50, 0, 8, "lineEdit_24GFlickerTimes")));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_theNumberOfTimesTheBluetoothConnectionFlashes,
-//	                                     new AddressTable(0x4c51, 0, 8,
-//	                                                      "lineEdit_theNumberOfTimesTheBluetoothConnectionFlashes")));
-//	m_controls.append(new ControlEditInt(advancedConfigDlgUi->lineEdit_lowLampFlickerTimes,
-//	                                     new AddressTable(0x4c53, 0, 8, "lineEdit_lowLampFlickerTimes")));
-
-//	m_controls.append(new ControlEditHex(advancedConfigDlgUi->lineEdit_frequencyOffsetParameter,
-//	                                     new AddressTable(0x417b, 0, 8, "lineEdit_frequencyOffsetParameter")));
-
-//    //Buletooth Name
-//    m_controls.append(new ControlEditAscii(advancedConfigDlgUi->lineEdit_Ble1Name,
-//                                           new AddressTable(0x4c1e, 0, 160, "lineEdit_Ble1Name", true)));
-//    m_controls.append(new ControlEditAscii(advancedConfigDlgUi->lineEdit_Ble2Name,
-//                                           new AddressTable(0x4da6, 1, 160, "lineEdit_Ble2Name", true)));
-//    m_controls.append(new ControlEditAscii(advancedConfigDlgUi->lineEdit_Bt1Name,
-//                                           new AddressTable(0x45fc, 0, 160, "lineEdit_Bt1Name", true)));
-//    m_controls.append(new ControlEditAscii(advancedConfigDlgUi->lineEdit_Bt2Name,
-//                                           new AddressTable(0x4dbb, 0, 160, "lineEdit_Bt2Name", true)));
-
-
-//    //高级界面电压
-//    m_controls.append(new ControlEditDouble(advancedConfigDlgUi->lineEdit_fullVoltage_3,
-//                                            new AddressTable(0x48e3, 0, 16, "lineEdit_fullVoltage_3"),
-//                                            "comboBox_adcSamplingMode_3", false));
-//    m_controls.append(new ControlEditDouble(advancedConfigDlgUi->lineEdit_shutdownVoltage_3,
-//                                            new AddressTable(0x48e5, 0, 16, "lineEdit_shutdownVoltage_3"),
-//                                            "comboBox_adcSamplingMode_3", false));
-//    m_controls.append(new ControlEditDouble(advancedConfigDlgUi->lineEdit_lowVoltage_3,
-//                                            new AddressTable(0x48e7, 0, 16, "lineEdit_lowVoltage_3"),
-//                                            "comboBox_adcSamplingMode_3", false));
-//    m_controls.append(new ControlComboBox(advancedConfigDlgUi->comboBox_adcChannel_3,
-//                                          new AddressTable(0x44a1, 0, 8, "comboBox_adcChannel_3"),
-//                                          QList<int>() << 0 << 1 << 2 << 3 << 4 << 5 << 6 << 7));
-
 
 //    ui.label_2->setText(QStringLiteral("鼠标配置工具 v1.1.0"));
 }
@@ -561,6 +297,9 @@
                                            new AddressTable(0x4da7, 0, 160, "lineEdit_Ble2Name", true)));
     m_controls.append(new ControlEditAscii(advancedConfigDlgUi->lineEdit_Bt2Name,
                                            new AddressTable(0x4dbb, 0, 160, "lineEdit_Bt2Name", true)));
+    //网址地址
+    m_controls.append(new ControlEditAscii(advancedConfigDlgUi->lineEdit_website,
+                                           new AddressTable(0x4df7,0,304,"lineEdit_website",true)));
 
 
     //高级界面电压
@@ -834,9 +573,10 @@
 		ControlBase* m_control = m_controls[i];
 		if (m_control->is_auto_paint())
 		{
-			auto m_address_table = m_control->m_addressTable; 
+            auto m_address_table = m_control->m_addressTable;
+
 			auto valueInflash = m_parse->getData(m_address_table);
-            qDebug()<<QStringLiteral("获得的组件地址数据为")<<valueInflash;
+            qDebug()<<QStringLiteral("获得的组件地址对应数据为")<<valueInflash;
             if(valueInflash.size() >= 2 &&
                 static_cast<unsigned short>(static_cast<unsigned char>(valueInflash.at(0)) << 8 |
                                             static_cast<unsigned char>(valueInflash.at(1))) == 0x55AA)
@@ -850,7 +590,7 @@
             if (address == 0x4bed || address == 0x4c55 || address == 0x4c56 || address == 0x4c57 || address == 0x4c59 || address ==0x4c38 || address ==0x4c3b||address==0x4912)
             {
                 QString mydata=QString::fromLatin1(valueInflash.toHex());
-                if(mydata.toLower()=="ff") //如果是ff就屏蔽
+                if(mydata.toLower()=="55AA") //如果是ff就屏蔽
                 {
                     SetDisable_checkbox(address);
                 }
Index: advancedConfigurationDlg.cpp
===================================================================
--- /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/advancedConfigurationDlg.cpp	(revision 5127)
+++ /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/advancedConfigurationDlg.cpp	(working copy)
@@ -98,6 +98,8 @@
     connect(ui->lineEdit_Ble2Name, SIGNAL(editingFinished()), this, SLOT(handleEditingFinished()));
     connect(ui->lineEdit_Bt1Name, SIGNAL(editingFinished()), this, SLOT(handleEditingFinished()));
     connect(ui->lineEdit_Bt2Name, SIGNAL(editingFinished()), this, SLOT(handleEditingFinished()));
+    //website
+    connect(ui->lineEdit_website, SIGNAL(editingFinished()), this, SLOT(handleEditingFinished()));
 
 }
 
Index: advancedConfigurationDlg.ui
===================================================================
--- /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/advancedConfigurationDlg.ui	(revision 5127)
+++ /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/advancedConfigurationDlg.ui	(working copy)
@@ -351,7 +351,7 @@
        <x>9</x>
        <y>32</y>
        <width>331</width>
-       <height>99</height>
+       <height>100</height>
       </rect>
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout_9">
@@ -481,7 +481,7 @@
        <x>10</x>
        <y>30</y>
        <width>331</width>
-       <height>161</height>
+       <height>168</height>
       </rect>
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout_7">
@@ -645,7 +645,7 @@
       <x>21</x>
       <y>32</y>
       <width>351</width>
-      <height>64</height>
+      <height>66</height>
      </rect>
     </property>
     <layout class="QHBoxLayout" name="horizontalLayout_8">
@@ -774,7 +774,7 @@
       <x>9</x>
       <y>32</y>
       <width>297</width>
-      <height>64</height>
+      <height>66</height>
      </rect>
     </property>
     <layout class="QHBoxLayout" name="horizontalLayout_10">
@@ -1396,7 +1396,7 @@
        <x>20</x>
        <y>30</y>
        <width>259</width>
-       <height>162</height>
+       <height>170</height>
       </rect>
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout_5">
@@ -1832,6 +1832,44 @@
     </property>
    </widget>
   </widget>
+  <widget class="QLabel" name="label_45">
+   <property name="geometry">
+    <rect>
+     <x>430</x>
+     <y>620</y>
+     <width>111</width>
+     <height>21</height>
+    </rect>
+   </property>
+   <property name="font">
+    <font>
+     <pointsize>12</pointsize>
+     <bold>false</bold>
+    </font>
+   </property>
+   <property name="text">
+    <string>网址地址：</string>
+   </property>
+  </widget>
+  <widget class="QLineEdit" name="lineEdit_website">
+   <property name="geometry">
+    <rect>
+     <x>510</x>
+     <y>620</y>
+     <width>321</width>
+     <height>28</height>
+    </rect>
+   </property>
+   <property name="font">
+    <font>
+     <pointsize>12</pointsize>
+     <bold>false</bold>
+    </font>
+   </property>
+   <property name="text">
+    <string/>
+   </property>
+  </widget>
  </widget>
  <tabstops>
   <tabstop>lineEdit_theModeLightUsuallyTurnsOnTime</tabstop>
Index: main.cpp
===================================================================
--- /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/main.cpp	(revision 5127)
+++ /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/main.cpp	(working copy)
@@ -6,22 +6,22 @@
 #define _TIME_ qPrintable (QTime::currentTime ().toString ("hh:mm:ss:zzz"))//时间记录
 
 
- class CustomWidget : public QWidget {
-     // 自定义窗口类，继承自QWidget
- public:
-     CustomWidget(QWidget *parent = nullptr) : QWidget(parent) {
-         // 创建一个垂直布局管理器
-         QVBoxLayout *layout = new QVBoxLayout(this);
+// class CustomWidget : public QWidget {
+//     // 自定义窗口类，继承自QWidget
+// public:
+//     CustomWidget(QWidget *parent = nullptr) : QWidget(parent) {
+//         // 创建一个垂直布局管理器
+//         QVBoxLayout *layout = new QVBoxLayout(this);
 
 
 
-         // 设置窗口的初始大小和标题（可选）
+//         // 设置窗口的初始大小和标题（可选）
 
-         setWindowTitle("示例窗口");
-     }
+//         setWindowTitle("示例窗口");
+//     }
 
-     // 其他成员函数...
- };
+//     // 其他成员函数...
+// };
  void myLogput(QtMsgType type, const QMessageLogContext& context, const QString& msg)
  {
     QString txt;
Index: mouse-config-tool-qt.pro.user
===================================================================
--- /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/mouse-config-tool-qt.pro.user	(revision 5127)
+++ /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/mouse-config-tool-qt.pro.user	(working copy)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 11.0.3, 2024-11-26T16:32:17. -->
+<!-- Written by QtCreator 11.0.3, 2025-07-01T16:30:02. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
@@ -91,13 +91,13 @@
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.15.2 MSVC2019 64bit</value>
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.15.2 MSVC2019 64bit</value>
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5152.win64_msvc2019_64_kit</value>
-   <value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
+   <value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
    <value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
    <value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
    <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
     <value type="int" key="EnableQmlDebugging">0</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\mouse\QT_YC1308</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/mouse/build-mouse-config-tool-qt-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\mouse\1308AC\mouse\TestTools\mous-config-tool-qt</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/mouse/1308AC/mouse/TestTools/mous-config-tool-qt</value>
     <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
      <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
       <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -135,8 +135,8 @@
     <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
    </valuemap>
    <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\mouse\QT_YC1308</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/mouse/build-mouse-config-tool-qt-Desktop_Qt_5_15_2_MSVC2019_64bit-Release</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\mouse\1308AC\mouse\TestTools\mous-config-tool-qt</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/mouse/1308AC/mouse/TestTools/mous-config-tool-qt</value>
     <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
      <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
       <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -176,8 +176,8 @@
    </valuemap>
    <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
     <value type="int" key="EnableQmlDebugging">0</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\mouse\build-mouse-config-tool-qt-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/mouse/build-mouse-config-tool-qt-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\mouse\1308AC\mouse\TestTools\mous-config-tool-qt</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/mouse/1308AC/mouse/TestTools/mous-config-tool-qt</value>
     <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
      <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
       <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -238,12 +238,12 @@
     <value type="int" key="PE.EnvironmentAspect.Base">2</value>
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
     <value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:E:/mouse/QT_YC1308/mouse-config-tool-qt.pro</value>
-    <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/mouse/QT_YC1308/mouse-config-tool-qt.pro</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:E:/mouse/1308AC/mouse/TestTools/mous-config-tool-qt/mouse-config-tool-qt.pro</value>
+    <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/mouse/1308AC/mouse/TestTools/mous-config-tool-qt/mouse-config-tool-qt.pro</value>
     <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
     <value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
     <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
-    <value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/mouse/QT_YC1308</value>
+    <value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/mouse/1308AC/mouse/TestTools/mous-config-tool-qt</value>
    </valuemap>
    <value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
   </valuemap>
Index: mouse-config-tool-qt_resource.rc
===================================================================
--- /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/mouse-config-tool-qt_resource.rc	(revision 5127)
+++ /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/mouse-config-tool-qt_resource.rc	(working copy)
@@ -1,6 +1,6 @@
 #include <windows.h>
 
-IDI_ICON1	ICON	DISCARDABLE	"E:\\mouse\\QT_YC1308\\keyboard.ico"
+IDI_ICON1	ICON	DISCARDABLE	"E:\\mouse\\1308AC\\mouse\\TestTools\\mous-config-tool-qt\\keyboard.ico"
 
 VS_VERSION_INFO VERSIONINFO
 	FILEVERSION 0,0,0,0
Index: ui_advancedConfigurationDlg.h
===================================================================
--- /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/ui_advancedConfigurationDlg.h	(revision 5127)
+++ /YC1308AC/branch/mouse_project/TestTools/mous-config-tool-qt/ui_advancedConfigurationDlg.h	(working copy)
@@ -157,6 +157,8 @@
     QLabel *label_40;
     QLabel *label_39;
     QLineEdit *lineEdit_Ble1Name;
+    QLabel *label_45;
+    QLineEdit *lineEdit_website;
 
     void setupUi(QDialog *advancedConfigurationDlg)
     {
@@ -275,7 +277,7 @@
         groupBox_ledFlickerTimes->setFont(font);
         layoutWidget2 = new QWidget(groupBox_ledFlickerTimes);
         layoutWidget2->setObjectName(QString::fromUtf8("layoutWidget2"));
-        layoutWidget2->setGeometry(QRect(9, 32, 331, 99));
+        layoutWidget2->setGeometry(QRect(9, 32, 331, 100));
         horizontalLayout_9 = new QHBoxLayout(layoutWidget2);
         horizontalLayout_9->setObjectName(QString::fromUtf8("horizontalLayout_9"));
         horizontalLayout_9->setContentsMargins(0, 0, 0, 0);
@@ -338,7 +340,7 @@
         groupBox_ledFlickerFrequency->setFont(font);
         layoutWidget3 = new QWidget(groupBox_ledFlickerFrequency);
         layoutWidget3->setObjectName(QString::fromUtf8("layoutWidget3"));
-        layoutWidget3->setGeometry(QRect(10, 30, 331, 161));
+        layoutWidget3->setGeometry(QRect(10, 30, 331, 168));
         horizontalLayout_7 = new QHBoxLayout(layoutWidget3);
         horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7"));
         horizontalLayout_7->setContentsMargins(0, 0, 0, 0);
@@ -418,7 +420,7 @@
 
         layoutWidget4 = new QWidget(groupBox_2);
         layoutWidget4->setObjectName(QString::fromUtf8("layoutWidget4"));
-        layoutWidget4->setGeometry(QRect(21, 32, 351, 64));
+        layoutWidget4->setGeometry(QRect(21, 32, 351, 66));
         horizontalLayout_8 = new QHBoxLayout(layoutWidget4);
         horizontalLayout_8->setObjectName(QString::fromUtf8("horizontalLayout_8"));
         horizontalLayout_8->setContentsMargins(0, 0, 0, 0);
@@ -472,7 +474,7 @@
         checkBox_smoothAlgorithm->setChecked(true);
         layoutWidget5 = new QWidget(groupBox_sensorConfiguration);
         layoutWidget5->setObjectName(QString::fromUtf8("layoutWidget5"));
-        layoutWidget5->setGeometry(QRect(9, 32, 297, 64));
+        layoutWidget5->setGeometry(QRect(9, 32, 297, 66));
         horizontalLayout_10 = new QHBoxLayout(layoutWidget5);
         horizontalLayout_10->setObjectName(QString::fromUtf8("horizontalLayout_10"));
         horizontalLayout_10->setContentsMargins(0, 0, 0, 0);
@@ -709,7 +711,7 @@
         lineEdit_lowLightGpio_3->setFont(font1);
         layoutWidget6 = new QWidget(groupBox_lowPowerEnable_2);
         layoutWidget6->setObjectName(QString::fromUtf8("layoutWidget6"));
-        layoutWidget6->setGeometry(QRect(20, 30, 259, 162));
+        layoutWidget6->setGeometry(QRect(20, 30, 259, 170));
         horizontalLayout_5 = new QHBoxLayout(layoutWidget6);
         horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5"));
         horizontalLayout_5->setContentsMargins(0, 0, 0, 0);
@@ -850,6 +852,14 @@
         lineEdit_Ble1Name->setMinimumSize(QSize(0, 14));
         lineEdit_Ble1Name->setMaximumSize(QSize(16777215, 40));
         lineEdit_Ble1Name->setFont(font2);
+        label_45 = new QLabel(advancedConfigurationDlg);
+        label_45->setObjectName(QString::fromUtf8("label_45"));
+        label_45->setGeometry(QRect(430, 620, 111, 21));
+        label_45->setFont(font2);
+        lineEdit_website = new QLineEdit(advancedConfigurationDlg);
+        lineEdit_website->setObjectName(QString::fromUtf8("lineEdit_website"));
+        lineEdit_website->setGeometry(QRect(510, 620, 321, 28));
+        lineEdit_website->setFont(font2);
         QWidget::setTabOrder(lineEdit_theModeLightUsuallyTurnsOnTime, lineEdit_theNumberOfTimesTheBluetoothConnectionFlashes);
         QWidget::setTabOrder(lineEdit_theNumberOfTimesTheBluetoothConnectionFlashes, lineEdit_24GFlickerTimes);
         QWidget::setTabOrder(lineEdit_24GFlickerTimes, lineEdit_lowLampFlickerTimes);
@@ -999,6 +1009,8 @@
         label_40->setText(QCoreApplication::translate("advancedConfigurationDlg", "BT\350\223\235\347\211\2311\345\220\215\345\255\227", nullptr));
         label_39->setText(QCoreApplication::translate("advancedConfigurationDlg", "BLE\350\223\235\347\211\2311\345\220\215\345\255\227", nullptr));
         lineEdit_Ble1Name->setText(QString());
+        label_45->setText(QCoreApplication::translate("advancedConfigurationDlg", "\347\275\221\345\235\200\345\234\260\345\235\200\357\274\232", nullptr));
+        lineEdit_website->setText(QString());
     } // retranslateUi
 
 };
