level.c 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125
  1. #include "stdint.h"
  2. #include "cang.h"
  3. #include "stdint.h"
  4. #include "string.h"
  5. #include "stdio.h"
  6. #include "usart.h"
  7. #include "config.h"
  8. #include "rkg.h"
  9. #include "cang.h"
  10. #include "kzq.h"
  11. #include "level.h"
  12. #include "tem.h"
  13. #include "angle.h"
  14. #include "xyf.h"
  15. #include "main.h"
  16. //每仓一个
  17. Level_Inf level_inf[SENSOR_DEEP];
  18. #define PI 3.1415926
  19. #define Buffer_Size 20
  20. #if 0
  21. //static uint16 oil_densit[30] = //平均密度
  22. //{720,720,725,725,737,737,753, //汽油: 89、90、92、93、95、97、98
  23. // 830,835,840,830,820,820,850,870,}; //柴油: 5、0、-10、-20、-30、-35、10、20
  24. //
  25. //static float oil_coe[30]=
  26. //{0.85,0.85,0.85,0.85,0.83,0.83,0.80, //温度,密度系数表
  27. // 0.69,0.69,0.68,0.69,0.70,0.70,0.67,0.65,
  28. //};
  29. //static uint16_t level_up[8] = {1903,2059,2122,2106,2096,
  30. //};
  31. //static uint16_t level_low[8] = {1238,1419,1382,1441,1371,
  32. //};
  33. // 1-N仓罐容表
  34. const uint16_t H_1cang[200] = {
  35. 0,
  36. 1293,
  37. 1296,
  38. 1299,
  39. 1302,
  40. 1305,
  41. 1308,
  42. 1311,
  43. 1314,
  44. 1317,
  45. 1320,
  46. 1323,
  47. 1326,
  48. 1329,
  49. 1331,
  50. 1334,
  51. 1337,
  52. 1340,
  53. 1343,
  54. 1346,
  55. 1349,
  56. 1352,
  57. 1355,
  58. 1358,
  59. 1361,
  60. 1364,
  61. 1367,
  62. 1370,
  63. 1373,
  64. 1376,
  65. 1379,
  66. 1382,
  67. 1385,
  68. 1388,
  69. 1391,
  70. 1394,
  71. 1397,
  72. 1400,
  73. 1403,
  74. 1406,
  75. 1409,
  76. 1412,
  77. 1415,
  78. 1418,
  79. 1421,
  80. 1424,
  81. 1427,
  82. 1430,
  83. 1434,
  84. 1437,
  85. 1440,
  86. 1443,
  87. 1446,
  88. 1449,
  89. 1452,
  90. 1455,
  91. 1458,
  92. 1462,
  93. 1465,
  94. 1468,
  95. 1471,
  96. 1474,
  97. 1477,
  98. 1480,
  99. 1484,
  100. 1487,
  101. 1490,
  102. 1493,
  103. 1496,
  104. 1499,
  105. 1503,
  106. 1506,
  107. 1509,
  108. 1512,
  109. 1515,
  110. 1519,
  111. 1522,
  112. 1525,
  113. 1528,
  114. 1531,
  115. 1535,
  116. 1538,
  117. 1541,
  118. 1544,
  119. 1548,
  120. 1551,
  121. 1554,
  122. 1557,
  123. 1560,
  124. 1564,
  125. 1567,
  126. 1570,
  127. 1573,
  128. 1577,
  129. 1580,
  130. 1583,
  131. 1587,
  132. 1590,
  133. 1593,
  134. 1596,
  135. 1600,
  136. 1603,
  137. 1606,
  138. 1610,
  139. 1613,
  140. 1616,
  141. 1619,
  142. 1623,
  143. 1626,
  144. 1630,
  145. 1633,
  146. 1636,
  147. 1640,
  148. 1643,
  149. 1647,
  150. 1650,
  151. 1654,
  152. 1657,
  153. 1661,
  154. 1665,
  155. 1668,
  156. 1672,
  157. 1675,
  158. 1679,
  159. 1683,
  160. 1686,
  161. 1690,
  162. 1694,
  163. 1697,
  164. 1701,
  165. 1705,
  166. 1709,
  167. 1712,
  168. 1716,
  169. 1720,
  170. 1724,
  171. 1728,
  172. 1731,
  173. 1735,
  174. 1739,
  175. 1743,
  176. 1747,
  177. 1751,
  178. 1755,
  179. 1759,
  180. 1763,
  181. 1768,
  182. 1772,
  183. 1776,
  184. 1780,
  185. 1785,
  186. 1789,
  187. 1793,
  188. 1798,
  189. 1802,
  190. 1807,
  191. 1812,
  192. 1817,
  193. 1821,
  194. 1827,
  195. 1832,
  196. 1837,
  197. 1843,
  198. 1849,
  199. 1855,
  200. 1861,
  201. };
  202. const uint16_t H_2cang[200] = {
  203. 0,
  204. 1314,
  205. 1317,
  206. 1320,
  207. 1323,
  208. 1326,
  209. 1329,
  210. 1332,
  211. 1335,
  212. 1338,
  213. 1341,
  214. 1344,
  215. 1347,
  216. 1350,
  217. 1353,
  218. 1356,
  219. 1359,
  220. 1362,
  221. 1365,
  222. 1368,
  223. 1371,
  224. 1374,
  225. 1377,
  226. 1380,
  227. 1383,
  228. 1386,
  229. 1389,
  230. 1392,
  231. 1395,
  232. 1398,
  233. 1401,
  234. 1404,
  235. 1407,
  236. 1410,
  237. 1413,
  238. 1416,
  239. 1419,
  240. 1422,
  241. 1426,
  242. 1429,
  243. 1432,
  244. 1435,
  245. 1438,
  246. 1441,
  247. 1444,
  248. 1447,
  249. 1450,
  250. 1453,
  251. 1456,
  252. 1460,
  253. 1463,
  254. 1466,
  255. 1469,
  256. 1472,
  257. 1475,
  258. 1478,
  259. 1482,
  260. 1485,
  261. 1488,
  262. 1491,
  263. 1494,
  264. 1497,
  265. 1501,
  266. 1504,
  267. 1507,
  268. 1510,
  269. 1513,
  270. 1517,
  271. 1520,
  272. 1523,
  273. 1526,
  274. 1530,
  275. 1533,
  276. 1536,
  277. 1539,
  278. 1542,
  279. 1546,
  280. 1549,
  281. 1552,
  282. 1555,
  283. 1559,
  284. 1562,
  285. 1565,
  286. 1569,
  287. 1572,
  288. 1575,
  289. 1578,
  290. 1582,
  291. 1585,
  292. 1588,
  293. 1592,
  294. 1595,
  295. 1598,
  296. 1602,
  297. 1605,
  298. 1608,
  299. 1612,
  300. 1615,
  301. 1618,
  302. 1622,
  303. 1625,
  304. 1628,
  305. 1632,
  306. 1635,
  307. 1639,
  308. 1642,
  309. 1645,
  310. 1649,
  311. 1652,
  312. 1656,
  313. 1659,
  314. 1663,
  315. 1667,
  316. 1670,
  317. 1674,
  318. 1677,
  319. 1681,
  320. 1685,
  321. 1688,
  322. 1692,
  323. 1696,
  324. 1700,
  325. 1703,
  326. 1707,
  327. 1711,
  328. 1715,
  329. 1719,
  330. 1723,
  331. 1727,
  332. 1730,
  333. 1734,
  334. 1738,
  335. 1742,
  336. 1747,
  337. 1751,
  338. 1755,
  339. 1759,
  340. 1763,
  341. 1767,
  342. 1771,
  343. 1776,
  344. 1780,
  345. 1785,
  346. 1789,
  347. 1793,
  348. 1798,
  349. 1803,
  350. 1807,
  351. 1812,
  352. 1817,
  353. 1821,
  354. 1826,
  355. 1831,
  356. 1835,
  357. 1840,
  358. 1846,
  359. 1851,
  360. 1857,
  361. 1864,
  362. 1870,
  363. 1877,
  364. };
  365. const uint16_t H_3cang[200] = {
  366. 0,
  367. 1292,
  368. 1295,
  369. 1298,
  370. 1301,
  371. 1304,
  372. 1307,
  373. 1310,
  374. 1313,
  375. 1316,
  376. 1319,
  377. 1321,
  378. 1324,
  379. 1327,
  380. 1330,
  381. 1333,
  382. 1336,
  383. 1339,
  384. 1342,
  385. 1345,
  386. 1348,
  387. 1351,
  388. 1354,
  389. 1357,
  390. 1360,
  391. 1363,
  392. 1366,
  393. 1369,
  394. 1372,
  395. 1375,
  396. 1378,
  397. 1381,
  398. 1384,
  399. 1387,
  400. 1390,
  401. 1393,
  402. 1396,
  403. 1399,
  404. 1402,
  405. 1405,
  406. 1408,
  407. 1411,
  408. 1414,
  409. 1417,
  410. 1420,
  411. 1424,
  412. 1427,
  413. 1430,
  414. 1433,
  415. 1436,
  416. 1439,
  417. 1442,
  418. 1445,
  419. 1448,
  420. 1451,
  421. 1454,
  422. 1457,
  423. 1460,
  424. 1464,
  425. 1467,
  426. 1470,
  427. 1473,
  428. 1476,
  429. 1479,
  430. 1482,
  431. 1485,
  432. 1488,
  433. 1492,
  434. 1495,
  435. 1498,
  436. 1501,
  437. 1504,
  438. 1507,
  439. 1510,
  440. 1514,
  441. 1517,
  442. 1520,
  443. 1523,
  444. 1526,
  445. 1530,
  446. 1533,
  447. 1536,
  448. 1539,
  449. 1542,
  450. 1546,
  451. 1549,
  452. 1552,
  453. 1555,
  454. 1559,
  455. 1562,
  456. 1565,
  457. 1568,
  458. 1572,
  459. 1575,
  460. 1578,
  461. 1582,
  462. 1585,
  463. 1588,
  464. 1591,
  465. 1595,
  466. 1598,
  467. 1601,
  468. 1605,
  469. 1608,
  470. 1611,
  471. 1615,
  472. 1618,
  473. 1622,
  474. 1625,
  475. 1629,
  476. 1632,
  477. 1636,
  478. 1639,
  479. 1643,
  480. 1646,
  481. 1650,
  482. 1653,
  483. 1657,
  484. 1660,
  485. 1664,
  486. 1668,
  487. 1671,
  488. 1675,
  489. 1679,
  490. 1683,
  491. 1686,
  492. 1690,
  493. 1694,
  494. 1698,
  495. 1702,
  496. 1705,
  497. 1709,
  498. 1713,
  499. 1717,
  500. 1721,
  501. 1725,
  502. 1729,
  503. 1732,
  504. 1736,
  505. 1740,
  506. 1744,
  507. 1748,
  508. 1752,
  509. 1757,
  510. 1761,
  511. 1765,
  512. 1769,
  513. 1773,
  514. 1778,
  515. 1782,
  516. 1787,
  517. 1791,
  518. 1796,
  519. 1800,
  520. 1805,
  521. 1810,
  522. 1815,
  523. 1820,
  524. 1825,
  525. 1830,
  526. 1835,
  527. 1841,
  528. 1846,
  529. 1852,
  530. 1857,
  531. 1863,
  532. };
  533. const uint16_t H_4cang[200] = {
  534. 0,
  535. 1304,
  536. 1307,
  537. 1310,
  538. 1313,
  539. 1316,
  540. 1318,
  541. 1321,
  542. 1324,
  543. 1327,
  544. 1330,
  545. 1333,
  546. 1336,
  547. 1339,
  548. 1342,
  549. 1345,
  550. 1348,
  551. 1350,
  552. 1353,
  553. 1356,
  554. 1359,
  555. 1362,
  556. 1365,
  557. 1368,
  558. 1371,
  559. 1374,
  560. 1377,
  561. 1380,
  562. 1383,
  563. 1386,
  564. 1389,
  565. 1392,
  566. 1395,
  567. 1398,
  568. 1401,
  569. 1404,
  570. 1407,
  571. 1410,
  572. 1413,
  573. 1416,
  574. 1419,
  575. 1422,
  576. 1425,
  577. 1428,
  578. 1431,
  579. 1434,
  580. 1437,
  581. 1440,
  582. 1444,
  583. 1447,
  584. 1450,
  585. 1453,
  586. 1456,
  587. 1459,
  588. 1462,
  589. 1465,
  590. 1468,
  591. 1471,
  592. 1475,
  593. 1478,
  594. 1481,
  595. 1484,
  596. 1487,
  597. 1490,
  598. 1494,
  599. 1497,
  600. 1500,
  601. 1503,
  602. 1506,
  603. 1509,
  604. 1513,
  605. 1516,
  606. 1519,
  607. 1522,
  608. 1526,
  609. 1529,
  610. 1532,
  611. 1535,
  612. 1539,
  613. 1542,
  614. 1545,
  615. 1548,
  616. 1552,
  617. 1555,
  618. 1558,
  619. 1562,
  620. 1565,
  621. 1568,
  622. 1572,
  623. 1575,
  624. 1578,
  625. 1582,
  626. 1585,
  627. 1588,
  628. 1592,
  629. 1595,
  630. 1599,
  631. 1602,
  632. 1605,
  633. 1609,
  634. 1612,
  635. 1616,
  636. 1619,
  637. 1623,
  638. 1626,
  639. 1630,
  640. 1633,
  641. 1637,
  642. 1640,
  643. 1644,
  644. 1647,
  645. 1651,
  646. 1655,
  647. 1658,
  648. 1662,
  649. 1666,
  650. 1669,
  651. 1673,
  652. 1677,
  653. 1680,
  654. 1684,
  655. 1688,
  656. 1692,
  657. 1696,
  658. 1699,
  659. 1703,
  660. 1707,
  661. 1711,
  662. 1715,
  663. 1719,
  664. 1723,
  665. 1727,
  666. 1731,
  667. 1735,
  668. 1739,
  669. 1743,
  670. 1747,
  671. 1751,
  672. 1756,
  673. 1760,
  674. 1764,
  675. 1769,
  676. 1773,
  677. 1778,
  678. 1782,
  679. 1787,
  680. 1791,
  681. 1796,
  682. 1801,
  683. 1805,
  684. 1810,
  685. 1815,
  686. 1820,
  687. 1825,
  688. 1830,
  689. 1835,
  690. 1840,
  691. 1846,
  692. 1851,
  693. 1857,
  694. 1863,
  695. };
  696. uint16_t Volume_1cang[200] = {
  697. 0,
  698. 8000,
  699. 8020,
  700. 8040,
  701. 8060,
  702. 8080,
  703. 8100,
  704. 8120,
  705. 8140,
  706. 8160,
  707. 8180,
  708. 8200,
  709. 8220,
  710. 8240,
  711. 8260,
  712. 8280,
  713. 8300,
  714. 8320,
  715. 8340,
  716. 8360,
  717. 8380,
  718. 8400,
  719. 8420,
  720. 8440,
  721. 8460,
  722. 8480,
  723. 8500,
  724. 8520,
  725. 8540,
  726. 8560,
  727. 8580,
  728. 8600,
  729. 8620,
  730. 8640,
  731. 8660,
  732. 8680,
  733. 8700,
  734. 8720,
  735. 8740,
  736. 8760,
  737. 8780,
  738. 8800,
  739. 8820,
  740. 8840,
  741. 8860,
  742. 8880,
  743. 8900,
  744. 8920,
  745. 8940,
  746. 8960,
  747. 8980,
  748. 9000,
  749. 9020,
  750. 9040,
  751. 9060,
  752. 9080,
  753. 9100,
  754. 9120,
  755. 9140,
  756. 9160,
  757. 9180,
  758. 9200,
  759. 9220,
  760. 9240,
  761. 9260,
  762. 9280,
  763. 9300,
  764. 9320,
  765. 9340,
  766. 9360,
  767. 9380,
  768. 9400,
  769. 9420,
  770. 9440,
  771. 9460,
  772. 9480,
  773. 9500,
  774. 9520,
  775. 9540,
  776. 9560,
  777. 9580,
  778. 9600,
  779. 9620,
  780. 9640,
  781. 9660,
  782. 9680,
  783. 9700,
  784. 9720,
  785. 9740,
  786. 9760,
  787. 9780,
  788. 9800,
  789. 9820,
  790. 9840,
  791. 9860,
  792. 9880,
  793. 9900,
  794. 9920,
  795. 9940,
  796. 9960,
  797. 9980,
  798. 10000,
  799. 10020,
  800. 10040,
  801. 10060,
  802. 10080,
  803. 10100,
  804. 10120,
  805. 10140,
  806. 10160,
  807. 10180,
  808. 10200,
  809. 10220,
  810. 10240,
  811. 10260,
  812. 10280,
  813. 10300,
  814. 10320,
  815. 10340,
  816. 10360,
  817. 10380,
  818. 10400,
  819. 10420,
  820. 10440,
  821. 10460,
  822. 10480,
  823. 10500,
  824. 10520,
  825. 10540,
  826. 10560,
  827. 10580,
  828. 10600,
  829. 10620,
  830. 10640,
  831. 10660,
  832. 10680,
  833. 10700,
  834. 10720,
  835. 10740,
  836. 10760,
  837. 10780,
  838. 10800,
  839. 10820,
  840. 10840,
  841. 10860,
  842. 10880,
  843. 10900,
  844. 10920,
  845. 10940,
  846. 10960,
  847. 10980,
  848. 11000,
  849. 11020,
  850. 11040,
  851. 11060,
  852. 11080,
  853. 11100,
  854. 11120,
  855. 11140,
  856. 11160,
  857. 11180,
  858. 11200,
  859. 11220,
  860. 11240,
  861. 11260,
  862. 11280,
  863. };
  864. uint16_t Volume_2cang[200] = {
  865. 0,
  866. 8000,
  867. 8020,
  868. 8040,
  869. 8060,
  870. 8080,
  871. 8100,
  872. 8120,
  873. 8140,
  874. 8160,
  875. 8180,
  876. 8200,
  877. 8220,
  878. 8240,
  879. 8260,
  880. 8280,
  881. 8300,
  882. 8320,
  883. 8340,
  884. 8360,
  885. 8380,
  886. 8400,
  887. 8420,
  888. 8440,
  889. 8460,
  890. 8480,
  891. 8500,
  892. 8520,
  893. 8540,
  894. 8560,
  895. 8580,
  896. 8600,
  897. 8620,
  898. 8640,
  899. 8660,
  900. 8680,
  901. 8700,
  902. 8720,
  903. 8740,
  904. 8760,
  905. 8780,
  906. 8800,
  907. 8820,
  908. 8840,
  909. 8860,
  910. 8880,
  911. 8900,
  912. 8920,
  913. 8940,
  914. 8960,
  915. 8980,
  916. 9000,
  917. 9020,
  918. 9040,
  919. 9060,
  920. 9080,
  921. 9100,
  922. 9120,
  923. 9140,
  924. 9160,
  925. 9180,
  926. 9200,
  927. 9220,
  928. 9240,
  929. 9260,
  930. 9280,
  931. 9300,
  932. 9320,
  933. 9340,
  934. 9360,
  935. 9380,
  936. 9400,
  937. 9420,
  938. 9440,
  939. 9460,
  940. 9480,
  941. 9500,
  942. 9520,
  943. 9540,
  944. 9560,
  945. 9580,
  946. 9600,
  947. 9620,
  948. 9640,
  949. 9660,
  950. 9680,
  951. 9700,
  952. 9720,
  953. 9740,
  954. 9760,
  955. 9780,
  956. 9800,
  957. 9820,
  958. 9840,
  959. 9860,
  960. 9880,
  961. 9900,
  962. 9920,
  963. 9940,
  964. 9960,
  965. 9980,
  966. 10000,
  967. 10020,
  968. 10040,
  969. 10060,
  970. 10080,
  971. 10100,
  972. 10120,
  973. 10140,
  974. 10160,
  975. 10180,
  976. 10200,
  977. 10220,
  978. 10240,
  979. 10260,
  980. 10280,
  981. 10300,
  982. 10320,
  983. 10340,
  984. 10360,
  985. 10380,
  986. 10400,
  987. 10420,
  988. 10440,
  989. 10460,
  990. 10480,
  991. 10500,
  992. 10520,
  993. 10540,
  994. 10560,
  995. 10580,
  996. 10600,
  997. 10620,
  998. 10640,
  999. 10660,
  1000. 10680,
  1001. 10700,
  1002. 10720,
  1003. 10740,
  1004. 10760,
  1005. 10780,
  1006. 10800,
  1007. 10820,
  1008. 10840,
  1009. 10860,
  1010. 10880,
  1011. 10900,
  1012. 10920,
  1013. 10940,
  1014. 10960,
  1015. 10980,
  1016. 11000,
  1017. 11020,
  1018. 11040,
  1019. 11060,
  1020. 11080,
  1021. 11100,
  1022. 11120,
  1023. 11140,
  1024. 11160,
  1025. 11180,
  1026. };
  1027. uint16_t Volume_3cang[200] = {
  1028. 0,
  1029. 8000,
  1030. 8020,
  1031. 8040,
  1032. 8060,
  1033. 8080,
  1034. 8100,
  1035. 8120,
  1036. 8140,
  1037. 8160,
  1038. 8180,
  1039. 8200,
  1040. 8220,
  1041. 8240,
  1042. 8260,
  1043. 8280,
  1044. 8300,
  1045. 8320,
  1046. 8340,
  1047. 8360,
  1048. 8380,
  1049. 8400,
  1050. 8420,
  1051. 8440,
  1052. 8460,
  1053. 8480,
  1054. 8500,
  1055. 8520,
  1056. 8540,
  1057. 8560,
  1058. 8580,
  1059. 8600,
  1060. 8620,
  1061. 8640,
  1062. 8660,
  1063. 8680,
  1064. 8700,
  1065. 8720,
  1066. 8740,
  1067. 8760,
  1068. 8780,
  1069. 8800,
  1070. 8820,
  1071. 8840,
  1072. 8860,
  1073. 8880,
  1074. 8900,
  1075. 8920,
  1076. 8940,
  1077. 8960,
  1078. 8980,
  1079. 9000,
  1080. 9020,
  1081. 9040,
  1082. 9060,
  1083. 9080,
  1084. 9100,
  1085. 9120,
  1086. 9140,
  1087. 9160,
  1088. 9180,
  1089. 9200,
  1090. 9220,
  1091. 9240,
  1092. 9260,
  1093. 9280,
  1094. 9300,
  1095. 9320,
  1096. 9340,
  1097. 9360,
  1098. 9380,
  1099. 9400,
  1100. 9420,
  1101. 9440,
  1102. 9460,
  1103. 9480,
  1104. 9500,
  1105. 9520,
  1106. 9540,
  1107. 9560,
  1108. 9580,
  1109. 9600,
  1110. 9620,
  1111. 9640,
  1112. 9660,
  1113. 9680,
  1114. 9700,
  1115. 9720,
  1116. 9740,
  1117. 9760,
  1118. 9780,
  1119. 9800,
  1120. 9820,
  1121. 9840,
  1122. 9860,
  1123. 9880,
  1124. 9900,
  1125. 9920,
  1126. 9940,
  1127. 9960,
  1128. 9980,
  1129. 10000,
  1130. 10020,
  1131. 10040,
  1132. 10060,
  1133. 10080,
  1134. 10100,
  1135. 10120,
  1136. 10140,
  1137. 10160,
  1138. 10180,
  1139. 10200,
  1140. 10220,
  1141. 10240,
  1142. 10260,
  1143. 10280,
  1144. 10300,
  1145. 10320,
  1146. 10340,
  1147. 10360,
  1148. 10380,
  1149. 10400,
  1150. 10420,
  1151. 10440,
  1152. 10460,
  1153. 10480,
  1154. 10500,
  1155. 10520,
  1156. 10540,
  1157. 10560,
  1158. 10580,
  1159. 10600,
  1160. 10620,
  1161. 10640,
  1162. 10660,
  1163. 10680,
  1164. 10700,
  1165. 10720,
  1166. 10740,
  1167. 10760,
  1168. 10780,
  1169. 10800,
  1170. 10820,
  1171. 10840,
  1172. 10860,
  1173. 10880,
  1174. 10900,
  1175. 10920,
  1176. 10940,
  1177. 10960,
  1178. 10980,
  1179. 11000,
  1180. 11020,
  1181. 11040,
  1182. 11060,
  1183. 11080,
  1184. 11100,
  1185. 11120,
  1186. 11140,
  1187. 11160,
  1188. 11180,
  1189. 11200,
  1190. 11220,
  1191. 11240,
  1192. 11260,
  1193. 11280,
  1194. };
  1195. uint16_t Volume_4cang[200] = {
  1196. 0,
  1197. 8000,
  1198. 8020,
  1199. 8040,
  1200. 8060,
  1201. 8080,
  1202. 8100,
  1203. 8120,
  1204. 8140,
  1205. 8160,
  1206. 8180,
  1207. 8200,
  1208. 8220,
  1209. 8240,
  1210. 8260,
  1211. 8280,
  1212. 8300,
  1213. 8320,
  1214. 8340,
  1215. 8360,
  1216. 8380,
  1217. 8400,
  1218. 8420,
  1219. 8440,
  1220. 8460,
  1221. 8480,
  1222. 8500,
  1223. 8520,
  1224. 8540,
  1225. 8560,
  1226. 8580,
  1227. 8600,
  1228. 8620,
  1229. 8640,
  1230. 8660,
  1231. 8680,
  1232. 8700,
  1233. 8720,
  1234. 8740,
  1235. 8760,
  1236. 8780,
  1237. 8800,
  1238. 8820,
  1239. 8840,
  1240. 8860,
  1241. 8880,
  1242. 8900,
  1243. 8920,
  1244. 8940,
  1245. 8960,
  1246. 8980,
  1247. 9000,
  1248. 9020,
  1249. 9040,
  1250. 9060,
  1251. 9080,
  1252. 9100,
  1253. 9120,
  1254. 9140,
  1255. 9160,
  1256. 9180,
  1257. 9200,
  1258. 9220,
  1259. 9240,
  1260. 9260,
  1261. 9280,
  1262. 9300,
  1263. 9320,
  1264. 9340,
  1265. 9360,
  1266. 9380,
  1267. 9400,
  1268. 9420,
  1269. 9440,
  1270. 9460,
  1271. 9480,
  1272. 9500,
  1273. 9520,
  1274. 9540,
  1275. 9560,
  1276. 9580,
  1277. 9600,
  1278. 9620,
  1279. 9640,
  1280. 9660,
  1281. 9680,
  1282. 9700,
  1283. 9720,
  1284. 9740,
  1285. 9760,
  1286. 9780,
  1287. 9800,
  1288. 9820,
  1289. 9840,
  1290. 9860,
  1291. 9880,
  1292. 9900,
  1293. 9920,
  1294. 9940,
  1295. 9960,
  1296. 9980,
  1297. 10000,
  1298. 10020,
  1299. 10040,
  1300. 10060,
  1301. 10080,
  1302. 10100,
  1303. 10120,
  1304. 10140,
  1305. 10160,
  1306. 10180,
  1307. 10200,
  1308. 10220,
  1309. 10240,
  1310. 10260,
  1311. 10280,
  1312. 10300,
  1313. 10320,
  1314. 10340,
  1315. 10360,
  1316. 10380,
  1317. 10400,
  1318. 10420,
  1319. 10440,
  1320. 10460,
  1321. 10480,
  1322. 10500,
  1323. 10520,
  1324. 10540,
  1325. 10560,
  1326. 10580,
  1327. 10600,
  1328. 10620,
  1329. 10640,
  1330. 10660,
  1331. 10680,
  1332. 10700,
  1333. 10720,
  1334. 10740,
  1335. 10760,
  1336. 10780,
  1337. 10800,
  1338. 10820,
  1339. 10840,
  1340. 10860,
  1341. 10880,
  1342. 10900,
  1343. 10920,
  1344. 10940,
  1345. 10960,
  1346. 10980,
  1347. 11000,
  1348. 11020,
  1349. 11040,
  1350. 11060,
  1351. 11080,
  1352. 11100,
  1353. 11120,
  1354. 11140,
  1355. 11160,
  1356. 11180,
  1357. };
  1358. static uint16_t Inital_value_Low[4]= {1040,1040,1040,920};
  1359. static uint16_t Inital_value_High[4]= {1865,1880,1880,1880};
  1360. #define TankH1 1.832
  1361. #define TankH2 1.832
  1362. #define TankH3 1.832
  1363. #define TankH4 1.832
  1364. #define TankH5 1.832
  1365. #define TankH6 1.832
  1366. #define TankH7 1.832
  1367. #define TankH8 1.832
  1368. #include"math.h"
  1369. int idxLow = 0;
  1370. static float h_x0;
  1371. //信捷罐容查表计计算程序 邵磊明 增加
  1372. float Calc_Vol(float RadarData, uint16_t *VolArray, const uint16_t *HArray, uint16_t StoreNum)
  1373. {
  1374. float offset[8];
  1375. uint8_t i = 0;
  1376. Level_Inf *plevel = level_inf;
  1377. static uint16_t Indexs = 0, Vt, H_x;
  1378. static float V_y1 = 0, V_y2 = 0, H_x1 = 0, H_x2 = 0;
  1379. ////高度换算
  1380. switch (StoreNum)
  1381. {
  1382. case 1:
  1383. h_x0 = RadarData - plevel[1].Level_Cal_zero;
  1384. plevel[1].Level_Data1 = h_x0;
  1385. if (h_x0 < (-0.5f))
  1386. h_x0 = (-0.5f);
  1387. break;
  1388. case 2:
  1389. h_x0 = RadarData - plevel[2].Level_Cal_zero;
  1390. plevel[2].Level_Data1 = h_x0;
  1391. if (h_x0 < (-0.5f))
  1392. h_x0 = (-0.5f);
  1393. break;
  1394. case 3:
  1395. h_x0 = RadarData - plevel[3].Level_Cal_zero;
  1396. plevel[3].Level_Data1 = h_x0;
  1397. if (h_x0 < (-0.5f))
  1398. h_x0 = (-0.5f);
  1399. break;
  1400. case 4:
  1401. default:
  1402. h_x0 = RadarData - plevel[4].Level_Cal_zero;
  1403. plevel[4].Level_Data1 = h_x0;
  1404. if (h_x0 < (-0.5f))
  1405. h_x0 = (-0.5f);
  1406. break;
  1407. }
  1408. H_x = (uint16_t)(h_x0 * 1000);
  1409. for (Indexs = 0; Indexs <= 160; Indexs++)
  1410. {
  1411. if((HArray[Indexs]>HArray[Indexs + 1]) || (HArray[Indexs + 1]==0))
  1412. break;
  1413. V_y1 = VolArray[Indexs];
  1414. V_y2 = VolArray[Indexs + 1];
  1415. H_x1 = HArray[Indexs];
  1416. H_x2 = HArray[Indexs + 1];
  1417. if (H_x > HArray[Indexs] && H_x <= HArray[Indexs + 1])
  1418. {
  1419. break;
  1420. }
  1421. }
  1422. if((Indexs>=160)||(HArray[Indexs]>HArray[Indexs + 1]) || (HArray[Indexs + 1]==0))
  1423. {
  1424. H_x=H_x2;
  1425. }
  1426. if (H_x <= 0)
  1427. {
  1428. V_y1 = 0;
  1429. V_y2 = 0;
  1430. H_x1 = 0;
  1431. H_x2 = 0;
  1432. H_x = 0;
  1433. Vt = 0;
  1434. }
  1435. else
  1436. Vt = (H_x - H_x1) / (H_x2 - H_x1) * (V_y2 - V_y1) + V_y1;
  1437. return Vt;
  1438. }
  1439. /************************************************************************
  1440. *函数名:Value_Manage
  1441. *输入:罐仓长轴、短轴、液位高度、长度
  1442. *输出:无
  1443. *作用:将标准椭圆柱的液体高度转换为液体体积
  1444. *作者:kdl 时间:
  1445. *************************************************************************/
  1446. #define CangH 1.832
  1447. float data=0;
  1448. int Volume_yuwei = 0;
  1449. uint16_t Value_Manage(uint8_t Cang_Flag)
  1450. {
  1451. int Volume_5mm = 0;
  1452. Level_Inf* plevel = level_inf;
  1453. data = CangH - plevel[(Cang_Flag+1)].Level_Data+plevel[(Cang_Flag+1)].Level_Cal_zero;
  1454. if(data == 65535)
  1455. return 0;
  1456. data = data/10;
  1457. Volume_yuwei = (int)data%5;
  1458. int Volume_Data = 0;
  1459. switch(Cang_Flag)
  1460. {
  1461. case 0:
  1462. Flash_ReadBytes(Volume_1cang,ADD_CANG1_TABLE,200);
  1463. if(data >= Inital_value_High[0])
  1464. plevel[Cang_Flag].Volume_Data = 10900;
  1465. else if(data >= Inital_value_Low[0] && data < Inital_value_High[0])
  1466. {
  1467. Volume_5mm = (data - Inital_value_Low[0])/5;
  1468. Volume_Data = Volume_1cang[Volume_5mm] + (Volume_1cang[Volume_5mm+1] - Volume_1cang[Volume_5mm])*Volume_yuwei/5;
  1469. }
  1470. else if(data >= (Inital_value_High[0]-Inital_value_Low[0]) && data< Inital_value_Low[0])
  1471. Volume_Data= Volume_1cang[0] - (Inital_value_Low[0] - data)*7;
  1472. else if(data < (Inital_value_High[0]-Inital_value_Low[0]) && data >=100)
  1473. {
  1474. Volume_5mm = ((Inital_value_High[0]-data) - Inital_value_Low[0])/5;
  1475. Volume_Data =11116 - (Volume_1cang[Volume_5mm] + (Volume_1cang[Volume_5mm+1] - Volume_1cang[Volume_5mm])*Volume_yuwei/5);
  1476. }
  1477. else
  1478. Volume_Data = 0;
  1479. plevel[Cang_Flag].Volume_Data = Volume_Data;//data*10*10000;
  1480. break;
  1481. case 1:
  1482. Flash_ReadBytes(Volume_2cang,ADD_CANG2_TABLE,200);
  1483. if(data >= Inital_value_High[1])
  1484. plevel[Cang_Flag].Volume_Data = 10900;
  1485. else if(data >= Inital_value_Low[1] && data < Inital_value_High[1])
  1486. {
  1487. Volume_5mm = (data - Inital_value_Low[1])/5;
  1488. Volume_Data = Volume_2cang[Volume_5mm] + (Volume_2cang[Volume_5mm+1] - Volume_2cang[Volume_5mm])*Volume_yuwei/5;
  1489. }
  1490. else if(data >= (Inital_value_High[1]-Inital_value_Low[1])&& data< Inital_value_Low[1])
  1491. Volume_Data= Volume_2cang[0] - (Inital_value_Low[1] - data)*7;
  1492. else if(data < (Inital_value_High[1]-Inital_value_Low[1]) && data >=100)
  1493. {
  1494. Volume_5mm = ((Inital_value_High[1]-data) - Inital_value_Low[1])/5;
  1495. Volume_Data =11116 - (Volume_2cang[Volume_5mm] + (Volume_2cang[Volume_5mm+1] - Volume_2cang[Volume_5mm])*Volume_yuwei/5);
  1496. }
  1497. else
  1498. Volume_Data = 0;
  1499. plevel[Cang_Flag].Volume_Data = Volume_Data;//data*10*10000;
  1500. break;
  1501. case 2:
  1502. Flash_ReadBytes(Volume_3cang,ADD_CANG3_TABLE,200);
  1503. if(data >= Inital_value_High[2])
  1504. plevel[Cang_Flag].Volume_Data = 10900;
  1505. else if(data >= Inital_value_Low[2] && data < Inital_value_High[2])
  1506. {
  1507. Volume_5mm = (data - Inital_value_Low[2])/5;
  1508. Volume_Data = Volume_3cang[Volume_5mm] + (Volume_3cang[Volume_5mm+1] - Volume_3cang[Volume_5mm])*Volume_yuwei/5;
  1509. }
  1510. else if(data >= (Inital_value_High[2]-Inital_value_Low[2]) && data< Inital_value_Low[0])
  1511. Volume_Data= Volume_3cang[0] - (Inital_value_Low[2] - data)*7;
  1512. else if(data < (Inital_value_High[2]-Inital_value_Low[2]) && data >=100)
  1513. {
  1514. Volume_5mm = ((Inital_value_High[2]-data) - Inital_value_Low[2])/5;
  1515. Volume_Data =11116 - (Volume_3cang[Volume_5mm] + (Volume_3cang[Volume_5mm+1] - Volume_3cang[Volume_5mm])*Volume_yuwei/5);
  1516. }
  1517. else
  1518. Volume_Data = 0;
  1519. plevel[Cang_Flag].Volume_Data = Volume_Data;
  1520. break;
  1521. case 3:
  1522. Flash_ReadBytes(Volume_4cang,ADD_CANG3_TABLE,200);
  1523. if(data >= Inital_value_High[3])
  1524. plevel[Cang_Flag].Volume_Data = 12700;
  1525. else if(data >= Inital_value_Low[3] && data < Inital_value_High[3])
  1526. {
  1527. Volume_5mm = (data - Inital_value_Low[3])/5;
  1528. Volume_Data = Volume_4cang[Volume_5mm] + (Volume_4cang[Volume_5mm+1] - Volume_4cang[Volume_5mm])*Volume_yuwei/5;
  1529. }
  1530. else if(data >= Inital_value_High[3]-Inital_value_Low[3] && data< Inital_value_Low[3])
  1531. Volume_Data= Volume_4cang[0] - (Inital_value_Low[3] - data)*8;
  1532. else if(data < Inital_value_High[3]-Inital_value_Low[3] && data >= 100)
  1533. {
  1534. Volume_5mm = ((Inital_value_High[3]-data) - Inital_value_Low[3])/5;
  1535. Volume_Data =12850 - (Volume_4cang[Volume_5mm] + (Volume_4cang[Volume_5mm+1] - Volume_4cang[Volume_5mm])*Volume_yuwei/5);
  1536. }
  1537. else
  1538. Volume_Data = 0;
  1539. plevel[Cang_Flag].Volume_Data = Volume_Data;
  1540. break;
  1541. default:
  1542. plevel[Cang_Flag].Volume_Data = 0xffff;
  1543. break;
  1544. }
  1545. return 1;
  1546. }
  1547. /*
  1548. 罐容表远程配置功能
  1549. 功能增加: 邵磊明
  1550. */
  1551. uint16_t GRB_SET_Table(uint8_t* pTx)
  1552. {
  1553. KZQ_Inf* pkzq = &kzq_inf;
  1554. // Cang_Inf* pcang = &cang_inf;
  1555. // Level_Inf* plevel = level_inf;Total_pag_num = 0,
  1556. uint8_t i = 0;
  1557. uint8_t Pag_num = 0,CP_CNT=0;
  1558. uint16_t j=0;//ModBusCRC = 0,
  1559. // uint8_t receive_error = 0;
  1560. // uint16_t ModbusCRC = 0;
  1561. uint16_t Cang_num = 0;
  1562. uint16_t Flash_buf[20] = {0};
  1563. uint16_t Flash_buf1[20] = {0};
  1564. static uint16_t Pag_num_cnt = 0;
  1565. for(i=0;i<20;i++)
  1566. {
  1567. Flash_buf[i]=(uint16_t)(pkzq->data_buf[i*2+20]<<8|pkzq->data_buf[i*2+21]);
  1568. Flash_buf1[i]=(uint16_t)(pkzq->data_buf[i*2+20]<<8|pkzq->data_buf[i*2+21]);
  1569. }
  1570. if(pkzq->data_buf[7] == 0x06)
  1571. {
  1572. Cang_num = USART2_RX_BUF002[16];
  1573. Cang_num = Cang_num << 8;
  1574. Cang_num |= USART2_RX_BUF002[17];
  1575. //Total_pag_num = USART2_RX_BUF002[19];
  1576. Pag_num = USART2_RX_BUF002[18];
  1577. if(Cang_num == 0x0001)
  1578. {
  1579. if(Pag_num == 1)
  1580. {
  1581. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE,20);
  1582. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE,20);
  1583. for(j=0;j<20;j++)
  1584. {
  1585. if(Flash_buf1[j]==Flash_buf[j])
  1586. CP_CNT++;
  1587. }
  1588. if(CP_CNT==20)
  1589. {
  1590. Pag_num_cnt++;
  1591. pTx[16] = USART2_RX_BUF002[16];
  1592. pTx[17] = USART2_RX_BUF002[17];
  1593. pTx[18] = USART2_RX_BUF002[18];
  1594. pTx[19] = USART2_RX_BUF002[19];
  1595. if(Pag_num_cnt==10)
  1596. pTx[20] = 2;
  1597. else
  1598. pTx[20] = 1;
  1599. return 1;
  1600. }
  1601. else
  1602. {
  1603. pTx[16] = USART2_RX_BUF002[16];
  1604. pTx[17] = USART2_RX_BUF002[17];
  1605. pTx[18] = USART2_RX_BUF002[18];
  1606. pTx[19] = USART2_RX_BUF002[19];
  1607. pTx[20] = 0;
  1608. return 0;
  1609. }
  1610. }
  1611. else if(Pag_num == 2)
  1612. {
  1613. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE+40,20);
  1614. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE+40,20);
  1615. for(j=0;j<20;j++)
  1616. {
  1617. if(Flash_buf1[j]==Flash_buf[j])
  1618. CP_CNT++;
  1619. }
  1620. if(CP_CNT==20)
  1621. {
  1622. Pag_num_cnt++;
  1623. pTx[16] = USART2_RX_BUF002[16];
  1624. pTx[17] = USART2_RX_BUF002[17];
  1625. pTx[18] = USART2_RX_BUF002[18];
  1626. pTx[19] = USART2_RX_BUF002[19];
  1627. if(Pag_num_cnt==40)
  1628. pTx[20] = 2;
  1629. else
  1630. pTx[20] = 1;
  1631. return 1;
  1632. }
  1633. else
  1634. {
  1635. pTx[16] = USART2_RX_BUF002[16];
  1636. pTx[17] = USART2_RX_BUF002[17];
  1637. pTx[18] = USART2_RX_BUF002[18];
  1638. pTx[19] = USART2_RX_BUF002[19];
  1639. pTx[20] = 0;
  1640. return 0;
  1641. }
  1642. }
  1643. else if(Pag_num == 3)
  1644. {
  1645. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE+80,20);
  1646. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE+80,20);
  1647. for(j=0;j<20;j++)
  1648. {
  1649. if(Flash_buf1[j]==Flash_buf[j])
  1650. CP_CNT++;
  1651. }
  1652. if(CP_CNT==20)
  1653. {
  1654. Pag_num_cnt++;
  1655. pTx[16] = USART2_RX_BUF002[16];
  1656. pTx[17] = USART2_RX_BUF002[17];
  1657. pTx[18] = USART2_RX_BUF002[18];
  1658. pTx[19] = USART2_RX_BUF002[19];
  1659. if(Pag_num_cnt==10)
  1660. pTx[20] = 2;
  1661. else
  1662. pTx[20] = 1;
  1663. return 1;
  1664. }
  1665. else
  1666. {
  1667. pTx[16] = USART2_RX_BUF002[16];
  1668. pTx[17] = USART2_RX_BUF002[17];
  1669. pTx[18] = USART2_RX_BUF002[18];
  1670. pTx[19] = USART2_RX_BUF002[19];
  1671. pTx[20] = 0;
  1672. return 0;
  1673. }
  1674. }
  1675. else if(Pag_num == 4)
  1676. {
  1677. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE+120,20);
  1678. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE+120,20);
  1679. for(j=0;j<20;j++)
  1680. {
  1681. if(Flash_buf1[j]==Flash_buf[j])
  1682. CP_CNT++;
  1683. }
  1684. if(CP_CNT==20)
  1685. {
  1686. Pag_num_cnt++;
  1687. pTx[16] = USART2_RX_BUF002[16];
  1688. pTx[17] = USART2_RX_BUF002[17];
  1689. pTx[18] = USART2_RX_BUF002[18];
  1690. pTx[19] = USART2_RX_BUF002[19];
  1691. if(Pag_num_cnt==10)
  1692. pTx[20] = 2;
  1693. else
  1694. pTx[20] = 1;
  1695. return 1;
  1696. }
  1697. else
  1698. {
  1699. pTx[16] = USART2_RX_BUF002[16];
  1700. pTx[17] = USART2_RX_BUF002[17];
  1701. pTx[18] = USART2_RX_BUF002[18];
  1702. pTx[19] = USART2_RX_BUF002[19];
  1703. pTx[20] = 0;
  1704. return 0;
  1705. }
  1706. }
  1707. else if(Pag_num == 5)
  1708. {
  1709. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE+160,20);
  1710. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE+160,20);
  1711. for(j=0;j<20;j++)
  1712. {
  1713. if(Flash_buf1[j]==Flash_buf[j])
  1714. CP_CNT++;
  1715. }
  1716. if(CP_CNT==20)
  1717. {
  1718. Pag_num_cnt++;
  1719. pTx[16] = USART2_RX_BUF002[16];
  1720. pTx[17] = USART2_RX_BUF002[17];
  1721. pTx[18] = USART2_RX_BUF002[18];
  1722. pTx[19] = USART2_RX_BUF002[19];
  1723. if(Pag_num_cnt==10)
  1724. pTx[20] = 2;
  1725. else
  1726. pTx[20] = 1;
  1727. return 1;
  1728. }
  1729. else
  1730. {
  1731. pTx[16] = USART2_RX_BUF002[16];
  1732. pTx[17] = USART2_RX_BUF002[17];
  1733. pTx[18] = USART2_RX_BUF002[18];
  1734. pTx[19] = USART2_RX_BUF002[19];
  1735. pTx[20] = 0;
  1736. return 0;
  1737. }
  1738. }
  1739. else if(Pag_num == 6)
  1740. {
  1741. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE+200,20);
  1742. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE+200,20);
  1743. for(j=0;j<20;j++)
  1744. {
  1745. if(Flash_buf1[j]==Flash_buf[j])
  1746. CP_CNT++;
  1747. }
  1748. if(CP_CNT==20)
  1749. {
  1750. Pag_num_cnt++;
  1751. pTx[16] = USART2_RX_BUF002[16];
  1752. pTx[17] = USART2_RX_BUF002[17];
  1753. pTx[18] = USART2_RX_BUF002[18];
  1754. pTx[19] = USART2_RX_BUF002[19];
  1755. if(Pag_num_cnt==10)
  1756. pTx[20] = 2;
  1757. else
  1758. pTx[20] = 1;
  1759. return 1;
  1760. }
  1761. else
  1762. {
  1763. pTx[16] = USART2_RX_BUF002[16];
  1764. pTx[17] = USART2_RX_BUF002[17];
  1765. pTx[18] = USART2_RX_BUF002[18];
  1766. pTx[19] = USART2_RX_BUF002[19];
  1767. pTx[20] = 0;
  1768. return 0;
  1769. }
  1770. }
  1771. else if(Pag_num == 7)
  1772. {
  1773. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE+240,20);
  1774. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE+240,20);
  1775. for(j=0;j<20;j++)
  1776. {
  1777. if(Flash_buf1[j]==Flash_buf[j])
  1778. CP_CNT++;
  1779. }
  1780. if(CP_CNT==20)
  1781. {
  1782. Pag_num_cnt++;
  1783. pTx[16] = USART2_RX_BUF002[16];
  1784. pTx[17] = USART2_RX_BUF002[17];
  1785. pTx[18] = USART2_RX_BUF002[18];
  1786. pTx[19] = USART2_RX_BUF002[19];
  1787. if(Pag_num_cnt==10)
  1788. pTx[20] = 2;
  1789. else
  1790. pTx[20] = 1;
  1791. return 1;
  1792. }
  1793. else
  1794. {
  1795. pTx[16] = USART2_RX_BUF002[16];
  1796. pTx[17] = USART2_RX_BUF002[17];
  1797. pTx[18] = USART2_RX_BUF002[18];
  1798. pTx[19] = USART2_RX_BUF002[19];
  1799. pTx[20] = 0;
  1800. return 0;
  1801. }
  1802. }
  1803. else if(Pag_num == 8)
  1804. {
  1805. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE+280,20);
  1806. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE+280,20);
  1807. for(j=0;j<20;j++)
  1808. {
  1809. if(Flash_buf1[j]==Flash_buf[j])
  1810. CP_CNT++;
  1811. }
  1812. if(CP_CNT==20)
  1813. {
  1814. Pag_num_cnt++;
  1815. pTx[16] = USART2_RX_BUF002[16];
  1816. pTx[17] = USART2_RX_BUF002[17];
  1817. pTx[18] = USART2_RX_BUF002[18];
  1818. pTx[19] = USART2_RX_BUF002[19];
  1819. if(Pag_num_cnt==10)
  1820. pTx[20] = 2;
  1821. else
  1822. pTx[20] = 1;
  1823. return 1;
  1824. }
  1825. else
  1826. {
  1827. pTx[16] = USART2_RX_BUF002[16];
  1828. pTx[17] = USART2_RX_BUF002[17];
  1829. pTx[18] = USART2_RX_BUF002[18];
  1830. pTx[19] = USART2_RX_BUF002[19];
  1831. pTx[20] = 0;
  1832. return 0;
  1833. }
  1834. }
  1835. else if(Pag_num == 9)
  1836. {
  1837. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE+320,20);
  1838. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE+320,20);
  1839. for(j=0;j<20;j++)
  1840. {
  1841. if(Flash_buf1[j]==Flash_buf[j])
  1842. CP_CNT++;
  1843. }
  1844. if(CP_CNT==20)
  1845. {
  1846. Pag_num_cnt++;
  1847. pTx[16] = USART2_RX_BUF002[16];
  1848. pTx[17] = USART2_RX_BUF002[17];
  1849. pTx[18] = USART2_RX_BUF002[18];
  1850. pTx[19] = USART2_RX_BUF002[19];
  1851. if(Pag_num_cnt==10)
  1852. pTx[20] = 2;
  1853. else
  1854. pTx[20] = 1;
  1855. return 1;
  1856. }
  1857. else
  1858. {
  1859. pTx[16] = USART2_RX_BUF002[16];
  1860. pTx[17] = USART2_RX_BUF002[17];
  1861. pTx[18] = USART2_RX_BUF002[18];
  1862. pTx[19] = USART2_RX_BUF002[19];
  1863. pTx[20] = 0;
  1864. return 0;
  1865. }
  1866. }
  1867. else if(Pag_num == 10)
  1868. {
  1869. Flash_WriteBytes(Flash_buf,ADD_CANG1_TABLE+360,20);
  1870. Flash_ReadBytes(Flash_buf,ADD_CANG1_TABLE+360,20);
  1871. for(j=0;j<20;j++)
  1872. {
  1873. if(Flash_buf1[j]==Flash_buf[j])
  1874. CP_CNT++;
  1875. }
  1876. if(CP_CNT==20)
  1877. {
  1878. Pag_num_cnt++;
  1879. pTx[16] = USART2_RX_BUF002[16];
  1880. pTx[17] = USART2_RX_BUF002[17];
  1881. pTx[18] = USART2_RX_BUF002[18];
  1882. pTx[19] = USART2_RX_BUF002[19];
  1883. if(Pag_num_cnt==10)
  1884. pTx[20] = 2;
  1885. else
  1886. pTx[20] = 1;
  1887. Pag_num_cnt=0;
  1888. return 1;
  1889. }
  1890. else
  1891. {
  1892. pTx[16] = USART2_RX_BUF002[16];
  1893. pTx[17] = USART2_RX_BUF002[17];
  1894. pTx[18] = USART2_RX_BUF002[18];
  1895. pTx[19] = USART2_RX_BUF002[19];
  1896. pTx[20] = 0;
  1897. return 0;
  1898. }
  1899. }
  1900. }
  1901. else if(Cang_num == 0x0002)
  1902. {
  1903. if(Pag_num == 1)
  1904. {
  1905. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE,20);
  1906. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE,20);
  1907. for(j=0;j<20;j++)
  1908. {
  1909. if(Flash_buf1[j]==Flash_buf[j])
  1910. CP_CNT++;
  1911. }
  1912. if(CP_CNT==20)
  1913. {
  1914. Pag_num_cnt++;
  1915. pTx[16] = USART2_RX_BUF002[16];
  1916. pTx[17] = USART2_RX_BUF002[17];
  1917. pTx[18] = USART2_RX_BUF002[18];
  1918. pTx[19] = USART2_RX_BUF002[19];
  1919. if(Pag_num_cnt==10)
  1920. pTx[20] = 2;
  1921. else
  1922. pTx[20] = 1;
  1923. return 1;
  1924. }
  1925. else
  1926. {
  1927. pTx[16] = USART2_RX_BUF002[16];
  1928. pTx[17] = USART2_RX_BUF002[17];
  1929. pTx[18] = USART2_RX_BUF002[18];
  1930. pTx[19] = USART2_RX_BUF002[19];
  1931. pTx[20] = 0;
  1932. return 0;
  1933. }
  1934. }
  1935. else if(Pag_num == 2)
  1936. {
  1937. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE+40,20);
  1938. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE+40,20);
  1939. for(j=0;j<20;j++)
  1940. {
  1941. if(Flash_buf1[j]==Flash_buf[j])
  1942. CP_CNT++;
  1943. }
  1944. if(CP_CNT==20)
  1945. {
  1946. Pag_num_cnt++;
  1947. pTx[16] = USART2_RX_BUF002[16];
  1948. pTx[17] = USART2_RX_BUF002[17];
  1949. pTx[18] = USART2_RX_BUF002[18];
  1950. pTx[19] = USART2_RX_BUF002[19];
  1951. if(Pag_num_cnt==40)
  1952. pTx[20] = 2;
  1953. else
  1954. pTx[20] = 1;
  1955. return 1;
  1956. }
  1957. else
  1958. {
  1959. pTx[16] = USART2_RX_BUF002[16];
  1960. pTx[17] = USART2_RX_BUF002[17];
  1961. pTx[18] = USART2_RX_BUF002[18];
  1962. pTx[19] = USART2_RX_BUF002[19];
  1963. pTx[20] = 0;
  1964. return 0;
  1965. }
  1966. }
  1967. else if(Pag_num == 3)
  1968. {
  1969. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE+80,20);
  1970. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE+80,20);
  1971. for(j=0;j<20;j++)
  1972. {
  1973. if(Flash_buf1[j]==Flash_buf[j])
  1974. CP_CNT++;
  1975. }
  1976. if(CP_CNT==20)
  1977. {
  1978. Pag_num_cnt++;
  1979. pTx[16] = USART2_RX_BUF002[16];
  1980. pTx[17] = USART2_RX_BUF002[17];
  1981. pTx[18] = USART2_RX_BUF002[18];
  1982. pTx[19] = USART2_RX_BUF002[19];
  1983. if(Pag_num_cnt==10)
  1984. pTx[20] = 2;
  1985. else
  1986. pTx[20] = 1;
  1987. return 1;
  1988. }
  1989. else
  1990. {
  1991. pTx[16] = USART2_RX_BUF002[16];
  1992. pTx[17] = USART2_RX_BUF002[17];
  1993. pTx[18] = USART2_RX_BUF002[18];
  1994. pTx[19] = USART2_RX_BUF002[19];
  1995. pTx[20] = 0;
  1996. return 0;
  1997. }
  1998. }
  1999. else if(Pag_num == 4)
  2000. {
  2001. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE+120,20);
  2002. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE+120,20);
  2003. for(j=0;j<20;j++)
  2004. {
  2005. if(Flash_buf1[j]==Flash_buf[j])
  2006. CP_CNT++;
  2007. }
  2008. if(CP_CNT==20)
  2009. {
  2010. Pag_num_cnt++;
  2011. pTx[16] = USART2_RX_BUF002[16];
  2012. pTx[17] = USART2_RX_BUF002[17];
  2013. pTx[18] = USART2_RX_BUF002[18];
  2014. pTx[19] = USART2_RX_BUF002[19];
  2015. if(Pag_num_cnt==10)
  2016. pTx[20] = 2;
  2017. else
  2018. pTx[20] = 1;
  2019. return 1;
  2020. }
  2021. else
  2022. {
  2023. pTx[16] = USART2_RX_BUF002[16];
  2024. pTx[17] = USART2_RX_BUF002[17];
  2025. pTx[18] = USART2_RX_BUF002[18];
  2026. pTx[19] = USART2_RX_BUF002[19];
  2027. pTx[20] = 0;
  2028. return 0;
  2029. }
  2030. }
  2031. else if(Pag_num == 5)
  2032. {
  2033. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE+160,20);
  2034. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE+160,20);
  2035. for(j=0;j<20;j++)
  2036. {
  2037. if(Flash_buf1[j]==Flash_buf[j])
  2038. CP_CNT++;
  2039. }
  2040. if(CP_CNT==20)
  2041. {
  2042. Pag_num_cnt++;
  2043. pTx[16] = USART2_RX_BUF002[16];
  2044. pTx[17] = USART2_RX_BUF002[17];
  2045. pTx[18] = USART2_RX_BUF002[18];
  2046. pTx[19] = USART2_RX_BUF002[19];
  2047. if(Pag_num_cnt==10)
  2048. pTx[20] = 2;
  2049. else
  2050. pTx[20] = 1;
  2051. return 1;
  2052. }
  2053. else
  2054. {
  2055. pTx[16] = USART2_RX_BUF002[16];
  2056. pTx[17] = USART2_RX_BUF002[17];
  2057. pTx[18] = USART2_RX_BUF002[18];
  2058. pTx[19] = USART2_RX_BUF002[19];
  2059. pTx[20] = 0;
  2060. return 0;
  2061. }
  2062. }
  2063. else if(Pag_num == 6)
  2064. {
  2065. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE+200,20);
  2066. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE+200,20);
  2067. for(j=0;j<20;j++)
  2068. {
  2069. if(Flash_buf1[j]==Flash_buf[j])
  2070. CP_CNT++;
  2071. }
  2072. if(CP_CNT==20)
  2073. {
  2074. Pag_num_cnt++;
  2075. pTx[16] = USART2_RX_BUF002[16];
  2076. pTx[17] = USART2_RX_BUF002[17];
  2077. pTx[18] = USART2_RX_BUF002[18];
  2078. pTx[19] = USART2_RX_BUF002[19];
  2079. if(Pag_num_cnt==10)
  2080. pTx[20] = 2;
  2081. else
  2082. pTx[20] = 1;
  2083. return 1;
  2084. }
  2085. else
  2086. {
  2087. pTx[16] = USART2_RX_BUF002[16];
  2088. pTx[17] = USART2_RX_BUF002[17];
  2089. pTx[18] = USART2_RX_BUF002[18];
  2090. pTx[19] = USART2_RX_BUF002[19];
  2091. pTx[20] = 0;
  2092. return 0;
  2093. }
  2094. }
  2095. else if(Pag_num == 7)
  2096. {
  2097. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE+240,20);
  2098. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE+240,20);
  2099. for(j=0;j<20;j++)
  2100. {
  2101. if(Flash_buf1[j]==Flash_buf[j])
  2102. CP_CNT++;
  2103. }
  2104. if(CP_CNT==20)
  2105. {
  2106. Pag_num_cnt++;
  2107. pTx[16] = USART2_RX_BUF002[16];
  2108. pTx[17] = USART2_RX_BUF002[17];
  2109. pTx[18] = USART2_RX_BUF002[18];
  2110. pTx[19] = USART2_RX_BUF002[19];
  2111. if(Pag_num_cnt==10)
  2112. pTx[20] = 2;
  2113. else
  2114. pTx[20] = 1;
  2115. return 1;
  2116. }
  2117. else
  2118. {
  2119. pTx[16] = USART2_RX_BUF002[16];
  2120. pTx[17] = USART2_RX_BUF002[17];
  2121. pTx[18] = USART2_RX_BUF002[18];
  2122. pTx[19] = USART2_RX_BUF002[19];
  2123. pTx[20] = 0;
  2124. return 0;
  2125. }
  2126. }
  2127. else if(Pag_num == 8)
  2128. {
  2129. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE+280,20);
  2130. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE+280,20);
  2131. for(j=0;j<20;j++)
  2132. {
  2133. if(Flash_buf1[j]==Flash_buf[j])
  2134. CP_CNT++;
  2135. }
  2136. if(CP_CNT==20)
  2137. {
  2138. Pag_num_cnt++;
  2139. pTx[16] = USART2_RX_BUF002[16];
  2140. pTx[17] = USART2_RX_BUF002[17];
  2141. pTx[18] = USART2_RX_BUF002[18];
  2142. pTx[19] = USART2_RX_BUF002[19];
  2143. if(Pag_num_cnt==10)
  2144. pTx[20] = 2;
  2145. else
  2146. pTx[20] = 1;
  2147. return 1;
  2148. }
  2149. else
  2150. {
  2151. pTx[16] = USART2_RX_BUF002[16];
  2152. pTx[17] = USART2_RX_BUF002[17];
  2153. pTx[18] = USART2_RX_BUF002[18];
  2154. pTx[19] = USART2_RX_BUF002[19];
  2155. pTx[20] = 0;
  2156. return 0;
  2157. }
  2158. }
  2159. else if(Pag_num == 9)
  2160. {
  2161. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE+320,20);
  2162. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE+320,20);
  2163. for(j=0;j<20;j++)
  2164. {
  2165. if(Flash_buf1[j]==Flash_buf[j])
  2166. CP_CNT++;
  2167. }
  2168. if(CP_CNT==20)
  2169. {
  2170. Pag_num_cnt++;
  2171. pTx[16] = USART2_RX_BUF002[16];
  2172. pTx[17] = USART2_RX_BUF002[17];
  2173. pTx[18] = USART2_RX_BUF002[18];
  2174. pTx[19] = USART2_RX_BUF002[19];
  2175. if(Pag_num_cnt==10)
  2176. pTx[20] = 2;
  2177. else
  2178. pTx[20] = 1;
  2179. return 1;
  2180. }
  2181. else
  2182. {
  2183. pTx[16] = USART2_RX_BUF002[16];
  2184. pTx[17] = USART2_RX_BUF002[17];
  2185. pTx[18] = USART2_RX_BUF002[18];
  2186. pTx[19] = USART2_RX_BUF002[19];
  2187. pTx[20] = 0;
  2188. return 0;
  2189. }
  2190. }
  2191. else if(Pag_num == 10)
  2192. {
  2193. Flash_WriteBytes(Flash_buf,ADD_CANG2_TABLE+360,20);
  2194. Flash_ReadBytes(Flash_buf,ADD_CANG2_TABLE+360,20);
  2195. for(j=0;j<20;j++)
  2196. {
  2197. if(Flash_buf1[j]==Flash_buf[j])
  2198. CP_CNT++;
  2199. }
  2200. if(CP_CNT==20)
  2201. {
  2202. Pag_num_cnt++;
  2203. pTx[16] = USART2_RX_BUF002[16];
  2204. pTx[17] = USART2_RX_BUF002[17];
  2205. pTx[18] = USART2_RX_BUF002[18];
  2206. pTx[19] = USART2_RX_BUF002[19];
  2207. if(Pag_num_cnt==10)
  2208. pTx[20] = 2;
  2209. else
  2210. pTx[20] = 1;
  2211. Pag_num_cnt=0;
  2212. return 1;
  2213. }
  2214. else
  2215. {
  2216. pTx[16] = USART2_RX_BUF002[16];
  2217. pTx[17] = USART2_RX_BUF002[17];
  2218. pTx[18] = USART2_RX_BUF002[18];
  2219. pTx[19] = USART2_RX_BUF002[19];
  2220. pTx[20] = 0;
  2221. return 0;
  2222. }
  2223. }
  2224. }
  2225. else if(Cang_num == 0x0003)
  2226. {
  2227. if(Pag_num == 1)
  2228. {
  2229. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE,20);
  2230. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE,20);
  2231. for(j=0;j<20;j++)
  2232. {
  2233. if(Flash_buf1[j]==Flash_buf[j])
  2234. CP_CNT++;
  2235. }
  2236. if(CP_CNT==20)
  2237. {
  2238. Pag_num_cnt++;
  2239. pTx[16] = USART2_RX_BUF002[16];
  2240. pTx[17] = USART2_RX_BUF002[17];
  2241. pTx[18] = USART2_RX_BUF002[18];
  2242. pTx[19] = USART2_RX_BUF002[19];
  2243. if(Pag_num_cnt==10)
  2244. pTx[20] = 2;
  2245. else
  2246. pTx[20] = 1;
  2247. return 1;
  2248. }
  2249. else
  2250. {
  2251. pTx[16] = USART2_RX_BUF002[16];
  2252. pTx[17] = USART2_RX_BUF002[17];
  2253. pTx[18] = USART2_RX_BUF002[18];
  2254. pTx[19] = USART2_RX_BUF002[19];
  2255. pTx[20] = 0;
  2256. return 0;
  2257. }
  2258. }
  2259. else if(Pag_num == 2)
  2260. {
  2261. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE+40,20);
  2262. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE+40,20);
  2263. for(j=0;j<20;j++)
  2264. {
  2265. if(Flash_buf1[j]==Flash_buf[j])
  2266. CP_CNT++;
  2267. }
  2268. if(CP_CNT==20)
  2269. {
  2270. Pag_num_cnt++;
  2271. pTx[16] = USART2_RX_BUF002[16];
  2272. pTx[17] = USART2_RX_BUF002[17];
  2273. pTx[18] = USART2_RX_BUF002[18];
  2274. pTx[19] = USART2_RX_BUF002[19];
  2275. if(Pag_num_cnt==40)
  2276. pTx[20] = 2;
  2277. else
  2278. pTx[20] = 1;
  2279. return 1;
  2280. }
  2281. else
  2282. {
  2283. pTx[16] = USART2_RX_BUF002[16];
  2284. pTx[17] = USART2_RX_BUF002[17];
  2285. pTx[18] = USART2_RX_BUF002[18];
  2286. pTx[19] = USART2_RX_BUF002[19];
  2287. pTx[20] = 0;
  2288. return 0;
  2289. }
  2290. }
  2291. else if(Pag_num == 3)
  2292. {
  2293. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE+80,20);
  2294. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE+80,20);
  2295. for(j=0;j<20;j++)
  2296. {
  2297. if(Flash_buf1[j]==Flash_buf[j])
  2298. CP_CNT++;
  2299. }
  2300. if(CP_CNT==20)
  2301. {
  2302. Pag_num_cnt++;
  2303. pTx[16] = USART2_RX_BUF002[16];
  2304. pTx[17] = USART2_RX_BUF002[17];
  2305. pTx[18] = USART2_RX_BUF002[18];
  2306. pTx[19] = USART2_RX_BUF002[19];
  2307. if(Pag_num_cnt==10)
  2308. pTx[20] = 2;
  2309. else
  2310. pTx[20] = 1;
  2311. return 1;
  2312. }
  2313. else
  2314. {
  2315. pTx[16] = USART2_RX_BUF002[16];
  2316. pTx[17] = USART2_RX_BUF002[17];
  2317. pTx[18] = USART2_RX_BUF002[18];
  2318. pTx[19] = USART2_RX_BUF002[19];
  2319. pTx[20] = 0;
  2320. return 0;
  2321. }
  2322. }
  2323. else if(Pag_num == 4)
  2324. {
  2325. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE+120,20);
  2326. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE+120,20);
  2327. for(j=0;j<20;j++)
  2328. {
  2329. if(Flash_buf1[j]==Flash_buf[j])
  2330. CP_CNT++;
  2331. }
  2332. if(CP_CNT==20)
  2333. {
  2334. Pag_num_cnt++;
  2335. pTx[16] = USART2_RX_BUF002[16];
  2336. pTx[17] = USART2_RX_BUF002[17];
  2337. pTx[18] = USART2_RX_BUF002[18];
  2338. pTx[19] = USART2_RX_BUF002[19];
  2339. if(Pag_num_cnt==10)
  2340. pTx[20] = 2;
  2341. else
  2342. pTx[20] = 1;
  2343. return 1;
  2344. }
  2345. else
  2346. {
  2347. pTx[16] = USART2_RX_BUF002[16];
  2348. pTx[17] = USART2_RX_BUF002[17];
  2349. pTx[18] = USART2_RX_BUF002[18];
  2350. pTx[19] = USART2_RX_BUF002[19];
  2351. pTx[20] = 0;
  2352. return 0;
  2353. }
  2354. }
  2355. else if(Pag_num == 5)
  2356. {
  2357. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE+160,20);
  2358. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE+160,20);
  2359. for(j=0;j<20;j++)
  2360. {
  2361. if(Flash_buf1[j]==Flash_buf[j])
  2362. CP_CNT++;
  2363. }
  2364. if(CP_CNT==20)
  2365. {
  2366. Pag_num_cnt++;
  2367. pTx[16] = USART2_RX_BUF002[16];
  2368. pTx[17] = USART2_RX_BUF002[17];
  2369. pTx[18] = USART2_RX_BUF002[18];
  2370. pTx[19] = USART2_RX_BUF002[19];
  2371. if(Pag_num_cnt==10)
  2372. pTx[20] = 2;
  2373. else
  2374. pTx[20] = 1;
  2375. return 1;
  2376. }
  2377. else
  2378. {
  2379. pTx[16] = USART2_RX_BUF002[16];
  2380. pTx[17] = USART2_RX_BUF002[17];
  2381. pTx[18] = USART2_RX_BUF002[18];
  2382. pTx[19] = USART2_RX_BUF002[19];
  2383. pTx[20] = 0;
  2384. return 0;
  2385. }
  2386. }
  2387. else if(Pag_num == 6)
  2388. {
  2389. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE+200,20);
  2390. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE+200,20);
  2391. for(j=0;j<20;j++)
  2392. {
  2393. if(Flash_buf1[j]==Flash_buf[j])
  2394. CP_CNT++;
  2395. }
  2396. if(CP_CNT==20)
  2397. {
  2398. Pag_num_cnt++;
  2399. pTx[16] = USART2_RX_BUF002[16];
  2400. pTx[17] = USART2_RX_BUF002[17];
  2401. pTx[18] = USART2_RX_BUF002[18];
  2402. pTx[19] = USART2_RX_BUF002[19];
  2403. if(Pag_num_cnt==10)
  2404. pTx[20] = 2;
  2405. else
  2406. pTx[20] = 1;
  2407. return 1;
  2408. }
  2409. else
  2410. {
  2411. pTx[16] = USART2_RX_BUF002[16];
  2412. pTx[17] = USART2_RX_BUF002[17];
  2413. pTx[18] = USART2_RX_BUF002[18];
  2414. pTx[19] = USART2_RX_BUF002[19];
  2415. pTx[20] = 0;
  2416. return 0;
  2417. }
  2418. }
  2419. else if(Pag_num == 7)
  2420. {
  2421. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE+240,20);
  2422. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE+240,20);
  2423. for(j=0;j<20;j++)
  2424. {
  2425. if(Flash_buf1[j]==Flash_buf[j])
  2426. CP_CNT++;
  2427. }
  2428. if(CP_CNT==20)
  2429. {
  2430. Pag_num_cnt++;
  2431. pTx[16] = USART2_RX_BUF002[16];
  2432. pTx[17] = USART2_RX_BUF002[17];
  2433. pTx[18] = USART2_RX_BUF002[18];
  2434. pTx[19] = USART2_RX_BUF002[19];
  2435. if(Pag_num_cnt==10)
  2436. pTx[20] = 2;
  2437. else
  2438. pTx[20] = 1;
  2439. return 1;
  2440. }
  2441. else
  2442. {
  2443. pTx[16] = USART2_RX_BUF002[16];
  2444. pTx[17] = USART2_RX_BUF002[17];
  2445. pTx[18] = USART2_RX_BUF002[18];
  2446. pTx[19] = USART2_RX_BUF002[19];
  2447. pTx[20] = 0;
  2448. return 0;
  2449. }
  2450. }
  2451. else if(Pag_num == 8)
  2452. {
  2453. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE+280,20);
  2454. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE+280,20);
  2455. for(j=0;j<20;j++)
  2456. {
  2457. if(Flash_buf1[j]==Flash_buf[j])
  2458. CP_CNT++;
  2459. }
  2460. if(CP_CNT==20)
  2461. {
  2462. Pag_num_cnt++;
  2463. pTx[16] = USART2_RX_BUF002[16];
  2464. pTx[17] = USART2_RX_BUF002[17];
  2465. pTx[18] = USART2_RX_BUF002[18];
  2466. pTx[19] = USART2_RX_BUF002[19];
  2467. if(Pag_num_cnt==10)
  2468. pTx[20] = 2;
  2469. else
  2470. pTx[20] = 1;
  2471. return 1;
  2472. }
  2473. else
  2474. {
  2475. pTx[16] = USART2_RX_BUF002[16];
  2476. pTx[17] = USART2_RX_BUF002[17];
  2477. pTx[18] = USART2_RX_BUF002[18];
  2478. pTx[19] = USART2_RX_BUF002[19];
  2479. pTx[20] = 0;
  2480. return 0;
  2481. }
  2482. }
  2483. else if(Pag_num == 9)
  2484. {
  2485. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE+320,20);
  2486. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE+320,20);
  2487. for(j=0;j<20;j++)
  2488. {
  2489. if(Flash_buf1[j]==Flash_buf[j])
  2490. CP_CNT++;
  2491. }
  2492. if(CP_CNT==20)
  2493. {
  2494. Pag_num_cnt++;
  2495. pTx[16] = USART2_RX_BUF002[16];
  2496. pTx[17] = USART2_RX_BUF002[17];
  2497. pTx[18] = USART2_RX_BUF002[18];
  2498. pTx[19] = USART2_RX_BUF002[19];
  2499. if(Pag_num_cnt==10)
  2500. pTx[20] = 2;
  2501. else
  2502. pTx[20] = 1;
  2503. return 1;
  2504. }
  2505. else
  2506. {
  2507. pTx[16] = USART2_RX_BUF002[16];
  2508. pTx[17] = USART2_RX_BUF002[17];
  2509. pTx[18] = USART2_RX_BUF002[18];
  2510. pTx[19] = USART2_RX_BUF002[19];
  2511. pTx[20] = 0;
  2512. return 0;
  2513. }
  2514. }
  2515. else if(Pag_num == 10)
  2516. {
  2517. Flash_WriteBytes(Flash_buf,ADD_CANG3_TABLE+360,20);
  2518. Flash_ReadBytes(Flash_buf,ADD_CANG3_TABLE+360,20);
  2519. for(j=0;j<20;j++)
  2520. {
  2521. if(Flash_buf1[j]==Flash_buf[j])
  2522. CP_CNT++;
  2523. }
  2524. if(CP_CNT==20)
  2525. {
  2526. Pag_num_cnt++;
  2527. pTx[16] = USART2_RX_BUF002[16];
  2528. pTx[17] = USART2_RX_BUF002[17];
  2529. pTx[18] = USART2_RX_BUF002[18];
  2530. pTx[19] = USART2_RX_BUF002[19];
  2531. if(Pag_num_cnt==10)
  2532. pTx[20] = 2;
  2533. else
  2534. pTx[20] = 1;
  2535. Pag_num_cnt=0;
  2536. return 1;
  2537. }
  2538. else
  2539. {
  2540. pTx[16] = USART2_RX_BUF002[16];
  2541. pTx[17] = USART2_RX_BUF002[17];
  2542. pTx[18] = USART2_RX_BUF002[18];
  2543. pTx[19] = USART2_RX_BUF002[19];
  2544. pTx[20] = 0;
  2545. return 0;
  2546. }
  2547. }
  2548. }
  2549. else if(Cang_num == 0x0004)
  2550. {
  2551. if(Pag_num == 1)
  2552. {
  2553. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE,20);
  2554. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE,20);
  2555. for(j=0;j<20;j++)
  2556. {
  2557. if(Flash_buf1[j]==Flash_buf[j])
  2558. CP_CNT++;
  2559. }
  2560. if(CP_CNT==20)
  2561. {
  2562. Pag_num_cnt++;
  2563. pTx[16] = USART2_RX_BUF002[16];
  2564. pTx[17] = USART2_RX_BUF002[17];
  2565. pTx[18] = USART2_RX_BUF002[18];
  2566. pTx[19] = USART2_RX_BUF002[19];
  2567. if(Pag_num_cnt==10)
  2568. pTx[20] = 2;
  2569. else
  2570. pTx[20] = 1;
  2571. return 1;
  2572. }
  2573. else
  2574. {
  2575. pTx[16] = USART2_RX_BUF002[16];
  2576. pTx[17] = USART2_RX_BUF002[17];
  2577. pTx[18] = USART2_RX_BUF002[18];
  2578. pTx[19] = USART2_RX_BUF002[19];
  2579. pTx[20] = 0;
  2580. return 0;
  2581. }
  2582. }
  2583. else if(Pag_num == 2)
  2584. {
  2585. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE+40,20);
  2586. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE+40,20);
  2587. for(j=0;j<20;j++)
  2588. {
  2589. if(Flash_buf1[j]==Flash_buf[j])
  2590. CP_CNT++;
  2591. }
  2592. if(CP_CNT==20)
  2593. {
  2594. Pag_num_cnt++;
  2595. pTx[16] = USART2_RX_BUF002[16];
  2596. pTx[17] = USART2_RX_BUF002[17];
  2597. pTx[18] = USART2_RX_BUF002[18];
  2598. pTx[19] = USART2_RX_BUF002[19];
  2599. if(Pag_num_cnt==40)
  2600. pTx[20] = 2;
  2601. else
  2602. pTx[20] = 1;
  2603. return 1;
  2604. }
  2605. else
  2606. {
  2607. pTx[16] = USART2_RX_BUF002[16];
  2608. pTx[17] = USART2_RX_BUF002[17];
  2609. pTx[18] = USART2_RX_BUF002[18];
  2610. pTx[19] = USART2_RX_BUF002[19];
  2611. pTx[20] = 0;
  2612. return 0;
  2613. }
  2614. }
  2615. else if(Pag_num == 3)
  2616. {
  2617. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE+80,20);
  2618. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE+80,20);
  2619. for(j=0;j<20;j++)
  2620. {
  2621. if(Flash_buf1[j]==Flash_buf[j])
  2622. CP_CNT++;
  2623. }
  2624. if(CP_CNT==20)
  2625. {
  2626. Pag_num_cnt++;
  2627. pTx[16] = USART2_RX_BUF002[16];
  2628. pTx[17] = USART2_RX_BUF002[17];
  2629. pTx[18] = USART2_RX_BUF002[18];
  2630. pTx[19] = USART2_RX_BUF002[19];
  2631. if(Pag_num_cnt==10)
  2632. pTx[20] = 2;
  2633. else
  2634. pTx[20] = 1;
  2635. return 1;
  2636. }
  2637. else
  2638. {
  2639. pTx[16] = USART2_RX_BUF002[16];
  2640. pTx[17] = USART2_RX_BUF002[17];
  2641. pTx[18] = USART2_RX_BUF002[18];
  2642. pTx[19] = USART2_RX_BUF002[19];
  2643. pTx[20] = 0;
  2644. return 0;
  2645. }
  2646. }
  2647. else if(Pag_num == 4)
  2648. {
  2649. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE+120,20);
  2650. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE+120,20);
  2651. for(j=0;j<20;j++)
  2652. {
  2653. if(Flash_buf1[j]==Flash_buf[j])
  2654. CP_CNT++;
  2655. }
  2656. if(CP_CNT==20)
  2657. {
  2658. Pag_num_cnt++;
  2659. pTx[16] = USART2_RX_BUF002[16];
  2660. pTx[17] = USART2_RX_BUF002[17];
  2661. pTx[18] = USART2_RX_BUF002[18];
  2662. pTx[19] = USART2_RX_BUF002[19];
  2663. if(Pag_num_cnt==10)
  2664. pTx[20] = 2;
  2665. else
  2666. pTx[20] = 1;
  2667. return 1;
  2668. }
  2669. else
  2670. {
  2671. pTx[16] = USART2_RX_BUF002[16];
  2672. pTx[17] = USART2_RX_BUF002[17];
  2673. pTx[18] = USART2_RX_BUF002[18];
  2674. pTx[19] = USART2_RX_BUF002[19];
  2675. pTx[20] = 0;
  2676. return 0;
  2677. }
  2678. }
  2679. else if(Pag_num == 5)
  2680. {
  2681. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE+160,20);
  2682. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE+160,20);
  2683. for(j=0;j<20;j++)
  2684. {
  2685. if(Flash_buf1[j]==Flash_buf[j])
  2686. CP_CNT++;
  2687. }
  2688. if(CP_CNT==20)
  2689. {
  2690. Pag_num_cnt++;
  2691. pTx[16] = USART2_RX_BUF002[16];
  2692. pTx[17] = USART2_RX_BUF002[17];
  2693. pTx[18] = USART2_RX_BUF002[18];
  2694. pTx[19] = USART2_RX_BUF002[19];
  2695. if(Pag_num_cnt==10)
  2696. pTx[20] = 2;
  2697. else
  2698. pTx[20] = 1;
  2699. return 1;
  2700. }
  2701. else
  2702. {
  2703. pTx[16] = USART2_RX_BUF002[16];
  2704. pTx[17] = USART2_RX_BUF002[17];
  2705. pTx[18] = USART2_RX_BUF002[18];
  2706. pTx[19] = USART2_RX_BUF002[19];
  2707. pTx[20] = 0;
  2708. return 0;
  2709. }
  2710. }
  2711. else if(Pag_num == 6)
  2712. {
  2713. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE+200,20);
  2714. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE+200,20);
  2715. for(j=0;j<20;j++)
  2716. {
  2717. if(Flash_buf1[j]==Flash_buf[j])
  2718. CP_CNT++;
  2719. }
  2720. if(CP_CNT==20)
  2721. {
  2722. Pag_num_cnt++;
  2723. pTx[16] = USART2_RX_BUF002[16];
  2724. pTx[17] = USART2_RX_BUF002[17];
  2725. pTx[18] = USART2_RX_BUF002[18];
  2726. pTx[19] = USART2_RX_BUF002[19];
  2727. if(Pag_num_cnt==10)
  2728. pTx[20] = 2;
  2729. else
  2730. pTx[20] = 1;
  2731. return 1;
  2732. }
  2733. else
  2734. {
  2735. pTx[16] = USART2_RX_BUF002[16];
  2736. pTx[17] = USART2_RX_BUF002[17];
  2737. pTx[18] = USART2_RX_BUF002[18];
  2738. pTx[19] = USART2_RX_BUF002[19];
  2739. pTx[20] = 0;
  2740. return 0;
  2741. }
  2742. }
  2743. else if(Pag_num == 7)
  2744. {
  2745. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE+240,20);
  2746. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE+240,20);
  2747. for(j=0;j<20;j++)
  2748. {
  2749. if(Flash_buf1[j]==Flash_buf[j])
  2750. CP_CNT++;
  2751. }
  2752. if(CP_CNT==20)
  2753. {
  2754. Pag_num_cnt++;
  2755. pTx[16] = USART2_RX_BUF002[16];
  2756. pTx[17] = USART2_RX_BUF002[17];
  2757. pTx[18] = USART2_RX_BUF002[18];
  2758. pTx[19] = USART2_RX_BUF002[19];
  2759. if(Pag_num_cnt==10)
  2760. pTx[20] = 2;
  2761. else
  2762. pTx[20] = 1;
  2763. return 1;
  2764. }
  2765. else
  2766. {
  2767. pTx[16] = USART2_RX_BUF002[16];
  2768. pTx[17] = USART2_RX_BUF002[17];
  2769. pTx[18] = USART2_RX_BUF002[18];
  2770. pTx[19] = USART2_RX_BUF002[19];
  2771. pTx[20] = 0;
  2772. return 0;
  2773. }
  2774. }
  2775. else if(Pag_num == 8)
  2776. {
  2777. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE+280,20);
  2778. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE+280,20);
  2779. for(j=0;j<20;j++)
  2780. {
  2781. if(Flash_buf1[j]==Flash_buf[j])
  2782. CP_CNT++;
  2783. }
  2784. if(CP_CNT==20)
  2785. {
  2786. Pag_num_cnt++;
  2787. pTx[16] = USART2_RX_BUF002[16];
  2788. pTx[17] = USART2_RX_BUF002[17];
  2789. pTx[18] = USART2_RX_BUF002[18];
  2790. pTx[19] = USART2_RX_BUF002[19];
  2791. if(Pag_num_cnt==10)
  2792. pTx[20] = 2;
  2793. else
  2794. pTx[20] = 1;
  2795. return 1;
  2796. }
  2797. else
  2798. {
  2799. pTx[16] = USART2_RX_BUF002[16];
  2800. pTx[17] = USART2_RX_BUF002[17];
  2801. pTx[18] = USART2_RX_BUF002[18];
  2802. pTx[19] = USART2_RX_BUF002[19];
  2803. pTx[20] = 0;
  2804. return 0;
  2805. }
  2806. }
  2807. else if(Pag_num == 9)
  2808. {
  2809. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE+320,20);
  2810. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE+320,20);
  2811. for(j=0;j<20;j++)
  2812. {
  2813. if(Flash_buf1[j]==Flash_buf[j])
  2814. CP_CNT++;
  2815. }
  2816. if(CP_CNT==20)
  2817. {
  2818. Pag_num_cnt++;
  2819. pTx[16] = USART2_RX_BUF002[16];
  2820. pTx[17] = USART2_RX_BUF002[17];
  2821. pTx[18] = USART2_RX_BUF002[18];
  2822. pTx[19] = USART2_RX_BUF002[19];
  2823. if(Pag_num_cnt==10)
  2824. pTx[20] = 2;
  2825. else
  2826. pTx[20] = 1;
  2827. return 1;
  2828. }
  2829. else
  2830. {
  2831. pTx[16] = USART2_RX_BUF002[16];
  2832. pTx[17] = USART2_RX_BUF002[17];
  2833. pTx[18] = USART2_RX_BUF002[18];
  2834. pTx[19] = USART2_RX_BUF002[19];
  2835. pTx[20] = 0;
  2836. return 0;
  2837. }
  2838. }
  2839. else if(Pag_num == 10)
  2840. {
  2841. Flash_WriteBytes(Flash_buf,ADD_CANG4_TABLE+360,20);
  2842. Flash_ReadBytes(Flash_buf,ADD_CANG4_TABLE+360,20);
  2843. for(j=0;j<20;j++)
  2844. {
  2845. if(Flash_buf1[j]==Flash_buf[j])
  2846. CP_CNT++;
  2847. }
  2848. if(CP_CNT==20)
  2849. {
  2850. Pag_num_cnt++;
  2851. pTx[16] = USART2_RX_BUF002[16];
  2852. pTx[17] = USART2_RX_BUF002[17];
  2853. pTx[18] = USART2_RX_BUF002[18];
  2854. pTx[19] = USART2_RX_BUF002[19];
  2855. if(Pag_num_cnt==10)
  2856. pTx[20] = 2;
  2857. else
  2858. pTx[20] = 1;
  2859. Pag_num_cnt=0;
  2860. return 1;
  2861. }
  2862. else
  2863. {
  2864. pTx[16] = USART2_RX_BUF002[16];
  2865. pTx[17] = USART2_RX_BUF002[17];
  2866. pTx[18] = USART2_RX_BUF002[18];
  2867. pTx[19] = USART2_RX_BUF002[19];
  2868. pTx[20] = 0;
  2869. return 0;
  2870. }
  2871. }
  2872. }
  2873. }
  2874. return 0;
  2875. }
  2876. #endif
  2877. uint8_t Prase_Level(uint8_t* data, Level_Type type)
  2878. {
  2879. uint8_t cang_id = data[0] - LEVEL_STARTADDR;
  2880. uint8_t error = 0;
  2881. uint16_t ModbusCRC;
  2882. ModbusCRC = data[7]<<8;
  2883. ModbusCRC |= data[8];
  2884. typedef union{
  2885. float value;
  2886. uint8_t arr[4];
  2887. }Hex_to_float;
  2888. static Hex_to_float hex_to_float;
  2889. if(LEVEL_CZSS == type) //磁致伸缩传感器接收数据 邵磊明增加
  2890. {
  2891. level_inf[cang_id].RTData_Num = 1;//液位计信息数量
  2892. level_inf[cang_id].ErrorCnt = 0;
  2893. level_inf[cang_id].Error = 0;
  2894. if(data[1]!=0x04) //校验功能码USART1_RX_BUF002[1]!=0x04&&..
  2895. {
  2896. error = 1;
  2897. }
  2898. else if(data[2] != 0x20) //校验数据长度
  2899. {
  2900. error = 1;
  2901. }
  2902. else if(ModbusCRC != LIB_CRC_MODBUS(data,35)) //校验CRC
  2903. {
  2904. error = 1;
  2905. }
  2906. if(error == 0) //读取返回雷达数据 slm
  2907. {
  2908. hex_to_float.arr[0] = data[5];
  2909. hex_to_float.arr[1] = data[6];
  2910. hex_to_float.arr[2] = data[3];
  2911. hex_to_float.arr[3] = data[4];
  2912. level_inf[cang_id].Data = hex_to_float.value;
  2913. hex_to_float.arr[0] = data[13];
  2914. hex_to_float.arr[1] = data[14];
  2915. hex_to_float.arr[2] = data[11];
  2916. hex_to_float.arr[3] = data[12];
  2917. level_inf[cang_id].Avr_temp = hex_to_float.value;
  2918. hex_to_float.arr[0] = data[17];
  2919. hex_to_float.arr[1] = data[18];
  2920. hex_to_float.arr[2] = data[15];
  2921. hex_to_float.arr[3] = data[16];
  2922. level_inf[cang_id].Avr_temp = hex_to_float.value;
  2923. hex_to_float.arr[0] = data[21];
  2924. hex_to_float.arr[1] = data[22];
  2925. hex_to_float.arr[2] = data[19];
  2926. hex_to_float.arr[3] = data[20];
  2927. level_inf[cang_id].Bdot_temp = hex_to_float.value;
  2928. hex_to_float.arr[0] = data[25];
  2929. hex_to_float.arr[1] = data[26];
  2930. hex_to_float.arr[2] = data[23];
  2931. hex_to_float.arr[3] = data[24];
  2932. level_inf[cang_id].Cdot_temp = hex_to_float.value;
  2933. }
  2934. }
  2935. else if( LEVEL_LDYW == type) //雷达液位传感器接收数据 邵磊明增加
  2936. {
  2937. level_inf[cang_id].RTData_Num = 1;//液位计信息数量
  2938. level_inf[cang_id].ErrorCnt = 0;
  2939. level_inf[cang_id].Error = 0;
  2940. if(data[1]!=0x04) //校验功能码USART1_RX_BUF002[1]!=0x04&&..
  2941. {
  2942. error = 1;
  2943. }
  2944. else if(data[2] != 0x04) //校验数据长度
  2945. {
  2946. error = 1;
  2947. }
  2948. else if(ModbusCRC != LIB_CRC_MODBUS(data,7)) //校验CRC
  2949. {
  2950. error = 1;
  2951. }
  2952. if(error == 0) //读取返回雷达数据 slm
  2953. {
  2954. //液位计数据 液位仪数据
  2955. hex_to_float.arr[0] = data[4];
  2956. hex_to_float.arr[1] = data[3];
  2957. hex_to_float.arr[2] = data[6];
  2958. hex_to_float.arr[3] = data[5];
  2959. level_inf[cang_id].Data = 900.0 - hex_to_float.value*1000;
  2960. }
  2961. }
  2962. }
  2963. void Level_Error(uint8_t addr)
  2964. {
  2965. uint8_t id =0;
  2966. Cang_Inf* pcang = &cang_inf;
  2967. id = addr-LEVEL_STARTADDR;
  2968. if(id >= SENSOR_DEEP){
  2969. return ;
  2970. }
  2971. level_inf[id].ErrorCnt++;
  2972. if (level_inf[id].ErrorCnt > pcang->sensorBusMaxReTry)
  2973. {
  2974. level_inf[id].ErrorCnt = pcang->sensorBusMaxReTry + 1;
  2975. level_inf[id].Error = 1;
  2976. }
  2977. }