From 726f0553fa435809d10c8a33abe46473ee975db1 Mon Sep 17 00:00:00 2001
From: LAPTOP-T815PCOQ\25526 <mr.liuyang@126.com>
Date: 星期二, 10 十二月 2024 16:37:00 +0800
Subject: [PATCH] 1. 完善axis细部设定人机交互(数据填充和文件保存)

---
 SourceCode/Bond/BondEq/ToolUnits.cpp |   85 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 83 insertions(+), 2 deletions(-)

diff --git a/SourceCode/Bond/BondEq/ToolUnits.cpp b/SourceCode/Bond/BondEq/ToolUnits.cpp
index 944503a..f9022f8 100644
--- a/SourceCode/Bond/BondEq/ToolUnits.cpp
+++ b/SourceCode/Bond/BondEq/ToolUnits.cpp
@@ -150,16 +150,97 @@
 	return (attributes != INVALID_FILE_ATTRIBUTES && (attributes & FILE_ATTRIBUTE_DIRECTORY));
 }
 
-double CToolUnits::toInt32(const char* pBuffer)
+int CToolUnits::toInt32(const char* pBuffer)
 {
 	return (pBuffer[0] & 0xff) | (pBuffer[1] & 0xff) << 8 | (pBuffer[2] & 0xff) << 16 | (pBuffer[3] & 0xff) << 24;
 }
 
-double CToolUnits::toInt16(const char* pBuffer)
+int CToolUnits::toInt16(const char* pBuffer)
 {
 	return (pBuffer[0] & 0xff) | (pBuffer[1] & 0xff) << 8;
 }
 
+BOOL CToolUnits::getBit(const char c, int index)
+{
+	switch (index)
+	{
+	case 0:
+		return c & 0x01;
+		break;
+	case 1:
+		return c & 0x02;
+		break;
+	case 2:
+		return c & 0x04;
+		break;
+	case 3:
+		return c & 0x08;
+		break;
+	case 4:
+		return c & 0x10;
+		break;
+	case 5:
+		return c & 0x20;
+		break;
+	case 6:
+		return c & 0x40;
+		break;
+	case 7:
+		return c & 0x80;
+		break;
+	default:
+		break;
+	}
+
+	return FALSE;
+}
+
+void CToolUnits::setBit(char* p, int index)
+{
+	int byteIndex = 0;
+	byte b = 0;
+	if (index >= 8) byteIndex = 1;
+	switch (index)
+	{
+	case 0:
+	case 8:
+		b = 0x1;
+		break;
+	case 1:
+	case 9:
+		b = 0x2;
+		break;
+	case 2:
+	case 0xA:
+		b = 0x4;
+		break;
+	case 3:
+	case 0xB:
+		b = 0x8;
+		break;
+	case 4:
+	case 0xC:
+		b = 0x10;
+		break;
+	case 5:
+	case 0xD:
+		b = 0x20;
+		break;
+	case 6:
+	case 0xE:
+		b = 0x40;
+		break;
+	case 7:
+	case 0xF:
+		b = 0x80;
+		break;
+	default:
+		break;
+	}
+
+	p[byteIndex] = b;
+}
+
 void CToolUnits::setDlgItemDouble(CWnd* pWnd, int nCtrlId, double value)
 {
 	CString strText;

--
Gitblit v1.9.3