@@ -46,7 +46,7 @@ bool CModuleHelp_JT1078::ModuleHelp_JT1078_BCDToString(XBYTE bySIMNumber[6], XCH
4646 }
4747 for (int i = 0 , nPos = 0 ; i < 6 ; i++)
4848 {
49- Cryption_Codec_BCDTo2Bytes (bySIMNumber[i], &ptszMsgBuffer[nPos]);
49+ ModuleHelp_JT1078_BCDTo2Bytes (bySIMNumber[i], &ptszMsgBuffer[nPos]);
5050 nPos += 2 ;
5151 }
5252 return true ;
@@ -81,8 +81,124 @@ bool CModuleHelp_JT1078::ModuleHelp_JT1078_StringToBCD(LPCXSTR lpszMsgBuffer, XB
8181 }
8282 for (int i = 0 , nPos = 0 ; i < 6 ; i++)
8383 {
84- Cryption_Codec_2BytesToBCD (&lpszMsgBuffer[i], pbySIMNumber[nPos]);
84+ ModuleHelp_JT1078_2BytesToBCD (&lpszMsgBuffer[i], pbySIMNumber[nPos]);
8585 nPos += 2 ;
8686 }
8787 return true ;
88+ }
89+ // ////////////////////////////////////////////////////////////////////////
90+ // 保护函数
91+ // ////////////////////////////////////////////////////////////////////////
92+ /* *******************************************************************
93+ 函数名称:ModuleHelp_JT1078_2BytesToBCD
94+ 函数功能:两个字符转BCD编码
95+ 参数.一:lpszSource
96+ In/Out:In
97+ 类型:常量字符指针
98+ 可空:N
99+ 意思:输入一段要编码的数据
100+ 参数.二:chBCD
101+ In/Out:Out
102+ 类型:无符号字符
103+ 可空:N
104+ 意思:输出编码好的数据
105+ 返回值
106+ 类型:无
107+ 意思:
108+ 备注:
109+ *********************************************************************/
110+ void CModuleHelp_JT1078::ModuleHelp_JT1078_2BytesToBCD (LPCXSTR lpszSource, XBYTE& chBCD)
111+ {
112+ ModuleHelp_IsErrorOccur = false ;
113+
114+ XBYTE uszBsd;
115+ uszBsd = lpszSource[0 ] - ' 0' ;
116+ uszBsd = uszBsd << 4 ;
117+ chBCD |= uszBsd;
118+ uszBsd = lpszSource[1 ] - ' 0' ;
119+ uszBsd = uszBsd & 0x0f ;
120+ chBCD |= uszBsd;
121+ }
122+ /* *******************************************************************
123+ 函数名称:ModuleHelp_JT1078_BCDTo2Bytes
124+ 函数功能:BCD编码转字符
125+ 参数.一:chBCD
126+ In/Out:In
127+ 类型:无符号字符
128+ 可空:N
129+ 意思:输入要解码的BCD字符
130+ 参数.二:ptszDest
131+ In/Out:Out
132+ 类型:字符指针
133+ 可空:N
134+ 意思:输出解码后的字符串
135+ 返回值
136+ 类型:无
137+ 意思:
138+ 备注:
139+ *********************************************************************/
140+ void CModuleHelp_JT1078::ModuleHelp_JT1078_BCDTo2Bytes (XBYTE chBCD, XCHAR* ptszDest)
141+ {
142+ ModuleHelp_IsErrorOccur = false ;
143+
144+ XBYTE uszBsd;
145+
146+ uszBsd = chBCD & 0x0f ;
147+ ptszDest[1 ] = uszBsd + ' 0' ;
148+ uszBsd = chBCD & 0xf0 ;
149+ uszBsd = uszBsd >> 4 ;
150+ ptszDest[0 ] = uszBsd + ' 0' ;
151+ }
152+ /* *******************************************************************
153+ 函数名称:ModuleHelp_JT1078_BCDToInt
154+ 函数功能:BCD编码转整数型
155+ 参数.一:chBCD
156+ In/Out:In
157+ 类型:无符号字符
158+ 可空:N
159+ 意思:输入要解码的BCD字符
160+ 返回值
161+ 类型:整数型
162+ 意思:输出解码数据
163+ 备注:
164+ *********************************************************************/
165+ int CModuleHelp_JT1078::ModuleHelp_JT1078_BCDToInt (XBYTE chBCD)
166+ {
167+ ModuleHelp_IsErrorOccur = false ;
168+
169+ XBYTE uszBsd1, uszBsd2, uszBsd3;
170+
171+ uszBsd1 = chBCD & 0x0f ;
172+ uszBsd2 = chBCD & 0xf0 ;
173+ uszBsd2 = uszBsd2 >> 4 ;
174+ uszBsd3 = uszBsd2 * 10 + uszBsd1;
175+ return uszBsd3;
176+ }
177+ /* *******************************************************************
178+ 函数名称:ModuleHelp_JT1078_IntToBCD
179+ 函数功能:将00-99的整数存放成1个字节的BCD
180+ 参数.一:uszInt
181+ In/Out:In
182+ 类型:无符号字符
183+ 可空:N
184+ 意思:输入要编码的整数
185+ 返回值
186+ 类型:无符号字符
187+ 意思:输出编码数据
188+ 备注:
189+ *********************************************************************/
190+ XBYTE CModuleHelp_JT1078::ModuleHelp_JT1078_IntToBCD (XBYTE uszInt)
191+ {
192+ ModuleHelp_IsErrorOccur = false ;
193+
194+ XBYTE usBCD;
195+ XBYTE nRet;
196+
197+ nRet = 0 ;
198+ usBCD = uszInt / 10 ;
199+ usBCD = usBCD << 4 ;
200+ nRet |= usBCD;
201+ usBCD = uszInt % 10 ;
202+ nRet |= usBCD;
203+ return nRet;
88204}
0 commit comments