前端转vue
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Message.ts 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601
  1. import { ref, reactive } from 'vue'
  2. //import { PlatformSettings } from '../../platfrom/common/RunningParameters/PlatformSettings'
  3. import PlatformLogger from "@/views/front/platfrom/common/LogSystem/PlatformLogger";
  4. //import { BitMapInstance } from './BitMapInstance'
  5. import { MsgBitMap } from '../../develop/Communication/MessageHelper/MsgBitMap'
  6. import { TransitType } from './MessageHelper/TransitType'
  7. /**
  8. * 报文通讯域定义,交易调用
  9. */
  10. export enum BitMap {
  11. /// <summary>
  12. /// 核心定义
  13. /// </summary>
  14. Server,
  15. /// <summary>
  16. /// 渠道定义
  17. /// </summary>
  18. Agn,
  19. /// <summary>
  20. /// 二代支付定义
  21. /// </summary>
  22. Cnaps2
  23. }
  24. export default class Message {
  25. static cconv(fileData: string): string {
  26. throw new Error("Method not implemented.");
  27. }
  28. integrateFd(bitMapByte: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBufferLike> {
  29. throw new Error("Method not implemented.");
  30. }
  31. InitGateway2CBS(txCode: string, arg1: string, arg2: string, predicate2retCode: (code: string) => boolean) {
  32. throw new Error("Method not implemented.")
  33. }
  34. InitHfmsApp(url: string, predicate2retCode: (code: string) => boolean) {
  35. throw new Error("Method not implemented.")
  36. }
  37. DoTransit(): boolean {
  38. throw new Error("Method not implemented.")
  39. }
  40. /// <summary>
  41. /// 创建Message对象
  42. /// </summary>
  43. /// <param name="type"></param>
  44. Message(type?: BitMap) {
  45. this.IsMainTrade = false;
  46. if (type === undefined) {
  47. this.TransitNode = TransitType.CallServer;
  48. this.Init(BitMap.Server);
  49. } else {
  50. this.Init(type);
  51. }
  52. }
  53. // 交易附件数据
  54. private _fileData = ref<string>('')
  55. public _filename = ref<string>('')
  56. private _fdDict: Record<string, string>
  57. private _BigFds_: Record<string, any> = {}
  58. BitMapType: BitMap
  59. static BitMap: any
  60. _transitNode: TransitType
  61. TransitName: string
  62. CustomizeTransitEntry: null
  63. IsMainTrade = false;
  64. /**
  65. * 交易文件附件传送标志
  66. */
  67. get fileFlag(): boolean {
  68. return this._fileData.value !== ''
  69. }
  70. set fileFlag(value: boolean) {
  71. if (!value) this._fileData.value = ''
  72. }
  73. // public Message() {
  74. // this.IsMainTrade = false;
  75. // this.TransitNode = TransitType.CallServer;
  76. // this.Init(BitMap.Server);
  77. // }
  78. /**
  79. * 传入的文件名
  80. */
  81. get filename(): string {
  82. return this._filename.value
  83. }
  84. set filename(value: string) {
  85. this._filename.value = value
  86. }
  87. /**
  88. * 交易文件附件数据
  89. */
  90. get fileData(): string {
  91. return this._fileData.value
  92. }
  93. set fileData(value: string) {
  94. this._fileData.value = value
  95. }
  96. /**
  97. * 获取Fd域值
  98. */
  99. public getFdVaule(fdName: string): any {
  100. let result = ''
  101. if (this._fdDict[fdName]) {
  102. const decoder = new TextDecoder()
  103. //result = this.BitMapInstance.FdBitMap[fdName].RealValue(decoder.decode(this._fdDict[fdName])) //hulei先注销
  104. }
  105. return result
  106. }
  107. /**
  108. * 获取参数指定域的组包数据
  109. * @param fdName - 域名称
  110. * @returns 指定域的组包数据
  111. */
  112. public getFdFormatValue(fdName: string): string {
  113. let result = '';
  114. if (this._fdDict[fdName]) {
  115. const decoder = new TextDecoder();
  116. // result = decoder.decode(this._fdDict[fdName]);//hulei zheg fdDict属性不明确
  117. }
  118. return result;
  119. }
  120. /**
  121. * 设置Fd域值
  122. */
  123. public setFdValue(fdName: string, value: any): void {
  124. this.setFdFormatValue(fdName, value)
  125. if (!fdName.endsWith('0')) {
  126. const bigFdName = `${fdName.substring(0, 3)}0`
  127. //const fds = this.BitMapInstance.FdBitMap[bigFdName]
  128. // delete this._BigFds_[fds.Code]
  129. // for (const fd of fds.Children) {
  130. // if (fd.Code === fdName) break
  131. // if (!this._fdDict[fd.Code]) {
  132. // this.setFdFormatValue(fd.Code, null)
  133. // }
  134. // }
  135. }
  136. }
  137. // private BitMapInstance(BitMapType: any): MsgBitMap {
  138. // switch (BitMapType) {
  139. // case BitMap.Server:
  140. // return MsgBitMap.Instance_Server;
  141. // case BitMap.Agn:
  142. // return MsgBitMap.Instance_Agn;
  143. // case BitMap.Cnaps2:
  144. // return MsgBitMap.Instance_Cnaps2;
  145. // default:
  146. // return MsgBitMap.Instance_Server;
  147. // }
  148. // }
  149. get BitMapInstance(): MsgBitMap {
  150. switch (this.BitMapType) {
  151. case BitMap.Server:
  152. return MsgBitMap.Instance_Server;
  153. case BitMap.Agn:
  154. return MsgBitMap.Instance_Agn;
  155. case BitMap.Cnaps2:
  156. return MsgBitMap.Instance_Cnaps2;
  157. default:
  158. return MsgBitMap.Instance_Server;
  159. }
  160. }
  161. /**
  162. * 根据域类型格式化输入数据
  163. */
  164. private setFdFormatValue(fdName: string, value: any): void {
  165. // if (this.BitMapInstance.FdBitMap[fdName]) {
  166. // // const item = this.BitMapInstance.FdBitMap[fdName]
  167. // const encoder = new TextEncoder()
  168. // const formatValue = encoder.encode()//item.FormatValue(value)
  169. // this._fdDict[fdName] = formatValue
  170. // }
  171. //hulei 报错了需要处理
  172. }
  173. /**
  174. * 初始化,清空所有域和附件
  175. * @param type 位图类型
  176. */
  177. public Init(type?: BitMap): void {
  178. if (type === undefined) {
  179. // this._fdDict.Clear();hulei 这里情况的操作是Dictionary的方法 需要寻找代替的类型
  180. this._fileData = null;
  181. // //TransitNode = TransitType.CallServer; //初始化默认为CallServer
  182. // //BitMapType = type;
  183. this.CustomizeTransitEntry = null;
  184. // Extra = new Dictionary<string, object>();
  185. } else {
  186. // this._fdDict = {};
  187. // this._fileData = '';
  188. // this.TransitNode = TransitType.CallServer; // 初始化默认为 CallServer
  189. this.BitMapType = type;
  190. }
  191. }
  192. public anilyzeFd(msgData: Uint8Array): boolean {
  193. // 拆解位图,报文数据区格式为 5位报文类型+8/16位位图区域+有效数据区
  194. // 标志位,是否采用128位位图
  195. const isBitmap128 = msgData[5].toString(2).padStart(8, '0').startsWith('1');
  196. let bitMap = '';
  197. const msgBit = new Uint8Array(isBitmap128 ? 16 : 8);
  198. msgBit.set(msgData.slice(5, 5 + msgBit.length));
  199. // 扩展16位字符串转换为128位01格式的位图字符串
  200. for (const bytes of msgBit) {
  201. bitMap += bytes.toString(2).padStart(8, '0');
  202. }
  203. // 拆解数据部分
  204. const startIndex = 5 + (isBitmap128 ? 16 : 8);
  205. const data = new Uint8Array(msgData.length - startIndex);
  206. data.set(msgData.slice(startIndex));
  207. let curPosition = 0;
  208. // 日志内容
  209. const logInfo: string[] = [];
  210. logInfo.push("解包数据:");
  211. logInfo.push(`解包位图:[${bitMap}]`);
  212. try {
  213. // 循环解包
  214. for (let i = 0; i < bitMap.length; i++) {
  215. if (bitMap[i] === '1') {
  216. // 第一位为标志位
  217. if (i + 1 === 1) {
  218. continue;
  219. }
  220. const fdName = (i + 1).toString().padStart(3, '0') + "0";
  221. if (!this.BitMapInstance.FdBitMap[fdName]) {
  222. continue;
  223. }
  224. // 先清理组包数据,否则解析子域会产生数据交错
  225. clearFd(i + 1);
  226. const item = this.BitMapInstance.FdBitMap[fdName];
  227. let tmp: Uint8Array | null = null;
  228. switch (item.FieldType) {
  229. case "-1":
  230. break;
  231. case "0":
  232. // 定长域
  233. tmp = new Uint8Array(item.Length);
  234. // 截取数据区域,判定新位置
  235. tmp.set(data.slice(curPosition, curPosition + item.Length));
  236. curPosition += item.Length;
  237. break;
  238. default:
  239. // 变长域
  240. // 获取数据长度
  241. const len = parseInt(item.FieldType, 10);
  242. tmp = new Uint8Array(len);
  243. tmp.set(data.slice(curPosition, curPosition + len));
  244. curPosition += len;
  245. // 获取数据部分
  246. const length = parseInt(encodingToString(tmp), 10);
  247. tmp = new Uint8Array(length);
  248. tmp.set(data.slice(curPosition, curPosition + length));
  249. curPosition += length;
  250. break;
  251. }
  252. if (!tmp) continue;
  253. // 记录日志
  254. const value = encodingToString(tmp);
  255. logInfo.push(`第${(i + 1).toString().padStart(3, '0')}域:[${value}]`);
  256. if (!item.Children || item.Children.length === 0) {
  257. // // 生僻字处理,字符类型FD需要检查
  258. // if ("056".includes(item.Type) && hasCconvKey(value)) {
  259. // const val = item.RealValue ? item.RealValue(value) : value;
  260. // const newVal = item.FormatValue ? item.FormatValue(cconv(val as string, false)) : val;
  261. // tmp = encodingGetBytes(newVal);
  262. // }//hulei 生僻字处理暂时放弃
  263. // if (fdDict.hasOwnProperty(item.Code)) { //hulei typescript中是否有类似于wpf的 Dictionary类型
  264. // fdDict[item.Code] = tmp;
  265. // } else {
  266. // fdDict[item.Code] = tmp;
  267. // }
  268. } else {
  269. // 循环给子域赋值,子域暂时只存在定长域
  270. let index = 0;
  271. for (const child of item.Children) {
  272. if (index >= tmp.length) break;
  273. // 子域为定长
  274. const childLen = Math.min(index + child.Length, tmp.length) - index;
  275. const childData = new Uint8Array(childLen);
  276. childData.set(tmp.slice(index, index + childLen));
  277. index += childData.length;
  278. const chindValue = encodingToString(childData);
  279. // // 生僻字处理,字符类型FD需要检查
  280. // if ("056".includes(child.Type) && hasCconvKey(chindValue)) {
  281. // const val = child.RealValue ? child.RealValue(chindValue) : chindValue;
  282. // const newVal = child.FormatValue ? child.FormatValue(cconv(val as string, false)) : val;
  283. // childData = encodingGetBytes(newVal);
  284. // }hulei 生僻字处理暂时放弃
  285. // if (fdDict.hasOwnProperty(child.Code)) {//hulei typescript中是否有类似于wpf的 Dictionary类型
  286. // fdDict[child.Code] = childData;
  287. // } else {
  288. // fdDict[child.Code] = childData;
  289. // }
  290. }
  291. }
  292. }
  293. }
  294. // 解包完成后将解析数据写入交易日志文件
  295. communicationInfo(logInfo.join('\n'));
  296. return true;
  297. } catch (e) {
  298. // 解包失败
  299. logInfo.push(`解包出错:${(e as Error).message}`);
  300. communicationInfo(logInfo.join('\n'));
  301. return false;
  302. }
  303. }
  304. // 以下是各域的定义,保持与C#代码相同的命名规范
  305. get Fd1(): string { return this.getFdVaule('0010').toString() }
  306. set Fd1(value: string) { this.setFdValue('0010', value) }
  307. get Fd2(): string { return this.getFdVaule('0020').toString() }
  308. set Fd2(value: string) { this.setFdValue('0020', value) }
  309. get Fd3(): string { return this.getFdVaule('0030').toString() }
  310. set Fd3(value: string) { this.setFdValue('0030', value) }
  311. get Fd4(): string { return this.getFdVaule('0040').toString() }
  312. set Fd4(value: string) { this.setFdValue('0040', value) }
  313. get Fd5(): string { return this.getFdVaule('0050').toString() }
  314. set Fd5(value: string) { this.setFdValue('0050', value) }
  315. get Fd6(): string { return this.getFdVaule('0060').toString() }
  316. set Fd6(value: string) { this.setFdValue('0060', value) }
  317. get Fd7(): string { return this.getFdVaule('0070').toString() }
  318. set Fd7(value: string) { this.setFdValue('0070', value) }
  319. get Fd8(): string { return this.getFdVaule('0080').toString() }
  320. set Fd8(value: string) { this.setFdValue('0080', value) }
  321. get Fd9_1(): string { return this.getFdVaule('0091').toString() }
  322. set Fd9_1(value: string) { this.setFdValue('0091', value) }
  323. get Fd9_2(): string { return this.getFdVaule('0092').toString() }
  324. set Fd9_2(value: string) { this.setFdValue('0092', value) }
  325. get Fd9_3(): string { return this.getFdVaule('0093').toString() }
  326. set Fd9_3(value: string) { this.setFdValue('0093', value) }
  327. get Fd9_4(): string { return this.getFdVaule('0094').toString() }
  328. set Fd9_4(value: string) { this.setFdValue('0094', value) }
  329. get Fd10(): string { return this.getFdVaule('0100').toString() }
  330. set Fd10(value: string) { this.setFdValue('0100', value) }
  331. // 继续实现其他域...
  332. get Fd11(): string { return this.getFdVaule('0110').toString() }
  333. set Fd11(value: string) { this.setFdValue('0110', value) }
  334. get Fd12(): string { return this.getFdVaule('0120').toString() }
  335. set Fd12(value: string) { this.setFdValue('0120', value) }
  336. get Fd13(): string { return this.getFdVaule('0130').toString() }
  337. set Fd13(value: string) { this.setFdValue('0130', value) }
  338. get Fd14(): string { return this.getFdVaule('0140').toString() }
  339. set Fd14(value: string) { this.setFdValue('0140', value) }
  340. get Fd15_1(): string { return this.getFdVaule('0151').toString() }
  341. set Fd15_1(value: string) { this.setFdValue('0151', value) }
  342. get Fd15_2(): string { return this.getFdVaule('0152').toString() }
  343. set Fd15_2(value: string) { this.setFdValue('0152', value) }
  344. get Fd15_3(): string { return this.getFdVaule('0153').toString() }
  345. set Fd15_3(value: string) { this.setFdValue('0153', value) }
  346. get Fd15_4(): string { return this.getFdVaule('0154').toString() }
  347. set Fd15_4(value: string) { this.setFdValue('0154', value) }
  348. get Fd15_5(): string { return this.getFdVaule('0155').toString() }
  349. set Fd15_5(value: string) { this.setFdValue('0155', value) }
  350. get Fd15_6(): string { return this.getFdVaule('0156').toString() }
  351. set Fd15_6(value: string) { this.setFdValue('0156', value) }
  352. get Fd15_7(): string { return this.getFdVaule('0157').toString() }
  353. set Fd15_7(value: string) { this.setFdValue('0157', value) }
  354. get Fd15_8(): string { return this.getFdVaule('0158').toString() }
  355. set Fd15_8(value: string) { this.setFdValue('0158', value) }
  356. get Fd15_9(): string { return this.getFdVaule('0159').toString() }
  357. set Fd15_9(value: string) { this.setFdValue('0159', value) }
  358. get Fd15_A(): string { return this.getFdVaule('015A').toString() }
  359. set Fd15_A(value: string) { this.setFdValue('015A', value) }
  360. get Fd15_B(): string { return this.getFdVaule('015B').toString() }
  361. set Fd15_B(value: string) { this.setFdValue('015B', value) }
  362. get Fd15_C(): string { return this.getFdVaule('015C').toString() }
  363. set Fd15_C(value: string) { this.setFdValue('015C', value) }
  364. get Fd15_D(): string { return this.getFdVaule('015D').toString() }
  365. set Fd15_D(value: string) { this.setFdValue('015D', value) }
  366. get Fd15_E(): string { return this.getFdVaule('015E').toString() }
  367. set Fd15_E(value: string) { this.setFdValue('015E', value) }
  368. get Fd15_F(): string { return this.getFdVaule('015F').toString() }
  369. set Fd15_F(value: string) { this.setFdValue('015F', value) }
  370. get Fd15_G(): string { return this.getFdVaule('015G').toString() }
  371. set Fd15_G(value: string) { this.setFdValue('015G', value) }
  372. get Fd15_H(): string { return this.getFdVaule('015H').toString() }
  373. set Fd15_H(value: string) { this.setFdValue('015H', value) }
  374. get Fd15_I(): string { return this.getFdVaule('015I').toString() }
  375. set Fd15_I(value: string) { this.setFdValue('015I', value) }
  376. get Fd15_J(): string { return this.getFdVaule('015J').toString() }
  377. set Fd15_J(value: string) { this.setFdValue('015J', value) }
  378. // 继续实现剩余域...
  379. get Fd16(): string { return this.getFdVaule('0160').toString() }
  380. set Fd16(value: string) { this.setFdValue('0160', value) }
  381. get Fd17(): string { return this.getFdVaule('0170').toString() }
  382. set Fd17(value: string) { this.setFdValue('0170', value) }
  383. get Fd18(): string { return this.getFdVaule('0180').toString() }
  384. set Fd18(value: string) { this.setFdValue('0180', value) }
  385. get Fd19_1(): string { return this.getFdVaule('0191').toString() }
  386. set Fd19_1(value: string) { this.setFdValue('0191', value) }
  387. get Fd19_2(): string { return this.getFdVaule('0192').toString() }
  388. set Fd19_2(value: string) { this.setFdValue('0192', value) }
  389. get Fd19_3(): string { return this.getFdVaule('0193').toString() }
  390. set Fd19_3(value: string) { this.setFdValue('0193', value) }
  391. get Fd19_4(): string { return this.getFdVaule('0194').toString() }
  392. set Fd19_4(value: string) { this.setFdValue('0194', value) }
  393. get Fd19_5(): string { return this.getFdVaule('0195').toString() }
  394. set Fd19_5(value: string) { this.setFdValue('0195', value) }
  395. get Fd20(): string { return this.getFdVaule('0200').toString() }
  396. set Fd20(value: string) { this.setFdValue('0200', value) }
  397. get Fd21(): string { return this.getFdVaule('0210').toString() }
  398. set Fd21(value: string) { this.setFdValue('0210', value) }
  399. get Fd22(): string { return this.getFdVaule('0220').toString() }
  400. set Fd22(value: string) { this.setFdValue('0220', value) }
  401. get Fd30(): string { return this.getFdVaule('0300').toString() }
  402. set Fd30(value: string) { this.setFdValue('0300', value) }
  403. get Fd66(): string { return this.getFdVaule('0660').toString() }
  404. set Fd66(value: string) { this.setFdValue('0660', value) }
  405. get Fd23(): string { return this.getFdVaule('0100').toString() }
  406. set Fd23(value: string) { this.setFdValue('0100', value) }
  407. get Fd24(): string { return this.getFdVaule('0100').toString() }
  408. set Fd24(value: string) { this.setFdValue('0100', value) }
  409. get Fd25(): string { return this.getFdVaule('0100').toString() }
  410. set Fd25(value: string) { this.setFdValue('0100', value) }
  411. get Fd26(): string { return this.getFdVaule('0100').toString() }
  412. set Fd26(value: string) { this.setFdValue('0100', value) }
  413. get Fd27(): string { return this.getFdVaule('0100').toString() }
  414. set Fd27(value: string) { this.setFdValue('0100', value) }
  415. get Fd28(): string { return this.getFdVaule('0100').toString() }
  416. set Fd28(value: string) { this.setFdValue('0100', value) }
  417. get Fd29(): string { return this.getFdVaule('0100').toString() }
  418. set Fd29(value: string) { this.setFdValue('0100', value) }
  419. get Fd31(): string { return this.getFdVaule('0100').toString() }
  420. set Fd31(value: string) { this.setFdValue('0100', value) }
  421. get Fd32(): string { return this.getFdVaule('0100').toString() }
  422. set Fd32(value: string) { this.setFdValue('0100', value) }
  423. get Fd33(): string { return this.getFdVaule('0100').toString() }
  424. set Fd33(value: string) { this.setFdValue('0100', value) }
  425. get Fd34(): string { return this.getFdVaule('0100').toString() }
  426. set Fd34(value: string) { this.setFdValue('0100', value) }
  427. get Fd35(): string { return this.getFdVaule('0100').toString() }
  428. set Fd35(value: string) { this.setFdValue('0100', value) }
  429. get Fd36(): string { return this.getFdVaule('0100').toString() }
  430. set Fd36(value: string) { this.setFdValue('0100', value) }
  431. get Fd37(): string { return this.getFdVaule('0100').toString() }
  432. set Fd37(value: string) { this.setFdValue('0100', value) }
  433. get Fd38(): string { return this.getFdVaule('0100').toString() }
  434. set Fd38(value: string) { this.setFdValue('0100', value) }
  435. get Fd39(): string { return this.getFdVaule('0100').toString() }
  436. set Fd39(value: string) { this.setFdValue('0100', value) }
  437. get Fd40(): string { return this.getFdVaule('0100').toString() }
  438. set Fd40(value: string) { this.setFdValue('0100', value) }
  439. get Fd41(): string { return this.getFdVaule('0100').toString() }
  440. set Fd41(value: string) { this.setFdValue('0100', value) }
  441. get Fd42(): string { return this.getFdVaule('0100').toString() }
  442. set Fd42(value: string) { this.setFdValue('0100', value) }
  443. get Fd43(): string { return this.getFdVaule('0100').toString() }
  444. set Fd43(value: string) { this.setFdValue('0100', value) }
  445. get Fd44(): string { return this.getFdVaule('0100').toString() }
  446. set Fd44(value: string) { this.setFdValue('0100', value) }
  447. get Fd45(): string { return this.getFdVaule('0100').toString() }
  448. set Fd45(value: string) { this.setFdValue('0100', value) }
  449. get Fd46(): string { return this.getFdVaule('0100').toString() }
  450. set Fd46(value: string) { this.setFdValue('0100', value) }
  451. get Fd47(): string { return this.getFdVaule('0100').toString() }
  452. set Fd47(value: string) { this.setFdValue('0100', value) }
  453. get Fd48(): string { return this.getFdVaule('0100').toString() }
  454. set Fd48(value: string) { this.setFdValue('0100', value) }
  455. get Fd49(): string { return this.getFdVaule('0100').toString() }
  456. set Fd49(value: string) { this.setFdValue('0100', value) }
  457. get Fd50(): string { return this.getFdVaule('0100').toString() }
  458. set Fd50(value: string) { this.setFdValue('0100', value) }
  459. get Fd51(): string { return this.getFdVaule('0100').toString() }
  460. set Fd51(value: string) { this.setFdValue('0100', value) }
  461. get Fd52(): string { return this.getFdVaule('0100').toString() }
  462. set Fd52(value: string) { this.setFdValue('0100', value) }
  463. get Fd53(): string { return this.getFdVaule('0100').toString() }
  464. set Fd53(value: string) { this.setFdValue('0100', value) }
  465. get Fd54(): string { return this.getFdVaule('0100').toString() }
  466. set Fd54(value: string) { this.setFdValue('0100', value) }
  467. get Fd55(): string { return this.getFdVaule('0100').toString() }
  468. set Fd55(value: string) { this.setFdValue('0100', value) }
  469. get Fd56(): string { return this.getFdVaule('0100').toString() }
  470. set Fd56(value: string) { this.setFdValue('0100', value) }
  471. get Fd57(): string { return this.getFdVaule('0100').toString() }
  472. set Fd57(value: string) { this.setFdValue('0100', value) }
  473. get Fd58(): string { return this.getFdVaule('0100').toString() }
  474. set Fd58(value: string) { this.setFdValue('0100', value) }
  475. get Fd59(): string { return this.getFdVaule('0100').toString() }
  476. set Fd59(value: string) { this.setFdValue('0100', value) }
  477. get Fd92(): string { return this.getFdVaule('0100').toString() }
  478. set Fd92(value: string) { this.setFdValue('0100', value) }
  479. get Fd98(): string { return this.getFdVaule('0100').toString() }
  480. set Fd98(value: string) { this.setFdValue('0100', value) }
  481. /**
  482. * 通讯外端
  483. */
  484. get TransitNode(): TransitType {
  485. return this._transitNode;
  486. }
  487. set TransitNode(value: TransitType) {
  488. this._transitNode = value;
  489. this.TransitName = value.toString();
  490. }
  491. // 实现剩余所有域...
  492. // 按照相同模式实现Fd21到Fd47的所有域
  493. }
  494. function clearFd(arg0: number) {
  495. throw new Error('Function not implemented.');
  496. }
  497. function encodingToString(tmp: Uint8Array<ArrayBufferLike>): string {
  498. throw new Error('Function not implemented.');
  499. }
  500. function communicationInfo(arg0: string) {
  501. throw new Error('Function not implemented.');
  502. }