nfm_base_ECalUnit.h 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572
  1. //---------------------------------------------------------------------------
  2. #ifndef ECalUnitH
  3. #define ECalUnitH
  4. //---------------------------------------------------------------------------
  5. #include <stdint.h>
  6. #include <stddef.h>
  7. //---------------------------------------------------------------------------
  8. typedef enum
  9. {
  10. SC6000 = 0,
  11. SC8000 = 1,
  12. SC4000 = 2,
  13. SC2520 = 3,
  14. SC8401 = 4,
  15. SC8402 = 5,
  16. SC25091 = 6,
  17. SC25092 = 7,
  18. SC4509 = 8
  19. }
  20. eDeviceId_t___OBSOLETE; // replaced with "eNFMModel_t"
  21. //---------------------------------------------------------------------------
  22. #pragma pack(push, 1)
  23. struct TEcalHeader
  24. {
  25. uint8_t Reserved1[64];
  26. uint8_t SN[10]; // ASCII (without PSN)
  27. uint16_t DeviceID; // see eDeviceId_t
  28. uint8_t Reserved2[48];
  29. };
  30. struct TEcalHeaderCRC
  31. {
  32. struct TEcalHeader Hdr;
  33. uint32_t CRCValue;
  34. };
  35. #pragma pack(pop)
  36. //---------------------------------------------------------------------------
  37. #pragma pack(push, 1)
  38. struct TEcalSegment // �����. ��������� ��� ���������
  39. {
  40. int16_t Points;
  41. double Fstart_unaligned;
  42. double Fstop_unaligned;
  43. }; // 18 bytes
  44. #pragma pack(pop)
  45. //---------------------------------------------------------------------------
  46. #define SWEEP_VERSION_LINEAR 1
  47. #define SWEEP_VERSION_SEGMENT 2
  48. //---------------------------------------------------------------------------
  49. #pragma pack(push, 1)
  50. struct TEcalDataHeader // TEcalDataHeader: ��������� ��������������
  51. {
  52. uint8_t CalDate[12]; // ���� ����������
  53. uint8_t CalTime[10]; // ����� ����������
  54. uint8_t Location[20]; // ����� ����������
  55. uint8_t Operator[20]; // ��������
  56. uint8_t Analyzer[20]; // Obzor-804
  57. double Fmin_unaligned; // ��������� ��� Lin sweep,
  58. double Fmax_unaligned; // ������ = 1
  59. int32_t Points;
  60. double Temperature_unaligned;
  61. int16_t ConnectorA; // Connector type
  62. int16_t ConnectorB; // Connector type
  63. int16_t ConnectorC; // Connector type
  64. int16_t ConnectorD; // Connector type
  65. uint8_t AdapterDescriptionA[20]; // Adapter description
  66. uint8_t AdapterDescriptionB[20]; // Adapter description
  67. uint8_t AdapterDescriptionC[20]; // Adapter description
  68. uint8_t AdapterDescriptionD[20]; // Adapter description
  69. int16_t Version; // ������ 1 - Lin Sweep, 2 - Segm Sweep
  70. int16_t NSegm; // ����� ���������
  71. struct TEcalSegment Segm[5]; // ���� ��������
  72. uint8_t Reserved[6];
  73. }; // 298 bytes
  74. struct TEcalDataHeaderCRC
  75. {
  76. struct TEcalDataHeader Hdr;
  77. uint32_t CRCValue;
  78. };
  79. #pragma pack(pop)
  80. //---------------------------------------------------------------------------
  81. #pragma pack(push, 1)
  82. struct TEcalTableHeader { // ��������� ������� ��������������
  83. int16_t MinMagn; // ���. ���������, �������� 0.01 �� (�� -327.67 �� +327.68 ��)
  84. int16_t MaxMagn; // ����. ���������, �������� 0.01 �� (�� -327.67 �� +327.68 ��)
  85. };
  86. // ������� ��������������
  87. struct TEcalPoint24 { // 24 ��������� ������
  88. uint16_t Magn; uint8_t Magn2; // 0.000004 dB (typical)
  89. uint16_t Angle; uint8_t Angle2; // Pi/16777215 unit [-PI, Pi] = 0.00002 degree
  90. };
  91. #pragma pack(pop)
  92. #pragma pack(push, 1)
  93. struct TablePoint {
  94. uint8_t port1; // Device port1 switch state
  95. uint8_t port2; // Device port2 switch state
  96. };
  97. #pragma pack(pop)
  98. //---------------------------------------------------------------------------
  99. // ������ ������ ��������������:
  100. // Short : ���. ���������, �������� 0.01 �� (�� -327.67 �� +327.68 ��) == TEcalTableHeader
  101. // Short : ����. ���������, �������� 0.01 �� (�� -327.67 �� +327.68 ��) == TEcalTableHeader
  102. // 3 Bytes : ����� 1. ��������� � ��, ����� min � max, �������� (max - min)/16777215 ��.
  103. // 3 Bytes : ����� 1. ���� � ��������, �������� PI/0x7FFFFF = 0.00002 ����.
  104. // 3 Bytes : ����� 2. ���������...
  105. // 3 Bytes : ����� 2. ����...
  106. // ...
  107. // 3 Bytes : ����� N. ���������...
  108. // 3 Bytes : ����� N. ����...
  109. // 4 Bytes : CRC.
  110. // -------------------------------------------------------------------
  111. // ������� ��������������. 14 ������ ��� SC6000, 18 ������ ��� SC8000
  112. // ������� ���������� ������ � ������ ��� :
  113. // ShortA \
  114. // ShortB |
  115. // OpenA |
  116. // OpenB |
  117. // LoadA \ Characterization Data
  118. // LoadB / 14 ������
  119. // Thru11 | SC4000, SC6000, SC2509.2
  120. // Thru21 |
  121. // Thru12 |
  122. // Thru22 |
  123. // Check11 |
  124. // Check21 |
  125. // Check12 |
  126. // Check22 |
  127. //--------------
  128. // Load2A |
  129. // Load2B | +4 Load2, Open2 ��� SC8000, SC2509.1
  130. // Open2A | +2 Open2 ��� SC2520.1
  131. // Open2B /
  132. // -------------------------------------------------------------------
  133. // ������� �������������� ��� SC8401, SC8402, 4509.1 - 60 ������.
  134. // ������� ���������� ������ � ������ ��� :
  135. // ShortA \
  136. // OpenA |
  137. // LoadA | Port A
  138. // Load2A |
  139. // Open2A /
  140. // ... > Port B
  141. // ... > Port C
  142. // ... > Port D
  143. // Thru11 \
  144. // Thru21 |
  145. // Thru12 | Thru AB 2x2
  146. // Thru22 /
  147. // ... > Thru AC
  148. // ... > Thru AD
  149. // ... > Thru BC
  150. // ... > Thru BD
  151. // ... > Thru CD
  152. // Check11 \
  153. // Check21 |
  154. // Check31 | Check 4x4
  155. // Check41 |
  156. // ... |
  157. // Check44 /
  158. // -------------------------------------------------------------------
  159. // M����� SC8401, SC8402, 4509.1, SC2520.1 �������� ��������� �� ����� ������������� ������.
  160. // SC8401 �� ����� Load2 � Open2.
  161. // SC8402, 4509.1 �� ����� Load2.
  162. // SC2520.1 �� ����� Load2.
  163. //------------------------------------------------------------------------------
  164. // ����� ������ ��������������
  165. #define CHARACTERIZATION_STATE_SIZE(POINTS) (2 * sizeof(uint16_t) + 2 * POINTS * 3 + 4)
  166. // ����� ������� ������������� �������������
  167. #define THERM_COMP_ADDR_SC8000 400000
  168. #define THERM_COMP_ADDR_SC2543 800000
  169. #define THERM_COMP_ADDR_SC8400 1500000
  170. // ����� �������� ����� �������� (USBTMC/PLANAR)
  171. #define SETTINGS_ADDR_SC8000 1572856
  172. #define SETTINGS_SIZE_SC8000 8
  173. #define SETTINGS_ADDR_SC2543 1966016
  174. #define SETTINGS_SIZE_SC2543 64
  175. // ������������ ������� ��������
  176. // #define FACTORY_MAX_DATA_POINTS 3601
  177. // #define MAX_THERMOCOMP_POINTS 1601
  178. // #define USER_MAX_DATA_POINTS 1601
  179. /* ������� ������� ������������� ������
  180. // NFM6000, NFM8000, NFM4000
  181. // Bank0: 0x000000 - 0x07FFFF ���������� ������
  182. // Bank1: 0x100000 - 0x17FFFF ���������������� ������
  183. // NFM8400, NFM4509
  184. // Bank0: 0x000000 - 0x1FFFFF ���������� ������
  185. // Bank1: 0x200000 - 0x3BFFFF ���������������� ������
  186. // NFM2520
  187. // Bank0: 0x000000 - 0x1EFFFF ���������� ������
  188. // Bank1: 0x1F0000 - 0x3EFFFF ���������������� ������
  189. //
  190. ---------------------------------------------------------------------------------------------------------------
  191. | | 6000 | 8000 | 4509 | 2520 | 2543
  192. | | 4000 | 2509 | 8400 | |
  193. ---------------------------------------------------------------------------------------------------------------
  194. Bank0 | ��� | 0 | 0 | 0 | 0 | 0
  195. ��������� | ����� | 128 | 128 | 128 | 128 | 128
  196. ---------------------------------------------------------------------------------------------------------------
  197. ��������� | ���. | 128 | 128 | 128 | 128 | 128
  198. �������������� | ����� | 302+14*(6*N+8) | 302+18*(6*N+8) | 302+60*(6*N+8) | 302+18*(6*N+8) | 302+18*(6*N+8)
  199. | N max | 4755 | 3698 | 4164 | 3698 | 7402
  200. | ����� | 399962 | 399958 | 1499950 | 399958 | 799990
  201. ---------------------------------------------------------------------------------------------------------------
  202. ���������������� | ���. | 400000 | 400000 | 1500000 | 400000 | 800000
  203. | ����� | 80+14*2*(2*N+8)| 80+18*2*(2*N+8)| 80+60*2*(2*N+8)| 80+18*2*(2*N+8)| 80+18*2*(2*N+8)
  204. | N max | 1601 | 1601 | 1601 | 1601 | 1601
  205. | ����� | 489960 | 515640 | 1885280 | 515640 | 915640
  206. ---------------------------------------------------------------------------------------------------------------
  207. ������ Bank0 | 0x80000 | 0x80000 | 0x200000 | 0x1F0000 | 0xE0000
  208. | 524288 | 524288 | 2097152 | 2031616 | 917504
  209. ---------------------------------------------------------------------------------------------------------------
  210. Bank1 | 0x100000 | 0x100000 | 0x200000 | 0x1F0000 | 0xE0000
  211. | 1048576 | 1048576 | 2097152 | 2031616 | 917504
  212. ������ Bank1 | 0x80000 | 0x80000 | 0x1C0000 | 0x200000 | 0x100000
  213. | 524288 | 524288 | 1835008 | 2097152 | 1048576
  214. User Part | 174762 | 174762 | 611660 | 174762 | 349524
  215. User Part x 3 | 524286 | 524286 | 1834980 | 524286 | 1048572
  216. N max | 2075 | 1614 | 1696 | 1614 | 3232
  217. ---------------------------------------------------------------------------------------------------------------
  218. */
  219. //------------------------------------------------------------------------------
  220. #pragma pack(push, 1)
  221. //---------------------------------------------------------------------------
  222. struct TEcalTCompHeader // ��������� ����������������
  223. {
  224. uint8_t CalDate[12]; // ���� ������
  225. uint8_t CalTime[10]; // ����� ������
  226. double Fmin_unaligned;
  227. double Fmax_unaligned;
  228. int32_t Points;
  229. int32_t Flags; // 1 - �������/�����������
  230. uint8_t FileName[20]; // ��� ����� ������
  231. uint8_t Reserved[10];
  232. }; // 76 ����
  233. struct TEcalTCompHeaderCRC
  234. {
  235. struct TEcalTCompHeader Hdr;
  236. uint32_t CRCValue;
  237. }; // 80 ����
  238. #pragma pack(pop)
  239. #pragma pack(push, 1)
  240. struct TableTHeader
  241. {
  242. uint8_t size;
  243. uint8_t blocks;
  244. uint8_t reserved[2];
  245. };
  246. struct TableTHeaderCRC
  247. {
  248. struct TableTHeader Hdr;
  249. uint32_t CRCValue;
  250. uint32_t table_crc;
  251. };
  252. #pragma pack(pop)
  253. //---------------------------------------------------------------------------
  254. // ����� ������ ����������������
  255. #define THERM_COMP_STATE_SIZE(POINTS) (2 * (2 * sizeof(uint16_t) + sizeof(uint16_t) * POINTS + 4)) // 6420
  256. //---------------------------------------------------------------------------
  257. struct TEcalThermMagnHeader { // ��������� ������� ���������� ������������ (���������)
  258. int16_t MinMagn; // ���. �����������, �������� 0.01 ��/C (�� -327.67 �� +327.68 ��/C)
  259. int16_t MaxMagn; // ����. �����������, �������� 0.01 ��/C (�� -327.67 �� +327.68 ��/C)
  260. };
  261. struct TEcalThermMagnPoint { // ����� ������� ���������� ������������� (���������)
  262. int16_t Magn; // �������� int16, ���������� �� �������� �������� (max/2+min/2)
  263. };
  264. struct TEcalThermPhaseHeader { // ��������� ������� ���������� ������������ (����)
  265. int16_t MinPhase; // ���. �����������, �������� 0.01 ����/C (�� -327.67 �� +327.68 ����/C)
  266. int16_t MaxPhase; // ����. �����������, �������� 0.01 ����/C (�� -327.67 �� +327.68 ����/C)
  267. };
  268. struct TEcalThermPhasePoint { // ����� ������� ���������� ������������� (����)
  269. int16_t Phase; // �������� int16, ���������� �� �������� �������� (max/2+min/2)
  270. };
  271. // ������ ������ ���������� ������������ :
  272. // Short : ���. �����������, �������� 0.01 ��/C (�� -327.67 �� +327.68 ��/C)
  273. // Short : ����. �����������, �������� 0.01 ��/C (�� -327.67 �� +327.68 ��/C)
  274. // UShort : ����� 1. ����������� �-� � ��/C, ����� min � max, �������� (max - min)/65536 ��/C.
  275. // UShort : ����� 2. ����������� �-�...
  276. // ...
  277. // UShort : ����� N. ����������� �-�...
  278. // 4 Bytes : CRC.
  279. // Short : ���. �����������, �������� 0.01 ����/C (�� -327.67 �� +327.68 ����/C)
  280. // Short : ����. �����������, �������� 0.01 ����/C (�� -327.67 �� +327.68 ����/C)
  281. // UShort : ����� 1. ������� �-� � ����/C, ����� min � max, �������� (max - min)/65536 ����/C.
  282. // UShort : ����� 2. ������� �-�...
  283. // ...
  284. // UShort : ����� N. ������� �-�...
  285. // 4 Bytes : CRC.
  286. /*
  287. struct TEcalThermMagnTable_virtual {
  288. struct TEcalThermMagnHeader magnHeader;
  289. struct TEcalThermMagnPoint magnPoint[];
  290. uint32_t crc32;
  291. };
  292. */
  293. /*
  294. struct TEcalThermPhaseTable_virtual {
  295. struct TEcalThermPhaseHeader phaseHeader;
  296. struct TEcalThermPhasePoint phasePoint[];
  297. uint32_t crc32;
  298. };
  299. */
  300. //
  301. // ������� ���������� ������ ���������� ������������ � ������ ��� :
  302. // ������� ���� � ��� �� �������, ��� � ������� ��������������, � ������
  303. // ����, ��� ������ ���������, �������� Short A, ������������ �����
  304. // ������ �����������������.
  305. //---------------------------------------------------------------------------
  306. // ������� ������� ������������� ������
  307. // SC6000, SC8000, SC4000
  308. // Bank0: 0x000000 - 0x07FFFF ���������� ������
  309. // Bank1: 0x100000 - 0x17FFFF ���������������� ������
  310. // SC840X
  311. // Bank0: 0x000000 - 0x1FFFFF ���������� ������
  312. // Bank1: 0x200000 - 0x3BFFFF ���������������� ������
  313. // SC2001
  314. // Bank0: 0x000000 - 0x1EFFFF ���������� ������
  315. // Bank1: 0x1F0000 - 0x3EFFFF ���������������� ������
  316. //
  317. // ----------------------------------------------------------------------------------------------
  318. // | | SC6000 | SC8000 | SC8401 | NFM 2520
  319. // | | SC4000 | NFM 2509 | SC8402 |
  320. // ----------------------------------------------------------------------------------------------
  321. // Bank0 | ��� | 0 | 0 | 0 | 0
  322. // ��������� | ����� | 128 | 128 | 128 | 128
  323. // ----------------------------------------------------------------------------------------------
  324. // ��������� | ���. | 128 | 128 | 128 | 128
  325. // �������������� | ����� | 302+14*(6*N+8) | 302+18*(6*N+8) | 302+60*(6*N+8) | 302+18*(6*N+8)
  326. // | ����* | 302898 | 389354 | 1297142 | 389354
  327. // | ����� | 303026 | 389482 | 1297270 | 389482
  328. // ----------------------------------------------------------------------------------------------
  329. // ���������������� | ���. | 400000 | 400000 | 1500000 | 400000
  330. // | ����� | 80+14*2*(2*N+8)| 80+18*2*(2*N+8)| 80+60*2*(2*N+8)| 80+18*2*(2*N+8)
  331. // | ����* | 89960 | 115640 | 385280 | 115640
  332. // | ����� | 489960 | 515640 | 1885280 | 515640
  333. // ----------------------------------------------------------------------------------------------
  334. // ����� Bank0 | | 524287 | 524287 | 2097151 | 2031615
  335. // ----------------------------------------------------------------------------------------------
  336. // Bank1 | ���. | 1048576 | 1048576 | 2097152 | 2031616
  337. // ���������������� | ����� | 302+14*(6*N+8) | 302+18*(6*N+8) | 302+60*(6*N+8) | 302+18*(6*N+8)
  338. // �������������� #1 | ����* | 134898 | 173354 | 577142 | 173354
  339. // | ����� | 1183474 | 1221930 | 2674294 | 2204970
  340. // ----------------------------------------------------------------------------------------------
  341. // ���������������� | ���. | 1223338 | 1223338 | 2708812 | 2206378
  342. // �������������� #2 | ����� | 1358236 | 1396692 | 3285954 | 2379732
  343. // ----------------------------------------------------------------------------------------------
  344. // ���������������� | ���. | 1398100 | 1398100 | 3320472 | 2381140
  345. // �������������� #3 | ����� | 1532998 | 1571454 | 3897614 | 2554494
  346. // ----------------------------------------------------------------------------------------------
  347. // ����� Bank1 | | 1572863 | 1572863 | 3932159 | 4128767
  348. // ----------------------------------------------------------------------------------------------
  349. // * - ������������ ����� ����� � ���. ���-�� 3601
  350. // * - ������������ ����� ����� � �����. ���-�� 1601
  351. // * - ������������ ����� ����� � ���������. 1601
  352. //
  353. #pragma pack(push, 1)
  354. // ���� ������ ���������� ���
  355. struct TEcalRemoteMode {
  356. uint8_t Marker;
  357. uint16_t Time;
  358. uint8_t Sum;
  359. };
  360. #pragma pack(pop)
  361. #endif // ECalUnitH
  362. //// ������:
  363. //////////---------------------------------------------------------------------------
  364. ////////#pragma pack(push, 1)
  365. ////////
  366. ////////
  367. ////////// ��������� ���������� ��������������������� �������
  368. ////////struct TEtermPoint {
  369. //////// short int point;
  370. ////////};
  371. ////////#pragma pack(pop)
  372. ////////#pragma pack(push, 1)
  373. ////////// ������� ������ �������������� 14 �������� ��� SC6000, 18 �������� ��� SC8000:
  374. ////////// ��� ������ �������� - min � max ��� Magn, ����� Points ������ (Magn + Angle)
  375. ////////// _____________________
  376. ////////// \ .
  377. ////////// 4 + ShortA + CRC |
  378. ////////// 4 + ShortB + CRC |
  379. ////////// 4 + OpenA + CRC |
  380. ////////// 4 + OpenB + CRC |
  381. ////////// 4 + LoadA + CRC |________[ Characterization Data ]______
  382. ////////// 4 + LoadB + CRC | | |
  383. ////////// 4 + Thru11 + CRC | | sc6000 = 14 * (4 + 2*Points*3 + 4) |
  384. ////////// 4 + Thru21 + CRC | | sc8000 = 18 * (4 + 2*Points*3 + 4) |
  385. ////////// 4 + Thru12 + CRC | |_____________________________________|
  386. ////////// 4 + Thru22 + CRC |
  387. ////////// 4 + Atten11+ CRC |
  388. ////////// 4 + Atten21+ CRC |
  389. ////////// 4 + Atten12+ CRC |
  390. ////////// 4 + Atten22+ CRC |
  391. ////////// _ _ _ _ _ _ _ _ _ _ _|
  392. ////////// |
  393. ////////// (SC8000 only) |
  394. ////////// |
  395. ////////// 4 + Load2A + CRC |
  396. ////////// 4 + Load2B + CRC |
  397. ////////// 4 + Open2A + CRC |
  398. ////////// 4 + Open2B + CRC |
  399. ////////// |
  400. ////////// _____________________|
  401. ////////
  402. ////////
  403. ////////// ����� ������ ��������������
  404. ////////
  405. ////////#define CHARACTERIZATION_TABLE_SIZE(POINTS) (4 + 2 * sizeof(short) + sizeof(struct TEcalPoint2) * POINTS )
  406. ////////#define CHARACTERIZATION_TOTAL_SIZE_SC6000(POINTS) (14 * (CHARACTERIZATION_TABLE_SIZE(POINTS) /*+ 4*/))
  407. ////////#define CHARACTERIZATION_TOTAL_SIZE_SC8000(POINTS) (18 * (CHARACTERIZATION_TABLE_SIZE(POINTS) /*+ 4*/))
  408. ////////#define CHARACTERIZATION_DATA_END_SC6000(POINTS) (sizeof(struct TEcalDataHeaderCRC) + CHARACTERIZATION_TOTAL_SIZE_SC6000(POINTS))
  409. ////////#define CHARACTERIZATION_DATA_END_SC8000(POINTS) (sizeof(struct TEcalDataHeaderCRC) + CHARACTERIZATION_TOTAL_SIZE_SC8000(POINTS))
  410. ////////
  411. ////////
  412. ////////#define FACTORY_MAX_DATA_POINTS 3601
  413. ////////#define MAX_TERMOCOMP_POINTS 1601
  414. ////////#define USER_MAX_DATA_POINTS 1601
  415. ////////
  416. ////////// ����� ������� ������������� ������������� (���� ����� - 3699 ��������������, 1723 ���������������� )
  417. ////////#define THERM_COMP_ADDR 400000
  418. ////////
  419. ////////struct TEcalTCompHeader {
  420. //////// char CalDate[12]; // ���� ������
  421. //////// char CalTime[10]; // ����� ������
  422. //////// double Fmin;
  423. //////// double Fmax;
  424. //////// int Points;
  425. //////// int Flags; // 1 - �������/�����������
  426. //////// char FileName[20]; // ��� ����� ������
  427. //////// char Reserved[10];
  428. ////////};
  429. ////////struct TEcalTCompHeaderCRC { //80
  430. //////// struct TEcalTCompHeader Hdr;
  431. //////// ULONG CRC;
  432. ////////};
  433. ////////
  434. ////////// ������� ���������� ������������ 28 �������� ��� SC6000, 36 ��� SC8000, ���� short: ��� ������ �������� - min � max, ����� Points ������
  435. ////////
  436. //////// // ������������� �-�� ��/C ��� ����/C ��������� � ���������� ���� short
  437. //////// // +4 ����� - ��� �������������� ������������ min, max
  438. //////// // ���� �������������� �-�� ��������� � ��������� 0.01 (�� -327 �� +327 �� ��� ��������)
  439. //////// // ������������� �-�� ��������� � ���������� ��������� (65535 ������� �� min �� max)
  440. ////////
  441. ////////// ������� ���� � ��������� �������:
  442. ////////// magn ShortA (��/C)
  443. ////////// phase ShortA (����/C)
  444. ////////// magn ShortB (��/C)
  445. ////////// phase ShortB (����/C)
  446. ////////
  447. ////////// magn OpenA (��/C)
  448. ////////// phase OpenA (����/C)
  449. ////////// magn OpenB (��/C)
  450. ////////// phase OpenB (����/C)
  451. ////////
  452. ////////// magn LoadA (��/C)
  453. ////////// phase LoadA (����/C)
  454. ////////// magn LoadB (��/C)
  455. ////////// phase LoadB (����/C)
  456. ////////
  457. ////////// magn Thru11 (��/C) // ��������! ������� ���������� ���������� �-��� ���������
  458. ////////// phase Thru11 (����/C) // �� ���������� ������� �-��� ��������������
  459. ////////// magn Thru21 (��/C)
  460. ////////// phase Thru21 (����/C)
  461. ////////// magn Thru12 (��/C) // ��������� 4 ������� ������������ � ����� �������������
  462. ////////// phase Thru12 (����/C) // ��� ��� ������� �-��� Thru11 � Thru22 ����
  463. ////////// magn Thru22 (��/C)
  464. ////////// phase Thru22 (����/C)
  465. ////////
  466. ////////// magn Atten11 (��/C)
  467. ////////// phase Atten11 (����/C)
  468. ////////// magn Atten21 (��/C)
  469. ////////// phase Atten21 (����/C)
  470. ////////// magn Atten12 (��/C)
  471. ////////// phase Atten12 (����/C)
  472. ////////// magn Atten22 (��/C)
  473. ////////// phase Atten22 (����/C)
  474. ////////
  475. ////////// _______________________________
  476. ////////// |
  477. ////////// magn Load2A (��/C) |
  478. ////////// phase Load2A (����/C) |
  479. ////////// magn Load2B (��/C) |
  480. ////////// phase Load2B (����/C) |--- SC8000 only
  481. ////////// magn Open2A (��/C) |
  482. ////////// phase Open2A (����/C) |
  483. ////////// magn Open2B (��/C) |
  484. ////////// phase Open2B (����/C) |
  485. ////////// _______________________________|
  486. ////////
  487. ////////// ������ ������ ������� CRC
  488. ////////
  489. //////////---------------------------------------------------------------------------
  490. ////////// Factory Data � ������ FLASH
  491. ////////// User1-3 Data � FLASH 0x100000-0x1FFFFF, ����1, ������� ���������� ������ �� 3 �����: 524288/3=174762
  492. ////////// � ���� ���������� ����� ��� - 1614. (������� ������� ���� ���������� ������ �� 512��)
  493. ////////
  494. ////////// !!! ��������� 8 ���� ����-1 ��������������� ��� ��������� USBTMC !!!
  495. ////////
  496. ////////// ������ ����-1
  497. //////////-------------------------- user characterization #1 ------------------ 0x0000 0000
  498. ////////// TEcalDataHeader + CRC : � � � � � � � � � ��������������
  499. ////////// � � � � � � � 1 + CRC
  500. ////////// � � � � � � � 2 + CRC
  501. ////////// ...
  502. ////////// � � � � � � � 18+ CRC
  503. //////////-------------------------- user characterization #2 ------------------ 0x0002 AAAA
  504. ////////// TEcalDataHeader + CRC : � � � � � � � � � ��������������
  505. ////////// � � � � � � � 1 + CRC
  506. ////////// � � � � � � � 2 + CRC
  507. ////////// ...
  508. ////////// � � � � � � � 18+ CRC
  509. //////////-------------------------- user characterization #3 ------------------ 0x0005 5554
  510. ////////// TEcalDataHeader + CRC : � � � � � � � � � ��������������
  511. ////////// � � � � � � � 1 + CRC
  512. ////////// � � � � � � � 2 + CRC
  513. ////////// ...
  514. ////////// � � � � � � � 18+ CRC
  515. //////////---------------------------------------------------------------------- 0x0007 FFFE
  516. ////////#pragma pack(pop) // 1F FFF7
  517. ////////
  518. //////////---------------------------------------------------------------------------
  519. ////////#endif