agv_qrcode.txt 102 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156
; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o.\flash\obj\agv_qrcode.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\agv_qrcode.d --cpu=Cortex-M4.fp --apcs=interwork -O1 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Include -I..\..\Libraries\CMSIS\Device\ST\STM32F4xx\Include -I..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc -I..\..\uCOS-III\uC-CPU -I..\..\uCOS-III\uC-LIB -I..\..\uCOS-III\uCOS-III\Ports -I..\..\uCOS-III\uCOS-III\Source -I..\..\uCOS-III\uC-CPU\ARM-Cortex-M4\RealView -I..\..\uCOS-III\uC-LIB\Ports\ARM-Cortex-M4\RealView -I..\..\uCOS-III\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView -I..\..\User -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\libapp -I..\..\RL-ARM\Config -I..\..\RL-ARM\Driver -I..\..\RL-ARM\RL-RTX\inc -I..\..\User\bsp\BSP -I..\..\RL-ARM\RL-CAN -I..\..\Libraries\DSP_LIB\Include -I..\..\MODBUS\modbus\rtu -I..\..\MODBUS\BARE\port -I..\..\MODBUS\modbus\include -I..\..\User\bsp\BSP -I..\..\PLC -I..\..\Avoid -I..\..\User\parameter -I..\..\User\LaserMotionCtr -I..\..\User\W5100S -I..\..\User\bsp -I.\RTE\_Flash -IC:\Users\软件部\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Users\软件部\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.13.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION=527 -D_RTE_ -DSTM32F407xx -DUSE_STDPERIPH_DRIVER -DSTM32F40_41xxx -D__RTX -D__FPU_USED=1 --omf_browse=.\flash\obj\agv_qrcode.crf ..\..\User\LaserMotionCtr\agv_qrcode.c]
                          THUMB

                          AREA ||i.GetQRcodeinformation||, CODE, READONLY, ALIGN=2

                  GetQRcodeinformation PROC
;;;107    
;;;108    void GetQRcodeinformation()
000000  b570              PUSH     {r4-r6,lr}
;;;109    {
;;;110    	static int nn=0;
;;;111    	if(nn++ == 1000)
000002  4c0e              LDR      r4,|L1.60|
000004  f24035e9          MOV      r5,#0x3e9
000008  6920              LDR      r0,[r4,#0x10]  ; nn
00000a  1c40              ADDS     r0,r0,#1
00000c  6120              STR      r0,[r4,#0x10]  ; nn
00000e  42a8              CMP      r0,r5
000010  d104              BNE      |L1.28|
;;;112    	{
;;;113    		WriteUart(COM6,selectpostag,2);
000012  2202              MOVS     r2,#2
000014  1ca1              ADDS     r1,r4,#2
000016  2006              MOVS     r0,#6
000018  f7fffffe          BL       WriteUart
                  |L1.28|
;;;114    	}
;;;115    	if(nn > 1000)nn=1001;
00001c  6920              LDR      r0,[r4,#0x10]  ; nn
00001e  f5b07f7a          CMP      r0,#0x3e8
000022  dd00              BLE      |L1.38|
000024  6125              STR      r5,[r4,#0x10]  ; nn
                  |L1.38|
;;;116    	UpdataCamerParameter();           //更新PGV读头x,y,angle数据
000026  f7fffffe          BL       UpdataCamerParameter
;;;117    	ProcessDataFormUartQR();
00002a  f7fffffe          BL       ProcessDataFormUartQR
;;;118    		
;;;119    	PgvSendCmd(readposandstatedata,2);
00002e  e8bd4070          POP      {r4-r6,lr}
000032  2102              MOVS     r1,#2
000034  4801              LDR      r0,|L1.60|
000036  f7ffbffe          B.W      PgvSendCmd
;;;120    }
;;;121    
                          ENDP

00003a  0000              DCW      0x0000
                  |L1.60|
                          DCD      ||.data||

                          AREA ||i.ParsingPGVTagData||, CODE, READONLY, ALIGN=1

                  ParsingPGVTagData PROC
;;;70     
;;;71     void ParsingPGVTagData(unsigned char buff[],int* x,int* y,u32* angle,u32* num)     //解析tag标签
000000  b5f0              PUSH     {r4-r7,lr}
;;;72     {
000002  9d05              LDR      r5,[sp,#0x14]
;;;73     	int Byte3_1,data_x,data_y;
;;;74     	Byte3_1 = buff[2] & 0x07;
000004  7884              LDRB     r4,[r0,#2]
000006  f0040407          AND      r4,r4,#7
;;;75     	
;;;76     	data_x = Byte3_1 * 0x80 * 0x4000 + buff[3] * 0x4000 + buff[4] * 0x80 + buff[5];
00000a  7946              LDRB     r6,[r0,#5]
00000c  7907              LDRB     r7,[r0,#4]
00000e  eb065444          ADD      r4,r6,r4,LSL #21
000012  78c6              LDRB     r6,[r0,#3]
000014  03b6              LSLS     r6,r6,#14
000016  eb0616c7          ADD      r6,r6,r7,LSL #7
00001a  4434              ADD      r4,r4,r6
;;;77     	if(data_x > 0x800000) data_x = -(0x1000000 - data_x);
00001c  f5b40f00          CMP      r4,#0x800000
000020  dd01              BLE      |L2.38|
000022  f1a47480          SUB      r4,r4,#0x1000000
                  |L2.38|
;;;78     	
;;;79     	*x = data_x;
000026  600c              STR      r4,[r1,#0]
;;;80     	
;;;81     	data_y = buff[6] * 0x80 + buff[7];
000028  79c1              LDRB     r1,[r0,#7]
00002a  7984              LDRB     r4,[r0,#6]
00002c  eb0111c4          ADD      r1,r1,r4,LSL #7
;;;82     	if(data_y > 0x2000) data_y = -(0x4000 - data_y);
000030  f5b15f00          CMP      r1,#0x2000
000034  dd01              BLE      |L2.58|
000036  f5a14180          SUB      r1,r1,#0x4000
                  |L2.58|
;;;83     	
;;;84     	*y = data_y;
00003a  6011              STR      r1,[r2,#0]
;;;85     	
;;;86     	*angle = (buff[10] * 0x80 + buff[11]);
00003c  7ac1              LDRB     r1,[r0,#0xb]
00003e  7a82              LDRB     r2,[r0,#0xa]
000040  eb0111c2          ADD      r1,r1,r2,LSL #7
000044  6019              STR      r1,[r3,#0]
;;;87     	
;;;88     	*num = buff[14] * 0x80 * 0x4000 + buff[15] * 0x4000 + buff[16] * 0x80 + buff[17];	
000046  7c41              LDRB     r1,[r0,#0x11]
000048  7b82              LDRB     r2,[r0,#0xe]
00004a  eb015142          ADD      r1,r1,r2,LSL #21
00004e  7bc2              LDRB     r2,[r0,#0xf]
000050  7c00              LDRB     r0,[r0,#0x10]
000052  0392              LSLS     r2,r2,#14
000054  eb0210c0          ADD      r0,r2,r0,LSL #7
000058  4408              ADD      r0,r0,r1
00005a  6028              STR      r0,[r5,#0]
;;;89     }
00005c  bdf0              POP      {r4-r7,pc}
;;;90     
                          ENDP


                          AREA ||i.PgvSendCmd||, CODE, READONLY, ALIGN=2

                  PgvSendCmd PROC
;;;16     
;;;17     void PgvSendCmd(unsigned char *buff,unsigned int len)
000000  b510              PUSH     {r4,lr}
;;;18     {
000002  460a              MOV      r2,r1
;;;19     	static int i=0;
;;;20     	if(i++ > 10)
000004  4c06              LDR      r4,|L3.32|
000006  6861              LDR      r1,[r4,#4]  ; i
000008  1c4b              ADDS     r3,r1,#1
00000a  6063              STR      r3,[r4,#4]  ; i
00000c  290a              CMP      r1,#0xa
00000e  dd05              BLE      |L3.28|
;;;21     	{
;;;22     		WriteUart(COM6,buff,len);	
000010  4601              MOV      r1,r0
000012  2006              MOVS     r0,#6
000014  f7fffffe          BL       WriteUart
;;;23     		i = 0;
000018  2000              MOVS     r0,#0
00001a  6060              STR      r0,[r4,#4]  ; i
                  |L3.28|
;;;24     	}
;;;25     }
00001c  bd10              POP      {r4,pc}
;;;26     
                          ENDP

00001e  0000              DCW      0x0000
                  |L3.32|
                          DCD      ||.data||

                          AREA ||i.ProcessDataFormUartQR||, CODE, READONLY, ALIGN=2

                  ProcessDataFormUartQR PROC
;;;90     
;;;91     void ProcessDataFormUartQR()
000000  b500              PUSH     {lr}
;;;92     {
000002  b09b              SUB      sp,sp,#0x6c
;;;93     	unsigned char buff[99];
;;;94     	unsigned int len;
;;;95     	len = ReadUart(COM6,buff,99);
000004  2263              MOVS     r2,#0x63
000006  a902              ADD      r1,sp,#8
000008  2006              MOVS     r0,#6
00000a  f7fffffe          BL       ReadUart
;;;96     	
;;;97     	if(len == 21)
00000e  2815              CMP      r0,#0x15
000010  d107              BNE      |L4.34|
;;;98     	{
;;;99     		ParsingPGVTagData(buff,&(Tagdata.x),&(Tagdata.y),&(Tagdata.angle),&(Tagdata.tagnumber));
000012  4805              LDR      r0,|L4.40|
000014  9000              STR      r0,[sp,#0]
000016  1f03              SUBS     r3,r0,#4
000018  1f1a              SUBS     r2,r3,#4
00001a  1f11              SUBS     r1,r2,#4
00001c  a802              ADD      r0,sp,#8
00001e  f7fffffe          BL       ParsingPGVTagData
                  |L4.34|
;;;100    	}
;;;101    }
000022  b01b              ADD      sp,sp,#0x6c
000024  bd00              POP      {pc}
;;;102    
                          ENDP

000026  0000              DCW      0x0000
                  |L4.40|
                          DCD      ||.bss||+0xc

                          AREA ||i.QecodeControlFunction||, CODE, READONLY, ALIGN=2

                  QecodeControlFunction PROC
;;;275    
;;;276    void QecodeControlFunction(agvCalculationTurningSteering *CalculationTurningSteering,agvControlInputValue *ControlInputValue,agvControlOutputValue *ControlOutputValue)
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;277    {
000004  460c              MOV      r4,r1
000006  ed2d8b06          VPUSH    {d8-d10}
00000a  4617              MOV      r7,r2
;;;278    	static float F_Angle_compensation_factor = 80;
;;;279    	static float F_Offset_compensation_factor = 0.2f;
;;;280    	float dis,Offset_Straight = 0;
00000c  eddf9aed          VLDR     s19,|L5.964|
;;;281    	static float AngleMigration = 0.0f,OutPutData = 0,AdjustmentCoefficient = 0;
;;;282    	static float Xbias = 0.0f,Ybias = 0.0f,Theata = 0.0f;
;;;283    
;;;284    	agvIntegratedLaserAndIntegralData(&Xbias,&Ybias,&Theata,ControlInputValue);	
000010  4aed              LDR      r2,|L5.968|
000012  4623              MOV      r3,r4
000014  1f11              SUBS     r1,r2,#4
000016  1f08              SUBS     r0,r1,#4
000018  f7fffffe          BL       agvIntegratedLaserAndIntegralData
;;;285    
;;;286    	if((ControlInputValue->agvControlStatus == 0) || (ControlInputValue->OnlineLogo == 0) || (ControlInputValue->OfflineLogo == 1))
00001c  f89400b4          LDRB     r0,[r4,#0xb4]
;;;287    	{
;;;288    //		Uart_Printf(COM1,"Online=%d	Offline=%d	shouzidong=%d	x=%f	y=%f	w=%f	dir=%d\r\n",
;;;289    //		ControlInputValue->OnlineLogo,ControlInputValue->OfflineLogo,ControlInputValue->agvControlStatus,
;;;290    //		Xbias*1000,Ybias*1000,Theata,camerparameter.TwoDCdirection);
;;;291    //		Xbias = 0.0f,Ybias = 0.0f,Theata = 0.0f;
;;;292    		camerparameter.BaseAngle = 0;
000020  4eea              LDR      r6,|L5.972|
000022  b1d8              CBZ      r0,|L5.92|
000024  f89400b8          LDRB     r0,[r4,#0xb8]         ;286
000028  b1c0              CBZ      r0,|L5.92|
00002a  f89400bd          LDRB     r0,[r4,#0xbd]         ;286
00002e  2801              CMP      r0,#1                 ;286
000030  d014              BEQ      |L5.92|
;;;293    		camerparameter.TwoDCdirection = 0;
;;;294    		return;
;;;295    	}
;;;296    	
;;;297    	AngleMigration = CalculatingCurrentAndTargetAngle(Theata,camerparameter.BaseAngle);
000032  4de5              LDR      r5,|L5.968|
000034  edd60a04          VLDR     s1,[r6,#0x10]
000038  3d4c              SUBS     r5,r5,#0x4c
00003a  ed950a13          VLDR     s0,[r5,#0x4c]
00003e  f7fffffe          BL       CalculatingCurrentAndTargetAngle
000042  ed850a0f          VSTR     s0,[r5,#0x3c]
000046  eef08a40          VMOV.F32 s17,s0
;;;298    	if(ControlInputValue->CurDirection == 1)
00004a  f9b400d0          LDRSH    r0,[r4,#0xd0]
;;;299    	{
;;;300    		switch(camerparameter.TwoDCdirection)
;;;301    		{
;;;302    			case 1:
;;;303    				dis = -(Ybias*1000.0f - ControlInputValue->LaserDistanceExtensionOne * sin(AngleMigration));
00004e  ed9f9ae0          VLDR     s18,|L5.976|
000052  2801              CMP      r0,#1                 ;298
000054  d00a              BEQ      |L5.108|
;;;304    				//OutPutData = dis * ControlInputValue->LowSp_F_offset + AngleMigration *F_Angle_compensation_factor;
;;;305    			
;;;306    				camerparameter.DistanceCalibrationValue = Xbias*1000.0f;
;;;307    
;;;308    				break;
;;;309    			case 2:
;;;310    				dis = (Xbias*1000.0f + ControlInputValue->LaserDistanceExtensionOne * sin(AngleMigration));
;;;311    				//OutPutData = dis * ControlInputValue->LowSp_F_offset + AngleMigration *F_Angle_compensation_factor;
;;;312    
;;;313    				camerparameter.DistanceCalibrationValue = Ybias*1000.0f;
;;;314    				break;
;;;315    			case 3:
;;;316    				dis = (Ybias*1000.0f + ControlInputValue->LaserDistanceExtensionOne * sin(AngleMigration));
;;;317    				//OutPutData = dis * ControlInputValue->LowSp_F_offset + AngleMigration *F_Angle_compensation_factor;					
;;;318    
;;;319    				camerparameter.DistanceCalibrationValue = Xbias*1000.0f;
;;;320    				break;
;;;321    			case 4:
;;;322    				dis = -(Xbias*1000.0f - ControlInputValue->LaserDistanceExtensionOne * sin(AngleMigration));
;;;323    				//OutPutData = dis * ControlInputValue->LowSp_F_offset + AngleMigration *F_Angle_compensation_factor;				
;;;324    				
;;;325    				camerparameter.DistanceCalibrationValue = Ybias*1000.0f;
;;;326    				break;
;;;327    			default:
;;;328    				dis = 0;
;;;329    				break;					
;;;330    		}
;;;331    	}
;;;332    	else if(ControlInputValue->CurDirection == 2)
000056  2802              CMP      r0,#2
000058  d07e              BEQ      |L5.344|
00005a  e0d1              B        |L5.512|
                  |L5.92|
00005c  edc69a04          VSTR     s19,[r6,#0x10]        ;292
000060  2000              MOVS     r0,#0                 ;293
000062  7030              STRB     r0,[r6,#0]            ;293
                  |L5.100|
;;;333    	{
;;;334    		switch(camerparameter.TwoDCdirection)
;;;335    		{
;;;336    			case 1:
;;;337    				dis = (Ybias*1000.0f + ControlInputValue->LaserDistanceExtensionOne * sin(AngleMigration));
;;;338    				//OutPutData = dis * ControlInputValue->LowSp_F_offset + AngleMigration *F_Angle_compensation_factor;
;;;339    
;;;340    				camerparameter.DistanceCalibrationValue = Xbias*1000.0f;
;;;341    				break;
;;;342    			case 2:
;;;343    				dis = -(Xbias*1000.0f - ControlInputValue->LaserDistanceExtensionOne * sin(AngleMigration));
;;;344    				//OutPutData = dis * ControlInputValue->LowSp_F_offset + AngleMigration *F_Angle_compensation_factor;
;;;345    				camerparameter.DistanceCalibrationValue = Ybias*1000.0f;
;;;346    
;;;347    				break;
;;;348    			case 3:
;;;349    				dis = -(Ybias*1000.0f - ControlInputValue->LaserDistanceExtensionOne * sin(AngleMigration));
;;;350    				//OutPutData = dis * ControlInputValue->LowSp_F_offset + AngleMigration *F_Angle_compensation_factor;					
;;;351    				camerparameter.DistanceCalibrationValue = Xbias*1000.0f;
;;;352    
;;;353    				break;
;;;354    			case 4:
;;;355    				dis = (Xbias*1000.0f + ControlInputValue->LaserDistanceExtensionOne * sin(AngleMigration));
;;;356    				////OutPutData = dis * ControlInputValue->LowSp_F_offset + AngleMigration *F_Angle_compensation_factor;				
;;;357    			
;;;358    				camerparameter.DistanceCalibrationValue = Ybias*1000.0f;
;;;359    				break;
;;;360    			default:
;;;361    				dis = 0;
;;;362    				break;					
;;;363    		}	
;;;364    	}
;;;365    	Offset_Straight = dis;// + HandlePlcData.RecvPlcData.QRoffset;
;;;366    	
;;;367    	OutPutData = ControlInputValue->LowSp_F_offset * Offset_Straight;
;;;368    	if(OutPutData >= 30) OutPutData = 30;
;;;369    	if(OutPutData <= -30) OutPutData = -30;
;;;370    	ControlOutputValue->AgvSettingFirstSpeed = ControlOutputValue->SetMoveSpeed +  OutPutData;
;;;371    	ControlOutputValue->AgvSettingSecondSpeed = ControlOutputValue->SetMoveSpeed - OutPutData;	
;;;372    }
000064  ecbd8b06          VPOP     {d8-d10}
000068  e8bd81f0          POP      {r4-r8,pc}
                  |L5.108|
00006c  7830              LDRB     r0,[r6,#0]            ;300  ; camerparameter
00006e  2801              CMP      r0,#1                 ;300
000070  d008              BEQ      |L5.132|
000072  2802              CMP      r0,#2                 ;300
000074  d032              BEQ      |L5.220|
000076  2803              CMP      r0,#3                 ;300
000078  d05c              BEQ      |L5.308|
00007a  2804              CMP      r0,#4                 ;300
00007c  d06d              BEQ      |L5.346|
00007e  eeb08a69          VMOV.F32 s16,s19               ;328
000082  e0bd              B        |L5.512|
                  |L5.132|
000084  ed950a12          VLDR     s0,[r5,#0x48]         ;303
000088  ee200a09          VMUL.F32 s0,s0,s18             ;303
00008c  ee100a10          VMOV     r0,s0                 ;303
000090  f7fffffe          BL       __aeabi_f2d
000094  ec410b1a          VMOV     d10,r0,r1             ;303
000098  ee180a90          VMOV     r0,s17                ;303
00009c  f7fffffe          BL       __aeabi_f2d
0000a0  ec410b10          VMOV     d0,r0,r1              ;303
0000a4  f7fffffe          BL       __hardfp_sin
0000a8  eeb08a40          VMOV.F32 s16,s0                ;303
0000ac  eef08a60          VMOV.F32 s17,s1                ;303
0000b0  6ea0              LDR      r0,[r4,#0x68]         ;303
0000b2  f7fffffe          BL       __aeabi_f2d
0000b6  ec532b18          VMOV     r2,r3,d8              ;303
0000ba  f7fffffe          BL       __aeabi_dmul
0000be  ec532b1a          VMOV     r2,r3,d10             ;303
0000c2  f7fffffe          BL       __aeabi_dsub
0000c6  f7fffffe          BL       __aeabi_d2f
0000ca  ee080a10          VMOV     s16,r0                ;303
0000ce  ed950a11          VLDR     s0,[r5,#0x44]         ;306
0000d2  ee200a09          VMUL.F32 s0,s0,s18             ;306
0000d6  ed860a07          VSTR     s0,[r6,#0x1c]         ;306
0000da  e091              B        |L5.512|
                  |L5.220|
0000dc  ee180a90          VMOV     r0,s17                ;310
0000e0  f7fffffe          BL       __aeabi_f2d
0000e4  ec410b10          VMOV     d0,r0,r1              ;310
0000e8  f7fffffe          BL       __hardfp_sin
0000ec  eeb08a40          VMOV.F32 s16,s0                ;310
0000f0  eef08a60          VMOV.F32 s17,s1                ;310
0000f4  6ea0              LDR      r0,[r4,#0x68]         ;310
0000f6  f7fffffe          BL       __aeabi_f2d
0000fa  ec532b18          VMOV     r2,r3,d8              ;310
0000fe  f7fffffe          BL       __aeabi_dmul
000102  ed950a11          VLDR     s0,[r5,#0x44]         ;310
000106  ec410b18          VMOV     d8,r0,r1              ;310
00010a  ee200a09          VMUL.F32 s0,s0,s18             ;310
00010e  ee100a10          VMOV     r0,s0                 ;310
000112  f7fffffe          BL       __aeabi_f2d
000116  ec532b18          VMOV     r2,r3,d8              ;310
00011a  f7fffffe          BL       __aeabi_dadd
00011e  f7fffffe          BL       __aeabi_d2f
000122  ee080a10          VMOV     s16,r0                ;310
000126  ed950a12          VLDR     s0,[r5,#0x48]         ;313
00012a  ee200a09          VMUL.F32 s0,s0,s18             ;313
00012e  ed860a07          VSTR     s0,[r6,#0x1c]         ;313
000132  e065              B        |L5.512|
                  |L5.308|
000134  ee180a90          VMOV     r0,s17                ;316
000138  f7fffffe          BL       __aeabi_f2d
00013c  ec410b10          VMOV     d0,r0,r1              ;316
000140  f7fffffe          BL       __hardfp_sin
000144  eeb08a40          VMOV.F32 s16,s0                ;316
000148  eef08a60          VMOV.F32 s17,s1                ;316
00014c  6ea0              LDR      r0,[r4,#0x68]         ;316
00014e  f7fffffe          BL       __aeabi_f2d
000152  ec532b18          VMOV     r2,r3,d8              ;316
000156  e001              B        |L5.348|
                  |L5.344|
000158  e047              B        |L5.490|
                  |L5.346|
00015a  e01a              B        |L5.402|
                  |L5.348|
00015c  f7fffffe          BL       __aeabi_dmul
000160  ed950a12          VLDR     s0,[r5,#0x48]         ;316
000164  ec410b18          VMOV     d8,r0,r1              ;316
000168  ee200a09          VMUL.F32 s0,s0,s18             ;316
00016c  ee100a10          VMOV     r0,s0                 ;316
000170  f7fffffe          BL       __aeabi_f2d
000174  ec532b18          VMOV     r2,r3,d8              ;316
000178  f7fffffe          BL       __aeabi_dadd
00017c  f7fffffe          BL       __aeabi_d2f
000180  ee080a10          VMOV     s16,r0                ;316
000184  ed950a11          VLDR     s0,[r5,#0x44]         ;319
000188  ee200a09          VMUL.F32 s0,s0,s18             ;319
00018c  ed860a07          VSTR     s0,[r6,#0x1c]         ;319
000190  e036              B        |L5.512|
                  |L5.402|
000192  ed950a11          VLDR     s0,[r5,#0x44]         ;322
000196  ee200a09          VMUL.F32 s0,s0,s18             ;322
00019a  ee100a10          VMOV     r0,s0                 ;322
00019e  f7fffffe          BL       __aeabi_f2d
0001a2  ec410b1a          VMOV     d10,r0,r1             ;322
0001a6  ee180a90          VMOV     r0,s17                ;322
0001aa  f7fffffe          BL       __aeabi_f2d
0001ae  ec410b10          VMOV     d0,r0,r1              ;322
0001b2  f7fffffe          BL       __hardfp_sin
0001b6  eeb08a40          VMOV.F32 s16,s0                ;322
0001ba  eef08a60          VMOV.F32 s17,s1                ;322
0001be  6ea0              LDR      r0,[r4,#0x68]         ;322
0001c0  f7fffffe          BL       __aeabi_f2d
0001c4  ec532b18          VMOV     r2,r3,d8              ;322
0001c8  f7fffffe          BL       __aeabi_dmul
0001cc  ec532b1a          VMOV     r2,r3,d10             ;322
0001d0  f7fffffe          BL       __aeabi_dsub
0001d4  f7fffffe          BL       __aeabi_d2f
0001d8  ee080a10          VMOV     s16,r0                ;322
0001dc  ed950a12          VLDR     s0,[r5,#0x48]         ;325
0001e0  ee200a09          VMUL.F32 s0,s0,s18             ;325
0001e4  ed860a07          VSTR     s0,[r6,#0x1c]         ;325
0001e8  e00a              B        |L5.512|
                  |L5.490|
0001ea  7830              LDRB     r0,[r6,#0]            ;334  ; camerparameter
0001ec  2801              CMP      r0,#1                 ;334
0001ee  d035              BEQ      |L5.604|
0001f0  2802              CMP      r0,#2                 ;334
0001f2  d05f              BEQ      |L5.692|
0001f4  2803              CMP      r0,#3                 ;334
0001f6  d07d              BEQ      |L5.756|
0001f8  2804              CMP      r0,#4                 ;334
0001fa  d07c              BEQ      |L5.758|
0001fc  eeb08a69          VMOV.F32 s16,s19               ;361
                  |L5.512|
000200  ed940a27          VLDR     s0,[r4,#0x9c]         ;367
000204  ee200a08          VMUL.F32 s0,s0,s16             ;367
000208  ed850a10          VSTR     s0,[r5,#0x40]         ;367
00020c  ee100a10          VMOV     r0,s0                 ;368
000210  4970              LDR      r1,|L5.980|
000212  4288              CMP      r0,r1                 ;368
000214  db03              BLT      |L5.542|
000216  eeb30a0e          VMOV.F32 s0,#30.00000000       ;368
00021a  ed850a10          VSTR     s0,[r5,#0x40]         ;368
                  |L5.542|
00021e  496e              LDR      r1,|L5.984|
000220  6c28              LDR      r0,[r5,#0x40]         ;369  ; OutPutData
000222  4288              CMP      r0,r1                 ;369
000224  d303              BCC      |L5.558|
000226  eebb0a0e          VMOV.F32 s0,#-30.00000000      ;369
00022a  ed850a10          VSTR     s0,[r5,#0x40]         ;369
                  |L5.558|
00022e  ed970a00          VLDR     s0,[r7,#0]            ;370
000232  edd50a10          VLDR     s1,[r5,#0x40]         ;370
000236  eeb81ac0          VCVT.F32.S32 s2,s0                 ;370
00023a  ee311a20          VADD.F32 s2,s2,s1              ;370
00023e  eebd1ac1          VCVT.S32.F32 s2,s2                 ;370
000242  ee110a10          VMOV     r0,s2                 ;370
000246  81b8              STRH     r0,[r7,#0xc]          ;370
000248  eeb80ac0          VCVT.F32.S32 s0,s0                 ;371
00024c  ee300a60          VSUB.F32 s0,s0,s1              ;371
000250  eebd0ac0          VCVT.S32.F32 s0,s0                 ;371
000254  ee100a10          VMOV     r0,s0                 ;371
000258  81f8              STRH     r0,[r7,#0xe]          ;371
00025a  e703              B        |L5.100|
                  |L5.604|
00025c  ee180a90          VMOV     r0,s17                ;337
000260  f7fffffe          BL       __aeabi_f2d
000264  ec410b10          VMOV     d0,r0,r1              ;337
000268  f7fffffe          BL       __hardfp_sin
00026c  eeb08a40          VMOV.F32 s16,s0                ;337
000270  eef08a60          VMOV.F32 s17,s1                ;337
000274  6ea0              LDR      r0,[r4,#0x68]         ;337
000276  f7fffffe          BL       __aeabi_f2d
00027a  ec532b18          VMOV     r2,r3,d8              ;337
00027e  f7fffffe          BL       __aeabi_dmul
000282  ed950a12          VLDR     s0,[r5,#0x48]         ;337
000286  ec410b18          VMOV     d8,r0,r1              ;337
00028a  ee200a09          VMUL.F32 s0,s0,s18             ;337
00028e  ee100a10          VMOV     r0,s0                 ;337
000292  f7fffffe          BL       __aeabi_f2d
000296  ec532b18          VMOV     r2,r3,d8              ;337
00029a  f7fffffe          BL       __aeabi_dadd
00029e  f7fffffe          BL       __aeabi_d2f
0002a2  ee080a10          VMOV     s16,r0                ;337
0002a6  ed950a11          VLDR     s0,[r5,#0x44]         ;340
0002aa  ee200a09          VMUL.F32 s0,s0,s18             ;340
0002ae  ed860a07          VSTR     s0,[r6,#0x1c]         ;340
0002b2  e7a5              B        |L5.512|
                  |L5.692|
0002b4  ed950a11          VLDR     s0,[r5,#0x44]         ;343
0002b8  ee200a09          VMUL.F32 s0,s0,s18             ;343
0002bc  ee100a10          VMOV     r0,s0                 ;343
0002c0  f7fffffe          BL       __aeabi_f2d
0002c4  ec410b1a          VMOV     d10,r0,r1             ;343
0002c8  ee180a90          VMOV     r0,s17                ;343
0002cc  f7fffffe          BL       __aeabi_f2d
0002d0  ec410b10          VMOV     d0,r0,r1              ;343
0002d4  f7fffffe          BL       __hardfp_sin
0002d8  eeb08a40          VMOV.F32 s16,s0                ;343
0002dc  eef08a60          VMOV.F32 s17,s1                ;343
0002e0  6ea0              LDR      r0,[r4,#0x68]         ;343
0002e2  f7fffffe          BL       __aeabi_f2d
0002e6  ec532b18          VMOV     r2,r3,d8              ;343
0002ea  f7fffffe          BL       __aeabi_dmul
0002ee  ec532b1a          VMOV     r2,r3,d10             ;343
0002f2  e001              B        |L5.760|
                  |L5.756|
0002f4  e00d              B        |L5.786|
                  |L5.758|
0002f6  e038              B        |L5.874|
                  |L5.760|
0002f8  f7fffffe          BL       __aeabi_dsub
0002fc  f7fffffe          BL       __aeabi_d2f
000300  ee080a10          VMOV     s16,r0                ;343
000304  ed950a12          VLDR     s0,[r5,#0x48]         ;345
000308  ee200a09          VMUL.F32 s0,s0,s18             ;345
00030c  ed860a07          VSTR     s0,[r6,#0x1c]         ;345
000310  e776              B        |L5.512|
                  |L5.786|
000312  ed950a12          VLDR     s0,[r5,#0x48]         ;349
000316  ee200a09          VMUL.F32 s0,s0,s18             ;349
00031a  ee100a10          VMOV     r0,s0                 ;349
00031e  f7fffffe          BL       __aeabi_f2d
000322  ec410b1a          VMOV     d10,r0,r1             ;349
000326  ee180a90          VMOV     r0,s17                ;349
00032a  f7fffffe          BL       __aeabi_f2d
00032e  ec410b10          VMOV     d0,r0,r1              ;349
000332  f7fffffe          BL       __hardfp_sin
000336  eeb08a40          VMOV.F32 s16,s0                ;349
00033a  eef08a60          VMOV.F32 s17,s1                ;349
00033e  6ea0              LDR      r0,[r4,#0x68]         ;349
000340  f7fffffe          BL       __aeabi_f2d
000344  ec532b18          VMOV     r2,r3,d8              ;349
000348  f7fffffe          BL       __aeabi_dmul
00034c  ec532b1a          VMOV     r2,r3,d10             ;349
000350  f7fffffe          BL       __aeabi_dsub
000354  f7fffffe          BL       __aeabi_d2f
000358  ee080a10          VMOV     s16,r0                ;349
00035c  ed950a11          VLDR     s0,[r5,#0x44]         ;351
000360  ee200a09          VMUL.F32 s0,s0,s18             ;351
000364  ed860a07          VSTR     s0,[r6,#0x1c]         ;351
000368  e74a              B        |L5.512|
                  |L5.874|
00036a  ee180a90          VMOV     r0,s17                ;355
00036e  f7fffffe          BL       __aeabi_f2d
000372  ec410b10          VMOV     d0,r0,r1              ;355
000376  f7fffffe          BL       __hardfp_sin
00037a  eeb08a40          VMOV.F32 s16,s0                ;355
00037e  eef08a60          VMOV.F32 s17,s1                ;355
000382  6ea0              LDR      r0,[r4,#0x68]         ;355
000384  f7fffffe          BL       __aeabi_f2d
000388  ec532b18          VMOV     r2,r3,d8              ;355
00038c  f7fffffe          BL       __aeabi_dmul
000390  ed950a11          VLDR     s0,[r5,#0x44]         ;355
000394  ec410b18          VMOV     d8,r0,r1              ;355
000398  ee200a09          VMUL.F32 s0,s0,s18             ;355
00039c  ee100a10          VMOV     r0,s0                 ;355
0003a0  f7fffffe          BL       __aeabi_f2d
0003a4  ec532b18          VMOV     r2,r3,d8              ;355
0003a8  f7fffffe          BL       __aeabi_dadd
0003ac  f7fffffe          BL       __aeabi_d2f
0003b0  ee080a10          VMOV     s16,r0                ;355
0003b4  ed950a12          VLDR     s0,[r5,#0x48]         ;358
0003b8  ee200a09          VMUL.F32 s0,s0,s18             ;358
0003bc  ed860a07          VSTR     s0,[r6,#0x1c]         ;358
0003c0  e71e              B        |L5.512|
;;;373    
                          ENDP

0003c2  0000              DCW      0x0000
                  |L5.964|
0003c4  00000000          DCFS     0x00000000 ; 0
                  |L5.968|
                          DCD      ||.data||+0x4c
                  |L5.972|
                          DCD      ||.bss||+0x10
                  |L5.976|
0003d0  447a0000          DCFS     0x447a0000 ; 1000
                  |L5.980|
                          DCD      0x41f00000
                  |L5.984|
                          DCD      0xc1f00000

                          AREA ||i.QecodeSiteChange||, CODE, READONLY, ALIGN=2

                  QecodeSiteChange PROC
;;;437    
;;;438    void QecodeSiteChange(agvCalculationTurningSteering *CalculationTurningSteering,agvControlInputValue *ControlInputValue,agvControlOutputValue *ControlOutputValue)
000000  b570              PUSH     {r4-r6,lr}
;;;439    {
000002  460c              MOV      r4,r1
;;;440    	ControlOutputValue->SetMoveSpeed = 20;
000004  2014              MOVS     r0,#0x14
000006  6010              STR      r0,[r2,#0]
;;;441    	
;;;442    	Uart_Printf(COM1,"camerparameter.DistanceCalibrationValue=%.1f\r\n",camerparameter.DistanceCalibrationValue);
000008  4d15              LDR      r5,|L6.96|
00000a  69e8              LDR      r0,[r5,#0x1c]  ; camerparameter
00000c  f7fffffe          BL       __aeabi_f2d
000010  ec410b10          VMOV     d0,r0,r1
000014  a113              ADR      r1,|L6.100|
000016  ec532b10          VMOV     r2,r3,d0
00001a  2001              MOVS     r0,#1
00001c  f7fffffe          BL       Uart_Printf
;;;443    	if(fabs(camerparameter.DistanceCalibrationValue) <= 10.0f)
000020  69e8              LDR      r0,[r5,#0x1c]  ; camerparameter
000022  f7fffffe          BL       __aeabi_f2d
000026  ec410b10          VMOV     d0,r0,r1
00002a  f7fffffe          BL       __hardfp_fabs
00002e  ed9f1b19          VLDR     d1,|L6.148|
000032  ec510b10          VMOV     r0,r1,d0
000036  ec532b11          VMOV     r2,r3,d1
00003a  f7fffffe          BL       __aeabi_cdcmple
00003e  d80d              BHI      |L6.92|
;;;444    	{
;;;445    		//
;;;446    		Uart_Printf(COM1,"到达二维码码心");
000040  a116              ADR      r1,|L6.156|
000042  2001              MOVS     r0,#1
000044  f7fffffe          BL       Uart_Printf
;;;447    		
;;;448    		//强制更新站点
;;;449    		agvSwitchUpdataSiteID();		
000048  f7fffffe          BL       agvSwitchUpdataSiteID
;;;450    //		CalculationTurningSteering->BeforeTurningOffset = CalculationTurningSteering->TailOffset;
;;;451    //		CalculationTurningSteering->BeforeTurningAngleDifference = CalculationTurningSteering->AngleDifference;
;;;452    		LaserControlSignal.StraightHalfwayStatus = 0;
00004c  4817              LDR      r0,|L6.172|
00004e  2500              MOVS     r5,#0
000050  70c5              STRB     r5,[r0,#3]
;;;453    		Printf_LineToLine(ControlInputValue);
000052  4620              MOV      r0,r4
000054  f7fffffe          BL       Printf_LineToLine
;;;454    		ControlInputValue->QrcodeLocationingStatus = 0;		
000058  f88450b9          STRB     r5,[r4,#0xb9]
                  |L6.92|
;;;455    	}	
;;;456    }
00005c  bd70              POP      {r4-r6,pc}
;;;457    
                          ENDP

00005e  0000              DCW      0x0000
                  |L6.96|
                          DCD      ||.bss||+0x10
                  |L6.100|
000064  63616d65          DCB      "camerparameter.DistanceCalibrationValue=%.1f\r\n",0
000068  72706172
00006c  616d6574
000070  65722e44
000074  69737461
000078  6e636543
00007c  616c6962
000080  72617469
000084  6f6e5661
000088  6c75653d
00008c  252e3166
000090  0d0a00  
000093  00                DCB      0
                  |L6.148|
000094  00000000          DCFD     0x4024000000000000 ; 10
000098  40240000
                  |L6.156|
00009c  b5bdb4ef          DCB      181,189,180,239,182,254,206,172,194,235,194,235,208,196,0
0000a0  b6feceac
0000a4  c2ebc2eb
0000a8  d0c400  
0000ab  00                DCB      0
                  |L6.172|
                          DCD      LaserControlSignal

                          AREA ||i.SendInitQRCommend||, CODE, READONLY, ALIGN=2

                  SendInitQRCommend PROC
;;;102    
;;;103    void SendInitQRCommend()
000000  2202              MOVS     r2,#2
;;;104    {
;;;105    	WriteUart(COM6,selectpostag,2);
000002  4902              LDR      r1,|L7.12|
000004  2006              MOVS     r0,#6
000006  f7ffbffe          B.W      WriteUart
;;;106    }
;;;107    
                          ENDP

00000a  0000              DCW      0x0000
                  |L7.12|
                          DCD      ||.data||+0x2

                          AREA ||i.UpdataCamerParameter||, CODE, READONLY, ALIGN=2

                  UpdataCamerParameter PROC
;;;26     
;;;27     void UpdataCamerParameter()
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;28     {
000004  ed2d8b02          VPUSH    {d8}
;;;29     	static int QRcodeSpacing = 0;//二维码间距
;;;30     	static int CurDis = 0,LastDis = 0,CurFlag = 0,LastFlag = 0;
;;;31     	
;;;32     	if(Tagdata.tagnumber != 0)
000008  4e38              LDR      r6,|L8.236|
;;;33     	{
;;;34     		CurDis = ControlInputValue.AgvActualFirstDis;
00000a  4f3a              LDR      r7,|L8.244|
00000c  f8df80e0          LDR      r8,|L8.240|
000010  68f0              LDR      r0,[r6,#0xc]  ; Tagdata
000012  697c              LDR      r4,[r7,#0x14]         ;32
;;;35     		camerparameter.UpdataFlag = 1;
000014  f1060510          ADD      r5,r6,#0x10
000018  2800              CMP      r0,#0                 ;32
00001a  d005              BEQ      |L8.40|
00001c  f8c84008          STR      r4,[r8,#8]            ;34  ; CurDis
000020  2101              MOVS     r1,#1
000022  7629              STRB     r1,[r5,#0x18]
;;;36     		camerparameter.id = Tagdata.tagnumber;
000024  8068              STRH     r0,[r5,#2]
000026  e001              B        |L8.44|
                  |L8.40|
;;;37     	}
;;;38     	else camerparameter.UpdataFlag = 0;
000028  2000              MOVS     r0,#0
00002a  7628              STRB     r0,[r5,#0x18]
                  |L8.44|
;;;39     	
;;;40     	camerparameter.X_pixel = Tagdata.x/10000.0;          //毫米转换成米
00002c  6830              LDR      r0,[r6,#0]  ; Tagdata
00002e  f7fffffe          BL       __aeabi_i2d
000032  ed9f8b31          VLDR     d8,|L8.248|
000036  ec532b18          VMOV     r2,r3,d8
00003a  f7fffffe          BL       __aeabi_ddiv
00003e  f7fffffe          BL       __aeabi_d2f
000042  6068              STR      r0,[r5,#4]  ; camerparameter
;;;41     	camerparameter.Y_pixel = Tagdata.y/10000.0;
000044  6870              LDR      r0,[r6,#4]  ; Tagdata
000046  f7fffffe          BL       __aeabi_i2d
00004a  ec532b18          VMOV     r2,r3,d8
00004e  f7fffffe          BL       __aeabi_ddiv
000052  f7fffffe          BL       __aeabi_d2f
000056  60a8              STR      r0,[r5,#8]  ; camerparameter
;;;42     	
;;;43     	if(Tagdata.angle) camerparameter.angle = 360.0 - Tagdata.angle/10.0;    //转换为一般坐标系对应的角度
000058  68b0              LDR      r0,[r6,#8]  ; Tagdata
00005a  b188              CBZ      r0,|L8.128|
00005c  f7fffffe          BL       __aeabi_ui2d
000060  ed9f1b27          VLDR     d1,|L8.256|
000064  ec532b11          VMOV     r2,r3,d1
000068  f7fffffe          BL       __aeabi_ddiv
00006c  ed9f1b26          VLDR     d1,|L8.264|
000070  ec532b11          VMOV     r2,r3,d1
000074  f7fffffe          BL       __aeabi_drsub
000078  f7fffffe          BL       __aeabi_d2f
00007c  60e8              STR      r0,[r5,#0xc]  ; camerparameter
00007e  e003              B        |L8.136|
                  |L8.128|
;;;44     	else camerparameter.angle = 0.0;
000080  ed9f0a23          VLDR     s0,|L8.272|
000084  ed850a03          VSTR     s0,[r5,#0xc]
                  |L8.136|
;;;45     	
;;;46     	if(camerparameter.angle >= 180.0)
000088  4922              LDR      r1,|L8.276|
00008a  68e8              LDR      r0,[r5,#0xc]  ; camerparameter
;;;47     	{
;;;48     		camerparameter.angle = camerparameter.angle - 180.0;
00008c  ed9f8b22          VLDR     d8,|L8.280|
000090  4288              CMP      r0,r1                 ;46
000092  db09              BLT      |L8.168|
000094  f7fffffe          BL       __aeabi_f2d
000098  ec532b18          VMOV     r2,r3,d8
00009c  f7fffffe          BL       __aeabi_dsub
0000a0  f7fffffe          BL       __aeabi_d2f
0000a4  60e8              STR      r0,[r5,#0xc]  ; camerparameter
0000a6  e008              B        |L8.186|
                  |L8.168|
;;;49     	}
;;;50     	else
;;;51     	{
;;;52     		camerparameter.angle = camerparameter.angle + 180.0;
0000a8  f7fffffe          BL       __aeabi_f2d
0000ac  ec532b18          VMOV     r2,r3,d8
0000b0  f7fffffe          BL       __aeabi_dadd
0000b4  f7fffffe          BL       __aeabi_d2f
0000b8  60e8              STR      r0,[r5,#0xc]  ; camerparameter
                  |L8.186|
;;;53     	}
;;;54     	
;;;55     	LastDis = ControlInputValue.AgvActualFirstDis;
0000ba  f8c8400c          STR      r4,[r8,#0xc]  ; LastDis
;;;56     	
;;;57     	ControlInputValue.QRcodeSpacing = abs(LastDis - CurDis);
0000be  f8d80008          LDR      r0,[r8,#8]  ; CurDis
0000c2  1a20              SUBS     r0,r4,r0
0000c4  d500              BPL      |L8.200|
0000c6  4240              RSBS     r0,r0,#0
                  |L8.200|
0000c8  67b8              STR      r0,[r7,#0x78]  ; ControlInputValue
;;;58     	
;;;59     	if(camerparameter.UpdataFlag)//二维码导航
0000ca  7e29              LDRB     r1,[r5,#0x18]  ; camerparameter
0000cc  b111              CBZ      r1,|L8.212|
;;;60     	{
;;;61     		ControlInputValue.NavcitionMode = 3;
0000ce  2103              MOVS     r1,#3
0000d0  f887103d          STRB     r1,[r7,#0x3d]
                  |L8.212|
;;;62     	}
;;;63     	if(ControlInputValue.QRcodeSpacing >= 1500)//激光导航
0000d4  f24051dc          MOV      r1,#0x5dc
0000d8  4288              CMP      r0,r1
0000da  db02              BLT      |L8.226|
;;;64     	{
;;;65     		ControlInputValue.NavcitionMode = 2;
0000dc  2002              MOVS     r0,#2
0000de  f887003d          STRB     r0,[r7,#0x3d]
                  |L8.226|
;;;66     	}
;;;67     	
;;;68     //	Uart_Printf(COM1,"X=%.1f	y=%.1f	w=%f\r\n",camerparameter.X_pixel*1000.0f,camerparameter.Y_pixel*1000.0f,camerparameter.angle);
;;;69     }
0000e2  ecbd8b02          VPOP     {d8}
0000e6  e8bd81f0          POP      {r4-r8,pc}
;;;70     
                          ENDP

0000ea  0000              DCW      0x0000
                  |L8.236|
                          DCD      ||.bss||
                  |L8.240|
                          DCD      ||.data||
                  |L8.244|
                          DCD      ControlInputValue
                  |L8.248|
0000f8  00000000          DCFD     0x40c3880000000000 ; 10000
0000fc  40c38800
                  |L8.256|
000100  00000000          DCFD     0x4024000000000000 ; 10
000104  40240000
                  |L8.264|
000108  00000000          DCFD     0x4076800000000000 ; 360
00010c  40768000
                  |L8.272|
000110  00000000          DCFS     0x00000000 ; 0
                  |L8.276|
                          DCD      0x43340000
                  |L8.280|
000118  00000000          DCFD     0x4066800000000000 ; 180
00011c  40668000

                          AREA ||i.agvIntegratedLaserAndIntegralData||, CODE, READONLY, ALIGN=2

                  agvIntegratedLaserAndIntegralData PROC
;;;121    
;;;122    void agvIntegratedLaserAndIntegralData(float *XBias,float *YBias,float *Theta,agvControlInputValue *ControlInputValue)
000000  e92d4ff0          PUSH     {r4-r11,lr}
;;;123    {
000004  4605              MOV      r5,r0
000006  ed2d8b0a          VPUSH    {d8-d12}
00000a  b0a1              SUB      sp,sp,#0x84
00000c  460e              MOV      r6,r1
00000e  4690              MOV      r8,r2
000010  461c              MOV      r4,r3
;;;124    	static float CenterPx = 0,CenterPy = 0,QRx = 0,QRy = 0,IntegralX = 0,IntegralY = 0,AngleDifference = 0,RectificationX = 0,RectificationY = 150;
;;;125    	
;;;126    	if(camerparameter.UpdataFlag == 1)//扫到二维码
000012  f8dfb3e8          LDR      r11,|L9.1020|
000016  f89b0018          LDRB     r0,[r11,#0x18]  ; camerparameter
;;;127    	{
;;;128    		*Theta = camerparameter.angle/180.0f * PI;
;;;129    		/**************AGV相对于二维码的方向****************/
;;;130    		if((camerparameter.angle <= 25.0f) || (camerparameter.angle >= 335.0f))
;;;131    		{
;;;132    			camerparameter.TwoDCdirection = 1;
;;;133    			camerparameter.BaseAngle = 0.0;
;;;134    		}
;;;135    		else if((camerparameter.angle <= 115.0f) && (camerparameter.angle >= 65.0f))
;;;136    		{
;;;137    			camerparameter.TwoDCdirection = 2;
;;;138    			camerparameter.BaseAngle = PI/2.0f;
00001a  eddf1af9          VLDR     s3,|L9.1024|
;;;139    		}
;;;140    		else if((camerparameter.angle <= 205.0f) && (camerparameter.angle >= 155.0f))
;;;141    		{
;;;142    			camerparameter.TwoDCdirection = 3;
;;;143    			camerparameter.BaseAngle = PI;	
;;;144    		}
;;;145    		else if((camerparameter.angle <= 295.0f) && (camerparameter.angle >= 245.0f))
;;;146    		{
;;;147    			camerparameter.TwoDCdirection = 4;
;;;148    			camerparameter.BaseAngle = 3.0f*PI/2.0f;
00001e  ed9f2af9          VLDR     s4,|L9.1028|
000022  ed9faaf9          VLDR     s20,|L9.1032|
000026  eddf8af9          VLDR     s17,|L9.1036|
;;;149    		}
;;;150    		else
;;;151    		{
;;;152    			camerparameter.TwoDCdirection = 0;
;;;153    		}
;;;154    		
;;;155    		*XBias = (float)camerparameter.X_pixel;
;;;156    		*YBias = (float)camerparameter.Y_pixel;
;;;157    
;;;158    		AngleDifference = CalculatingCurrentAndTargetAngle(*Theta,camerparameter.BaseAngle);
00002a  4ff9              LDR      r7,|L9.1040|
;;;159    		
;;;160    		if(ControlInputValue->Direction == 1)//前进
;;;161    		{
;;;162    			//转换到积分点
;;;163    			CenterPx = *XBias + sin(AngleDifference)*QR_X_OFFSET;
;;;164    			CenterPy = *YBias + cos(AngleDifference)*QR_X_OFFSET;
;;;165    			
;;;166    			IntegralX = CenterPx - cos(AngleDifference) * (ControlInputValue->Wheelbase / 2.0f);
;;;167    			IntegralY = CenterPy - sin(AngleDifference) * (ControlInputValue->Wheelbase / 2.0f);
;;;168    			
;;;169    			RectificationX = IntegralX + cos(AngleDifference) * ControlInputValue->Wheelbase;
;;;170    			RectificationY = IntegralY + sin(AngleDifference) * ControlInputValue->Wheelbase;
;;;171    		}
;;;172    		else if(ControlInputValue->Direction == 2)	//后退
;;;173    		{
;;;174    			//转换到积分点
;;;175    			CenterPx = *XBias + sin(AngleDifference)*QR_X_OFFSET;
;;;176    			CenterPy = *YBias + cos(AngleDifference)*QR_X_OFFSET;
;;;177    			
;;;178    			IntegralX = CenterPx + cos(AngleDifference) * (ControlInputValue->Wheelbase / 2.0f);
;;;179    			IntegralY = CenterPy + sin(AngleDifference) * (ControlInputValue->Wheelbase / 2.0f);
;;;180    			
;;;181    			RectificationX = IntegralX - cos(AngleDifference) * ControlInputValue->Wheelbase;
;;;182    			RectificationY = IntegralY - sin(AngleDifference) * ControlInputValue->Wheelbase;			
;;;183    		}
;;;184    		else if(ControlInputValue->Direction == 3)//平移前进
;;;185    		{
;;;186    			IntegralX = *XBias + sin(AngleDifference) * PINGYI_WHEEL_BASE_BACK;
;;;187    			IntegralY = *YBias - cos(AngleDifference) * PINGYI_WHEEL_BASE_BACK;
;;;188    			
;;;189    			RectificationX = *XBias - sin(AngleDifference) * PINGYI_WHEEL_BASE_FRONT;
;;;190    			RectificationY = *YBias + cos(AngleDifference) * PINGYI_WHEEL_BASE_FRONT;		
;;;191    		}
;;;192    		else if(ControlInputValue->Direction == 4)//平移后退
;;;193    		{
;;;194    			IntegralX = *XBias - sin(AngleDifference) * PINGYI_WHEEL_BASE_FRONT;
;;;195    			IntegralY = *YBias + cos(AngleDifference) * PINGYI_WHEEL_BASE_FRONT;
;;;196    			
;;;197    			RectificationX = *XBias + sin(AngleDifference) * PINGYI_WHEEL_BASE_BACK;
;;;198    			RectificationY = *YBias - cos(AngleDifference) * PINGYI_WHEEL_BASE_BACK;	
;;;199    		}
;;;200    		
;;;201    		Uart_Printf(COM1,"二维码数据=%.1f	y=%.1f	w=%f	夹角=%f	车头x=%.1f	y=%.1f	积分点x=%.1f	y=%.1f	offset=%.1f	D%d\r\n",
00002c  ed9f8af9          VLDR     s16,|L9.1044|
000030  2801              CMP      r0,#1                 ;126
000032  d00f              BEQ      |L9.84|
;;;202    		*XBias*1000.0f,*YBias*1000.0f,camerparameter.angle,AngleDifference*180.0f/PI,
;;;203    		RectificationX*1000,RectificationY*1000,IntegralX*1000,IntegralY*1000,ControlOutputValue.AgvOffset,ControlInputValue->Direction);
;;;204    				
;;;205    		TIM_SetCounter(TIM3,0);//清空计时器				
;;;206    	}
;;;207    	else
;;;208    	{
;;;209    		static float RequstAngle = 0,RequstSpeed = 0,Angle = 0;
;;;210    
;;;211    		if(ControlInputValue->Direction == 1)//前进
000034  f89400ba          LDRB     r0,[r4,#0xba]
000038  2801              CMP      r0,#1
00003a  d07c              BEQ      |L9.310|
;;;212    		{
;;;213    			RequstAngle = ControlInputValue->AgvFirstRudderWheelAngle;
;;;214    			RequstSpeed = (float)ControlInputValue->AgvActualFirstSpeed / 1000.0f;
;;;215    			
;;;216    			agvEncoderIntegrate(ControlInputValue->Wheelbase,&IntegralX,&IntegralY,&AngleDifference,RequstSpeed,RequstAngle);
;;;217    
;;;218    			RectificationX = IntegralX + cos(AngleDifference) * ControlInputValue->Wheelbase;
;;;219    			RectificationY = IntegralY + sin(AngleDifference) * ControlInputValue->Wheelbase;			
;;;220    		}
;;;221    		else if(ControlInputValue->Direction == 2)	//后退
00003c  2802              CMP      r0,#2
00003e  d07b              BEQ      |L9.312|
;;;222    		{
;;;223    			RequstAngle = ControlInputValue->AgvSecondRudderWheelAngle;
;;;224    			RequstSpeed = (float)ControlInputValue->AgvActualSecondSpeed / 1000.0f;
;;;225    			
;;;226    			agvEncoderIntegrate(ControlInputValue->Wheelbase,&IntegralX,&IntegralY,&AngleDifference,RequstSpeed,RequstAngle);
;;;227    
;;;228    			RectificationX = IntegralX - cos(AngleDifference) * ControlInputValue->Wheelbase;
;;;229    			RectificationY = IntegralY - sin(AngleDifference) * ControlInputValue->Wheelbase;
;;;230    		}
;;;231    		else if(ControlInputValue->Direction == 3)//平移前进
;;;232    		{
;;;233    			RequstAngle = ControlInputValue->AgvThirdRudderWheelAngle;
;;;234    			RequstSpeed = (float)ControlInputValue->AgvActualThirdSpeed / 1000.0f;
;;;235    			
;;;236    			Angle = AngleDifference + PI / 2.0f;
;;;237    			agvEncoderIntegrate(PINGYI_WHEEL_BASE_FRONT,&IntegralX,&IntegralY,&Angle,RequstSpeed,RequstAngle);
;;;238    
;;;239    			RectificationX = IntegralX - sin(AngleDifference) * PINGYI_WHEEL_BASE;
000040  ed9fbbf5          VLDR     d11,|L9.1048|
000044  4639              MOV      r1,r7                 ;158
000046  2803              CMP      r0,#3                 ;231
000048  ed910a09          VLDR     s0,[r1,#0x24]         ;158
00004c  d075              BEQ      |L9.314|
;;;240    			RectificationY = IntegralY + cos(AngleDifference) * PINGYI_WHEEL_BASE;	
;;;241    		}
;;;242    		else if(ControlInputValue->Direction == 4)//平移后退
00004e  2804              CMP      r0,#4
000050  d074              BEQ      |L9.316|
000052  e399              B        |L9.1928|
                  |L9.84|
000054  eddb0a03          VLDR     s1,[r11,#0xc]         ;128
000058  ee800a8a          VDIV.F32 s0,s1,s20             ;128
00005c  ee200a28          VMUL.F32 s0,s0,s17             ;128
000060  ed880a00          VSTR     s0,[r8,#0]            ;128
000064  49ee              LDR      r1,|L9.1056|
000066  f8db000c          LDR      r0,[r11,#0xc]         ;130  ; camerparameter
00006a  4288              CMP      r0,r1                 ;130
00006c  dd02              BLE      |L9.116|
00006e  49ed              LDR      r1,|L9.1060|
000070  4288              CMP      r0,r1                 ;130
000072  db07              BLT      |L9.132|
                  |L9.116|
000074  2001              MOVS     r0,#1                 ;132
000076  f88b0000          STRB     r0,[r11,#0]           ;132
00007a  ed9f0aeb          VLDR     s0,|L9.1064|
00007e  ed8b0a04          VSTR     s0,[r11,#0x10]        ;133
000082  e023              B        |L9.204|
                  |L9.132|
000084  49e9              LDR      r1,|L9.1068|
000086  4401              ADD      r1,r1,r0              ;135
000088  f5b10fc8          CMP      r1,#0x640000          ;135
00008c  d805              BHI      |L9.154|
00008e  2002              MOVS     r0,#2                 ;137
000090  f88b0000          STRB     r0,[r11,#0]           ;137
000094  edcb1a04          VSTR     s3,[r11,#0x10]        ;138
000098  e018              B        |L9.204|
                  |L9.154|
00009a  49e5              LDR      r1,|L9.1072|
00009c  4401              ADD      r1,r1,r0              ;140
00009e  f5b11f48          CMP      r1,#0x320000          ;140
0000a2  d805              BHI      |L9.176|
0000a4  2003              MOVS     r0,#3                 ;142
0000a6  f88b0000          STRB     r0,[r11,#0]           ;142
0000aa  edcb8a04          VSTR     s17,[r11,#0x10]       ;143
0000ae  e00d              B        |L9.204|
                  |L9.176|
0000b0  49e0              LDR      r1,|L9.1076|
0000b2  4408              ADD      r0,r0,r1              ;145
0000b4  f5b01ff4          CMP      r0,#0x1e8000          ;145
0000b8  d805              BHI      |L9.198|
0000ba  2004              MOVS     r0,#4                 ;147
0000bc  f88b0000          STRB     r0,[r11,#0]           ;147
0000c0  ed8b2a04          VSTR     s4,[r11,#0x10]        ;148
0000c4  e002              B        |L9.204|
                  |L9.198|
0000c6  2000              MOVS     r0,#0                 ;152
0000c8  f88b0000          STRB     r0,[r11,#0]           ;152
                  |L9.204|
0000cc  ed9b0a01          VLDR     s0,[r11,#4]           ;155
0000d0  ed850a00          VSTR     s0,[r5,#0]            ;155
0000d4  ed9b0a02          VLDR     s0,[r11,#8]           ;156
0000d8  ed860a00          VSTR     s0,[r6,#0]            ;156
0000dc  eddb0a04          VLDR     s1,[r11,#0x10]        ;158
0000e0  ed980a00          VLDR     s0,[r8,#0]            ;158
0000e4  f7fffffe          BL       CalculatingCurrentAndTargetAngle
0000e8  ed870a09          VSTR     s0,[r7,#0x24]         ;158
0000ec  f89400ba          LDRB     r0,[r4,#0xba]         ;160
0000f0  ed9f9bd1          VLDR     d9,|L9.1080|
0000f4  eef6aa00          VMOV.F32 s21,#0.50000000       ;166
0000f8  2801              CMP      r0,#1                 ;160
0000fa  d00a              BEQ      |L9.274|
0000fc  2802              CMP      r0,#2                 ;172
0000fe  d07d              BEQ      |L9.508|
000100  ed9f9bcf          VLDR     d9,|L9.1088|
000104  ed9fbbd0          VLDR     d11,|L9.1096|
000108  2803              CMP      r0,#3                 ;184
00010a  d078              BEQ      |L9.510|
00010c  2804              CMP      r0,#4                 ;192
00010e  d077              BEQ      |L9.512|
000110  e269              B        |L9.1510|
                  |L9.274|
000112  ee100a10          VMOV     r0,s0                 ;163
000116  f7fffffe          BL       __aeabi_f2d
00011a  ec410b10          VMOV     d0,r0,r1              ;163
00011e  f7fffffe          BL       __hardfp_sin
000122  ec532b19          VMOV     r2,r3,d9              ;163
000126  ec510b10          VMOV     r0,r1,d0              ;163
00012a  f7fffffe          BL       __aeabi_dmul
00012e  ec410b1b          VMOV     d11,r0,r1             ;163
000132  6828              LDR      r0,[r5,#0]            ;163
000134  e003              B        |L9.318|
                  |L9.310|
000136  e2d6              B        |L9.1766|
                  |L9.312|
000138  e327              B        |L9.1930|
                  |L9.314|
00013a  e378              B        |L9.2094|
                  |L9.316|
00013c  e3c5              B        |L9.2250|
                  |L9.318|
00013e  f7fffffe          BL       __aeabi_f2d
000142  ec532b1b          VMOV     r2,r3,d11             ;163
000146  f7fffffe          BL       __aeabi_dadd
00014a  f7fffffe          BL       __aeabi_d2f
00014e  6178              STR      r0,[r7,#0x14]         ;163  ; CenterPx
000150  6a78              LDR      r0,[r7,#0x24]         ;164  ; AngleDifference
000152  f7fffffe          BL       __aeabi_f2d
000156  ec410b10          VMOV     d0,r0,r1              ;164
00015a  f7fffffe          BL       __hardfp_cos
00015e  ec532b19          VMOV     r2,r3,d9              ;164
000162  ec510b10          VMOV     r0,r1,d0              ;164
000166  f7fffffe          BL       __aeabi_dmul
00016a  ec410b19          VMOV     d9,r0,r1              ;164
00016e  6830              LDR      r0,[r6,#0]            ;164
000170  f7fffffe          BL       __aeabi_f2d
000174  ec532b19          VMOV     r2,r3,d9              ;164
000178  f7fffffe          BL       __aeabi_dadd
00017c  f7fffffe          BL       __aeabi_d2f
000180  61b8              STR      r0,[r7,#0x18]         ;164  ; CenterPy
000182  ed940a10          VLDR     s0,[r4,#0x40]         ;166
000186  ee200a2a          VMUL.F32 s0,s0,s21             ;166
00018a  ee100a10          VMOV     r0,s0                 ;166
00018e  f7fffffe          BL       __aeabi_f2d
000192  ec410b19          VMOV     d9,r0,r1              ;166
000196  6a78              LDR      r0,[r7,#0x24]         ;166  ; AngleDifference
000198  f7fffffe          BL       __aeabi_f2d
00019c  ec410b10          VMOV     d0,r0,r1              ;166
0001a0  f7fffffe          BL       __hardfp_cos
0001a4  ec532b19          VMOV     r2,r3,d9              ;166
0001a8  ec510b10          VMOV     r0,r1,d0              ;166
0001ac  f7fffffe          BL       __aeabi_dmul
0001b0  ec410b19          VMOV     d9,r0,r1              ;166
0001b4  6978              LDR      r0,[r7,#0x14]         ;166  ; CenterPx
0001b6  f7fffffe          BL       __aeabi_f2d
0001ba  ec532b19          VMOV     r2,r3,d9              ;166
0001be  f7fffffe          BL       __aeabi_dsub
0001c2  f7fffffe          BL       __aeabi_d2f
0001c6  61f8              STR      r0,[r7,#0x1c]         ;166  ; IntegralX
0001c8  ed940a10          VLDR     s0,[r4,#0x40]         ;167
0001cc  ee200a2a          VMUL.F32 s0,s0,s21             ;167
0001d0  ee100a10          VMOV     r0,s0                 ;167
0001d4  f7fffffe          BL       __aeabi_f2d
0001d8  ec410b19          VMOV     d9,r0,r1              ;167
0001dc  6a78              LDR      r0,[r7,#0x24]         ;167  ; AngleDifference
0001de  f7fffffe          BL       __aeabi_f2d
0001e2  ec410b10          VMOV     d0,r0,r1              ;167
0001e6  f7fffffe          BL       __hardfp_sin
0001ea  ec532b19          VMOV     r2,r3,d9              ;167
0001ee  ec510b10          VMOV     r0,r1,d0              ;167
0001f2  f7fffffe          BL       __aeabi_dmul
0001f6  ec410b19          VMOV     d9,r0,r1              ;167
0001fa  e002              B        |L9.514|
                  |L9.508|
0001fc  e048              B        |L9.656|
                  |L9.510|
0001fe  e127              B        |L9.1104|
                  |L9.512|
000200  e18c              B        |L9.1308|
                  |L9.514|
000202  69b8              LDR      r0,[r7,#0x18]         ;167  ; CenterPy
000204  f7fffffe          BL       __aeabi_f2d
000208  ec532b19          VMOV     r2,r3,d9              ;167
00020c  f7fffffe          BL       __aeabi_dsub
000210  f7fffffe          BL       __aeabi_d2f
000214  6238              STR      r0,[r7,#0x20]         ;167  ; IntegralY
000216  6c20              LDR      r0,[r4,#0x40]         ;169
000218  f7fffffe          BL       __aeabi_f2d
00021c  ec410b19          VMOV     d9,r0,r1              ;169
000220  6a78              LDR      r0,[r7,#0x24]         ;169  ; AngleDifference
000222  f7fffffe          BL       __aeabi_f2d
000226  ec410b10          VMOV     d0,r0,r1              ;169
00022a  f7fffffe          BL       __hardfp_cos
00022e  ec532b19          VMOV     r2,r3,d9              ;169
000232  ec510b10          VMOV     r0,r1,d0              ;169
000236  f7fffffe          BL       __aeabi_dmul
00023a  ec410b19          VMOV     d9,r0,r1              ;169
00023e  69f8              LDR      r0,[r7,#0x1c]         ;169  ; IntegralX
000240  f7fffffe          BL       __aeabi_f2d
000244  ec532b19          VMOV     r2,r3,d9              ;169
000248  f7fffffe          BL       __aeabi_dadd
00024c  f7fffffe          BL       __aeabi_d2f
000250  62b8              STR      r0,[r7,#0x28]         ;169  ; RectificationX
000252  6c20              LDR      r0,[r4,#0x40]         ;170
000254  f7fffffe          BL       __aeabi_f2d
000258  ec410b19          VMOV     d9,r0,r1              ;170
00025c  6a78              LDR      r0,[r7,#0x24]         ;170  ; AngleDifference
00025e  f7fffffe          BL       __aeabi_f2d
000262  ec410b10          VMOV     d0,r0,r1              ;170
000266  f7fffffe          BL       __hardfp_sin
00026a  ec532b19          VMOV     r2,r3,d9              ;170
00026e  ec510b10          VMOV     r0,r1,d0              ;170
000272  f7fffffe          BL       __aeabi_dmul
000276  ec410b19          VMOV     d9,r0,r1              ;170
00027a  6a38              LDR      r0,[r7,#0x20]         ;170  ; IntegralY
00027c  f7fffffe          BL       __aeabi_f2d
000280  ec532b19          VMOV     r2,r3,d9              ;170
000284  f7fffffe          BL       __aeabi_dadd
000288  f7fffffe          BL       __aeabi_d2f
00028c  62f8              STR      r0,[r7,#0x2c]         ;170  ; RectificationY
00028e  e1aa              B        |L9.1510|
                  |L9.656|
000290  ee100a10          VMOV     r0,s0                 ;175
000294  f7fffffe          BL       __aeabi_f2d
000298  ec410b10          VMOV     d0,r0,r1              ;175
00029c  f7fffffe          BL       __hardfp_sin
0002a0  ec532b19          VMOV     r2,r3,d9              ;175
0002a4  ec510b10          VMOV     r0,r1,d0              ;175
0002a8  f7fffffe          BL       __aeabi_dmul
0002ac  ec410b1b          VMOV     d11,r0,r1             ;175
0002b0  6828              LDR      r0,[r5,#0]            ;175
0002b2  f7fffffe          BL       __aeabi_f2d
0002b6  ec532b1b          VMOV     r2,r3,d11             ;175
0002ba  f7fffffe          BL       __aeabi_dadd
0002be  f7fffffe          BL       __aeabi_d2f
0002c2  6178              STR      r0,[r7,#0x14]         ;175  ; CenterPx
0002c4  6a78              LDR      r0,[r7,#0x24]         ;176  ; AngleDifference
0002c6  f7fffffe          BL       __aeabi_f2d
0002ca  ec410b10          VMOV     d0,r0,r1              ;176
0002ce  f7fffffe          BL       __hardfp_cos
0002d2  ec532b19          VMOV     r2,r3,d9              ;176
0002d6  ec510b10          VMOV     r0,r1,d0              ;176
0002da  f7fffffe          BL       __aeabi_dmul
0002de  ec410b19          VMOV     d9,r0,r1              ;176
0002e2  6830              LDR      r0,[r6,#0]            ;176
0002e4  f7fffffe          BL       __aeabi_f2d
0002e8  ec532b19          VMOV     r2,r3,d9              ;176
0002ec  f7fffffe          BL       __aeabi_dadd
0002f0  f7fffffe          BL       __aeabi_d2f
0002f4  61b8              STR      r0,[r7,#0x18]         ;176  ; CenterPy
0002f6  ed940a10          VLDR     s0,[r4,#0x40]         ;178
0002fa  ee200a2a          VMUL.F32 s0,s0,s21             ;178
0002fe  ee100a10          VMOV     r0,s0                 ;178
000302  f7fffffe          BL       __aeabi_f2d
000306  ec410b19          VMOV     d9,r0,r1              ;178
00030a  6a78              LDR      r0,[r7,#0x24]         ;178  ; AngleDifference
00030c  f7fffffe          BL       __aeabi_f2d
000310  ec410b10          VMOV     d0,r0,r1              ;178
000314  f7fffffe          BL       __hardfp_cos
000318  ec532b19          VMOV     r2,r3,d9              ;178
00031c  ec510b10          VMOV     r0,r1,d0              ;178
000320  f7fffffe          BL       __aeabi_dmul
000324  ec410b19          VMOV     d9,r0,r1              ;178
000328  6978              LDR      r0,[r7,#0x14]         ;178  ; CenterPx
00032a  f7fffffe          BL       __aeabi_f2d
00032e  ec532b19          VMOV     r2,r3,d9              ;178
000332  f7fffffe          BL       __aeabi_dadd
000336  f7fffffe          BL       __aeabi_d2f
00033a  61f8              STR      r0,[r7,#0x1c]         ;178  ; IntegralX
00033c  ed940a10          VLDR     s0,[r4,#0x40]         ;179
000340  ee200a2a          VMUL.F32 s0,s0,s21             ;179
000344  ee100a10          VMOV     r0,s0                 ;179
000348  f7fffffe          BL       __aeabi_f2d
00034c  ec410b19          VMOV     d9,r0,r1              ;179
000350  6a78              LDR      r0,[r7,#0x24]         ;179  ; AngleDifference
000352  f7fffffe          BL       __aeabi_f2d
000356  ec410b10          VMOV     d0,r0,r1              ;179
00035a  f7fffffe          BL       __hardfp_sin
00035e  ec532b19          VMOV     r2,r3,d9              ;179
000362  ec510b10          VMOV     r0,r1,d0              ;179
000366  f7fffffe          BL       __aeabi_dmul
00036a  ec410b19          VMOV     d9,r0,r1              ;179
00036e  69b8              LDR      r0,[r7,#0x18]         ;179  ; CenterPy
000370  f7fffffe          BL       __aeabi_f2d
000374  ec532b19          VMOV     r2,r3,d9              ;179
000378  f7fffffe          BL       __aeabi_dadd
00037c  f7fffffe          BL       __aeabi_d2f
000380  6238              STR      r0,[r7,#0x20]         ;179  ; IntegralY
000382  6c20              LDR      r0,[r4,#0x40]         ;181
000384  f7fffffe          BL       __aeabi_f2d
000388  ec410b19          VMOV     d9,r0,r1              ;181
00038c  6a78              LDR      r0,[r7,#0x24]         ;181  ; AngleDifference
00038e  f7fffffe          BL       __aeabi_f2d
000392  ec410b10          VMOV     d0,r0,r1              ;181
000396  f7fffffe          BL       __hardfp_cos
00039a  ec532b19          VMOV     r2,r3,d9              ;181
00039e  ec510b10          VMOV     r0,r1,d0              ;181
0003a2  f7fffffe          BL       __aeabi_dmul
0003a6  ec410b19          VMOV     d9,r0,r1              ;181
0003aa  69f8              LDR      r0,[r7,#0x1c]         ;181  ; IntegralX
0003ac  f7fffffe          BL       __aeabi_f2d
0003b0  ec532b19          VMOV     r2,r3,d9              ;181
0003b4  f7fffffe          BL       __aeabi_dsub
0003b8  f7fffffe          BL       __aeabi_d2f
0003bc  62b8              STR      r0,[r7,#0x28]         ;181  ; RectificationX
0003be  6c20              LDR      r0,[r4,#0x40]         ;182
0003c0  f7fffffe          BL       __aeabi_f2d
0003c4  ec410b19          VMOV     d9,r0,r1              ;182
0003c8  6a78              LDR      r0,[r7,#0x24]         ;182  ; AngleDifference
0003ca  f7fffffe          BL       __aeabi_f2d
0003ce  ec410b10          VMOV     d0,r0,r1              ;182
0003d2  f7fffffe          BL       __hardfp_sin
0003d6  ec532b19          VMOV     r2,r3,d9              ;182
0003da  ec510b10          VMOV     r0,r1,d0              ;182
0003de  f7fffffe          BL       __aeabi_dmul
0003e2  ec410b19          VMOV     d9,r0,r1              ;182
0003e6  6a38              LDR      r0,[r7,#0x20]         ;182  ; IntegralY
0003e8  f7fffffe          BL       __aeabi_f2d
0003ec  ec532b19          VMOV     r2,r3,d9              ;182
0003f0  f7fffffe          BL       __aeabi_dsub
0003f4  f7fffffe          BL       __aeabi_d2f
0003f8  62f8              STR      r0,[r7,#0x2c]         ;182  ; RectificationY
0003fa  e0f4              B        |L9.1510|
                  |L9.1020|
                          DCD      ||.bss||+0x10
                  |L9.1024|
000400  3fc90fda          DCFS     0x3fc90fda ; 1.5707962512969971
                  |L9.1028|
000404  4096cbe4          DCFS     0x4096cbe4 ; 4.7123889923095703
                  |L9.1032|
000408  43340000          DCFS     0x43340000 ; 180
                  |L9.1036|
00040c  40490fda          DCFS     0x40490fda ; 3.1415925025939941
                  |L9.1040|
                          DCD      ||.data||
                  |L9.1044|
000414  447a0000          DCFS     0x447a0000 ; 1000
                  |L9.1048|
000418  20000000          DCFD     0x3ff147ae20000000 ; 1.0800000429153442
00041c  3ff147ae
                  |L9.1056|
                          DCD      0x41c80000
                  |L9.1060|
                          DCD      0x43a78000
                  |L9.1064|
000428  00000000          DCFS     0x00000000 ; 0
                  |L9.1068|
                          DCD      0xbd7e0000
                  |L9.1072|
                          DCD      0xbce50000
                  |L9.1076|
                          DCD      0xbc8b0000
                  |L9.1080|
000438  40000000          DCFD     0x3fc3333340000000 ; 0.15000000596046448
00043c  3fc33333
                  |L9.1088|
000440  80000000          DCFD     0x3fd8f5c280000000 ; 0.38999998569488525
000444  3fd8f5c2
                  |L9.1096|
000448  e0000000          DCFD     0x3fe6147ae0000000 ; 0.68999999761581421
00044c  3fe6147a
                  |L9.1104|
000450  ee100a10          VMOV     r0,s0                 ;186
000454  f7fffffe          BL       __aeabi_f2d
000458  ec410b10          VMOV     d0,r0,r1              ;186
00045c  f7fffffe          BL       __hardfp_sin
000460  ec532b19          VMOV     r2,r3,d9              ;186
000464  ec510b10          VMOV     r0,r1,d0              ;186
000468  f7fffffe          BL       __aeabi_dmul
00046c  ec410b1c          VMOV     d12,r0,r1             ;186
000470  6828              LDR      r0,[r5,#0]            ;186
000472  f7fffffe          BL       __aeabi_f2d
000476  ec532b1c          VMOV     r2,r3,d12             ;186
00047a  f7fffffe          BL       __aeabi_dadd
00047e  f7fffffe          BL       __aeabi_d2f
000482  61f8              STR      r0,[r7,#0x1c]         ;186  ; IntegralX
000484  6a78              LDR      r0,[r7,#0x24]         ;187  ; AngleDifference
000486  f7fffffe          BL       __aeabi_f2d
00048a  ec410b10          VMOV     d0,r0,r1              ;187
00048e  f7fffffe          BL       __hardfp_cos
000492  ec532b19          VMOV     r2,r3,d9              ;187
000496  ec510b10          VMOV     r0,r1,d0              ;187
00049a  f7fffffe          BL       __aeabi_dmul
00049e  ec410b19          VMOV     d9,r0,r1              ;187
0004a2  6830              LDR      r0,[r6,#0]            ;187
0004a4  f7fffffe          BL       __aeabi_f2d
0004a8  ec532b19          VMOV     r2,r3,d9              ;187
0004ac  f7fffffe          BL       __aeabi_dsub
0004b0  f7fffffe          BL       __aeabi_d2f
0004b4  6238              STR      r0,[r7,#0x20]         ;187  ; IntegralY
0004b6  6a78              LDR      r0,[r7,#0x24]         ;189  ; AngleDifference
0004b8  f7fffffe          BL       __aeabi_f2d
0004bc  ec410b10          VMOV     d0,r0,r1              ;189
0004c0  f7fffffe          BL       __hardfp_sin
0004c4  ec532b1b          VMOV     r2,r3,d11             ;189
0004c8  ec510b10          VMOV     r0,r1,d0              ;189
0004cc  f7fffffe          BL       __aeabi_dmul
0004d0  ec410b19          VMOV     d9,r0,r1              ;189
0004d4  6828              LDR      r0,[r5,#0]            ;189
0004d6  f7fffffe          BL       __aeabi_f2d
0004da  ec532b19          VMOV     r2,r3,d9              ;189
0004de  f7fffffe          BL       __aeabi_dsub
0004e2  f7fffffe          BL       __aeabi_d2f
0004e6  62b8              STR      r0,[r7,#0x28]         ;189  ; RectificationX
0004e8  6a78              LDR      r0,[r7,#0x24]         ;190  ; AngleDifference
0004ea  f7fffffe          BL       __aeabi_f2d
0004ee  ec410b10          VMOV     d0,r0,r1              ;190
0004f2  f7fffffe          BL       __hardfp_cos
0004f6  ec532b1b          VMOV     r2,r3,d11             ;190
0004fa  ec510b10          VMOV     r0,r1,d0              ;190
0004fe  f7fffffe          BL       __aeabi_dmul
000502  ec410b19          VMOV     d9,r0,r1              ;190
000506  6830              LDR      r0,[r6,#0]            ;190
000508  f7fffffe          BL       __aeabi_f2d
00050c  ec532b19          VMOV     r2,r3,d9              ;190
000510  f7fffffe          BL       __aeabi_dadd
000514  f7fffffe          BL       __aeabi_d2f
000518  62f8              STR      r0,[r7,#0x2c]         ;190  ; RectificationY
00051a  e064              B        |L9.1510|
                  |L9.1308|
00051c  ee100a10          VMOV     r0,s0                 ;194
000520  f7fffffe          BL       __aeabi_f2d
000524  ec410b10          VMOV     d0,r0,r1              ;194
000528  f7fffffe          BL       __hardfp_sin
00052c  ec532b1b          VMOV     r2,r3,d11             ;194
000530  ec510b10          VMOV     r0,r1,d0              ;194
000534  f7fffffe          BL       __aeabi_dmul
000538  ec410b1c          VMOV     d12,r0,r1             ;194
00053c  6828              LDR      r0,[r5,#0]            ;194
00053e  f7fffffe          BL       __aeabi_f2d
000542  ec532b1c          VMOV     r2,r3,d12             ;194
000546  f7fffffe          BL       __aeabi_dsub
00054a  f7fffffe          BL       __aeabi_d2f
00054e  61f8              STR      r0,[r7,#0x1c]         ;194  ; IntegralX
000550  6a78              LDR      r0,[r7,#0x24]         ;195  ; AngleDifference
000552  f7fffffe          BL       __aeabi_f2d
000556  ec410b10          VMOV     d0,r0,r1              ;195
00055a  f7fffffe          BL       __hardfp_cos
00055e  ec532b1b          VMOV     r2,r3,d11             ;195
000562  ec510b10          VMOV     r0,r1,d0              ;195
000566  f7fffffe          BL       __aeabi_dmul
00056a  ec410b1b          VMOV     d11,r0,r1             ;195
00056e  6830              LDR      r0,[r6,#0]            ;195
000570  f7fffffe          BL       __aeabi_f2d
000574  ec532b1b          VMOV     r2,r3,d11             ;195
000578  f7fffffe          BL       __aeabi_dadd
00057c  f7fffffe          BL       __aeabi_d2f
000580  6238              STR      r0,[r7,#0x20]         ;195  ; IntegralY
000582  6a78              LDR      r0,[r7,#0x24]         ;197  ; AngleDifference
000584  f7fffffe          BL       __aeabi_f2d
000588  ec410b10          VMOV     d0,r0,r1              ;197
00058c  f7fffffe          BL       __hardfp_sin
000590  ec532b19          VMOV     r2,r3,d9              ;197
000594  ec510b10          VMOV     r0,r1,d0              ;197
000598  f7fffffe          BL       __aeabi_dmul
00059c  ec410b1b          VMOV     d11,r0,r1             ;197
0005a0  6828              LDR      r0,[r5,#0]            ;197
0005a2  f7fffffe          BL       __aeabi_f2d
0005a6  ec532b1b          VMOV     r2,r3,d11             ;197
0005aa  f7fffffe          BL       __aeabi_dadd
0005ae  f7fffffe          BL       __aeabi_d2f
0005b2  62b8              STR      r0,[r7,#0x28]         ;197  ; RectificationX
0005b4  6a78              LDR      r0,[r7,#0x24]         ;198  ; AngleDifference
0005b6  f7fffffe          BL       __aeabi_f2d
0005ba  ec410b10          VMOV     d0,r0,r1              ;198
0005be  f7fffffe          BL       __hardfp_cos
0005c2  ec532b19          VMOV     r2,r3,d9              ;198
0005c6  ec510b10          VMOV     r0,r1,d0              ;198
0005ca  f7fffffe          BL       __aeabi_dmul
0005ce  ec410b19          VMOV     d9,r0,r1              ;198
0005d2  6830              LDR      r0,[r6,#0]            ;198
0005d4  f7fffffe          BL       __aeabi_f2d
0005d8  ec532b19          VMOV     r2,r3,d9              ;198
0005dc  f7fffffe          BL       __aeabi_dsub
0005e0  f7fffffe          BL       __aeabi_d2f
0005e4  62f8              STR      r0,[r7,#0x2c]         ;198  ; RectificationY
                  |L9.1510|
0005e6  48fe              LDR      r0,|L9.2528|
0005e8  6a40              LDR      r0,[r0,#0x24]         ;201  ; ControlOutputValue
0005ea  f7fffffe          BL       __aeabi_f2d
0005ee  e9cd011e          STRD     r0,r1,[sp,#0x78]      ;201
0005f2  ed970a08          VLDR     s0,[r7,#0x20]         ;201
0005f6  ee200a08          VMUL.F32 s0,s0,s16             ;201
0005fa  ee100a10          VMOV     r0,s0                 ;201
0005fe  f7fffffe          BL       __aeabi_f2d
000602  e9cd011c          STRD     r0,r1,[sp,#0x70]      ;201
000606  ed970a07          VLDR     s0,[r7,#0x1c]         ;201
00060a  ee200a08          VMUL.F32 s0,s0,s16             ;201
00060e  ee100a10          VMOV     r0,s0                 ;201
000612  f7fffffe          BL       __aeabi_f2d
000616  e9cd011a          STRD     r0,r1,[sp,#0x68]      ;201
00061a  ed970a0b          VLDR     s0,[r7,#0x2c]         ;201
00061e  ee200a08          VMUL.F32 s0,s0,s16             ;201
000622  ee100a10          VMOV     r0,s0                 ;201
000626  f7fffffe          BL       __aeabi_f2d
00062a  e9cd0118          STRD     r0,r1,[sp,#0x60]      ;201
00062e  ed970a0a          VLDR     s0,[r7,#0x28]         ;201
000632  ee200a08          VMUL.F32 s0,s0,s16             ;201
000636  ee100a10          VMOV     r0,s0                 ;201
00063a  f7fffffe          BL       __aeabi_f2d
00063e  e9cd0116          STRD     r0,r1,[sp,#0x58]      ;201
000642  ed970a09          VLDR     s0,[r7,#0x24]         ;201
000646  ee600a0a          VMUL.F32 s1,s0,s20             ;201
00064a  ee800aa8          VDIV.F32 s0,s1,s17             ;201
00064e  ee100a10          VMOV     r0,s0                 ;201
000652  f7fffffe          BL       __aeabi_f2d
000656  e9cd0114          STRD     r0,r1,[sp,#0x50]      ;201
00065a  f8db000c          LDR      r0,[r11,#0xc]         ;201  ; camerparameter
00065e  f7fffffe          BL       __aeabi_f2d
000662  e9cd0112          STRD     r0,r1,[sp,#0x48]      ;201
000666  ed960a00          VLDR     s0,[r6,#0]            ;201
00066a  ee200a08          VMUL.F32 s0,s0,s16             ;201
00066e  ee100a10          VMOV     r0,s0                 ;201
000672  f7fffffe          BL       __aeabi_f2d
000676  ed950a00          VLDR     s0,[r5,#0]            ;201
00067a  4681              MOV      r9,r0                 ;201
00067c  468a              MOV      r10,r1                ;201
00067e  ee200a08          VMUL.F32 s0,s0,s16             ;201
000682  ee100a10          VMOV     r0,s0                 ;201
000686  f7fffffe          BL       __aeabi_f2d
00068a  ec410b10          VMOV     d0,r0,r1              ;201
00068e  f89400ba          LDRB     r0,[r4,#0xba]         ;201
000692  9010              STR      r0,[sp,#0x40]         ;201
000694  e9dd011e          LDRD     r0,r1,[sp,#0x78]      ;201
000698  e9cd010e          STRD     r0,r1,[sp,#0x38]      ;201
00069c  e9dd011c          LDRD     r0,r1,[sp,#0x70]      ;201
0006a0  e9cd010c          STRD     r0,r1,[sp,#0x30]      ;201
0006a4  e9dd011a          LDRD     r0,r1,[sp,#0x68]      ;201
0006a8  e9cd010a          STRD     r0,r1,[sp,#0x28]      ;201
0006ac  e9dd0118          LDRD     r0,r1,[sp,#0x60]      ;201
0006b0  e9cd0108          STRD     r0,r1,[sp,#0x20]      ;201
0006b4  e9dd0116          LDRD     r0,r1,[sp,#0x58]      ;201
0006b8  e9cd0106          STRD     r0,r1,[sp,#0x18]      ;201
0006bc  e9dd0114          LDRD     r0,r1,[sp,#0x50]      ;201
0006c0  e9cd0104          STRD     r0,r1,[sp,#0x10]      ;201
0006c4  e9dd0112          LDRD     r0,r1,[sp,#0x48]      ;201
0006c8  e9cd9a00          STRD     r9,r10,[sp,#0]        ;201
0006cc  e9cd0102          STRD     r0,r1,[sp,#8]         ;201
0006d0  ec532b10          VMOV     r2,r3,d0              ;201
0006d4  49c3              LDR      r1,|L9.2532|
0006d6  2001              MOVS     r0,#1                 ;201
0006d8  f7fffffe          BL       Uart_Printf
0006dc  2100              MOVS     r1,#0                 ;205
0006de  48c2              LDR      r0,|L9.2536|
0006e0  f7fffffe          BL       TIM_SetCounter
0006e4  e1a4              B        |L9.2608|
                  |L9.1766|
0006e6  ed941a09          VLDR     s2,[r4,#0x24]         ;213
0006ea  ed871a0c          VSTR     s2,[r7,#0x30]         ;213
0006ee  f9b4000c          LDRSH    r0,[r4,#0xc]          ;214
0006f2  ee000a10          VMOV     s0,r0                 ;214
0006f6  eeb80ac0          VCVT.F32.S32 s0,s0                 ;214
0006fa  eec00a08          VDIV.F32 s1,s0,s16             ;214
0006fe  edc70a0d          VSTR     s1,[r7,#0x34]         ;214
000702  4aba              LDR      r2,|L9.2540|
000704  ed940a10          VLDR     s0,[r4,#0x40]         ;216
000708  1f11              SUBS     r1,r2,#4              ;216
00070a  1f08              SUBS     r0,r1,#4              ;216
00070c  f7fffffe          BL       agvEncoderIntegrate
000710  6c20              LDR      r0,[r4,#0x40]         ;218
000712  f7fffffe          BL       __aeabi_f2d
000716  ec410b19          VMOV     d9,r0,r1              ;218
00071a  6a78              LDR      r0,[r7,#0x24]         ;218  ; AngleDifference
00071c  f7fffffe          BL       __aeabi_f2d
000720  ec410b10          VMOV     d0,r0,r1              ;218
000724  f7fffffe          BL       __hardfp_cos
000728  ec532b19          VMOV     r2,r3,d9              ;218
00072c  ec510b10          VMOV     r0,r1,d0              ;218
000730  f7fffffe          BL       __aeabi_dmul
000734  ec410b19          VMOV     d9,r0,r1              ;218
000738  69f8              LDR      r0,[r7,#0x1c]         ;218  ; IntegralX
00073a  f7fffffe          BL       __aeabi_f2d
00073e  ec532b19          VMOV     r2,r3,d9              ;218
000742  f7fffffe          BL       __aeabi_dadd
000746  f7fffffe          BL       __aeabi_d2f
00074a  62b8              STR      r0,[r7,#0x28]         ;218  ; RectificationX
00074c  6c20              LDR      r0,[r4,#0x40]         ;219
00074e  f7fffffe          BL       __aeabi_f2d
000752  ec410b19          VMOV     d9,r0,r1              ;219
000756  6a78              LDR      r0,[r7,#0x24]         ;219  ; AngleDifference
000758  f7fffffe          BL       __aeabi_f2d
00075c  ec410b10          VMOV     d0,r0,r1              ;219
000760  f7fffffe          BL       __hardfp_sin
000764  ec532b19          VMOV     r2,r3,d9              ;219
000768  ec510b10          VMOV     r0,r1,d0              ;219
00076c  f7fffffe          BL       __aeabi_dmul
000770  ec410b19          VMOV     d9,r0,r1              ;219
000774  6a38              LDR      r0,[r7,#0x20]         ;219  ; IntegralY
000776  f7fffffe          BL       __aeabi_f2d
00077a  ec532b19          VMOV     r2,r3,d9              ;219
00077e  f7fffffe          BL       __aeabi_dadd
000782  f7fffffe          BL       __aeabi_d2f
000786  62f8              STR      r0,[r7,#0x2c]         ;219  ; RectificationY
                  |L9.1928|
000788  e0ec              B        |L9.2404|
                  |L9.1930|
00078a  ed941a0a          VLDR     s2,[r4,#0x28]         ;223
00078e  ed871a0c          VSTR     s2,[r7,#0x30]         ;223
000792  f9b4000e          LDRSH    r0,[r4,#0xe]          ;224
000796  ee000a10          VMOV     s0,r0                 ;224
00079a  eeb80ac0          VCVT.F32.S32 s0,s0                 ;224
00079e  eec00a08          VDIV.F32 s1,s0,s16             ;224
0007a2  edc70a0d          VSTR     s1,[r7,#0x34]         ;224
0007a6  4a91              LDR      r2,|L9.2540|
0007a8  ed940a10          VLDR     s0,[r4,#0x40]         ;226
0007ac  1f11              SUBS     r1,r2,#4              ;226
0007ae  1f08              SUBS     r0,r1,#4              ;226
0007b0  f7fffffe          BL       agvEncoderIntegrate
0007b4  6c20              LDR      r0,[r4,#0x40]         ;228
0007b6  f7fffffe          BL       __aeabi_f2d
0007ba  ec410b19          VMOV     d9,r0,r1              ;228
0007be  6a78              LDR      r0,[r7,#0x24]         ;228  ; AngleDifference
0007c0  f7fffffe          BL       __aeabi_f2d
0007c4  ec410b10          VMOV     d0,r0,r1              ;228
0007c8  f7fffffe          BL       __hardfp_cos
0007cc  ec532b19          VMOV     r2,r3,d9              ;228
0007d0  ec510b10          VMOV     r0,r1,d0              ;228
0007d4  f7fffffe          BL       __aeabi_dmul
0007d8  ec410b19          VMOV     d9,r0,r1              ;228
0007dc  69f8              LDR      r0,[r7,#0x1c]         ;228  ; IntegralX
0007de  f7fffffe          BL       __aeabi_f2d
0007e2  ec532b19          VMOV     r2,r3,d9              ;228
0007e6  f7fffffe          BL       __aeabi_dsub
0007ea  f7fffffe          BL       __aeabi_d2f
0007ee  62b8              STR      r0,[r7,#0x28]         ;228  ; RectificationX
0007f0  6c20              LDR      r0,[r4,#0x40]         ;229
0007f2  f7fffffe          BL       __aeabi_f2d
0007f6  ec410b19          VMOV     d9,r0,r1              ;229
0007fa  6a78              LDR      r0,[r7,#0x24]         ;229  ; AngleDifference
0007fc  f7fffffe          BL       __aeabi_f2d
000800  ec410b10          VMOV     d0,r0,r1              ;229
000804  f7fffffe          BL       __hardfp_sin
000808  ec532b19          VMOV     r2,r3,d9              ;229
00080c  ec510b10          VMOV     r0,r1,d0              ;229
000810  f7fffffe          BL       __aeabi_dmul
000814  ec410b19          VMOV     d9,r0,r1              ;229
000818  6a38              LDR      r0,[r7,#0x20]         ;229  ; IntegralY
00081a  f7fffffe          BL       __aeabi_f2d
00081e  ec532b19          VMOV     r2,r3,d9              ;229
000822  f7fffffe          BL       __aeabi_dsub
000826  f7fffffe          BL       __aeabi_d2f
00082a  62f8              STR      r0,[r7,#0x2c]         ;229  ; RectificationY
00082c  e09a              B        |L9.2404|
                  |L9.2094|
00082e  ed941a0b          VLDR     s2,[r4,#0x2c]         ;233
000832  ed871a0c          VSTR     s2,[r7,#0x30]         ;233
000836  f9b40010          LDRSH    r0,[r4,#0x10]         ;234
00083a  ee000a90          VMOV     s1,r0                 ;234
00083e  eeb82ae0          VCVT.F32.S32 s4,s1                 ;234
000842  eec20a08          VDIV.F32 s1,s4,s16             ;234
000846  edc70a0d          VSTR     s1,[r7,#0x34]         ;234
00084a  ee300a21          VADD.F32 s0,s0,s3              ;236
00084e  ed870a0e          VSTR     s0,[r7,#0x38]         ;236
000852  4a66              LDR      r2,|L9.2540|
000854  3214              ADDS     r2,r2,#0x14           ;237
000856  f1a20118          SUB      r1,r2,#0x18           ;237
00085a  1f08              SUBS     r0,r1,#4              ;237
00085c  ed9f0a64          VLDR     s0,|L9.2544|
000860  f7fffffe          BL       agvEncoderIntegrate
000864  6a78              LDR      r0,[r7,#0x24]         ;239  ; AngleDifference
000866  f7fffffe          BL       __aeabi_f2d
00086a  ec410b10          VMOV     d0,r0,r1              ;239
00086e  f7fffffe          BL       __hardfp_sin
000872  ec532b1b          VMOV     r2,r3,d11             ;239
000876  ec510b10          VMOV     r0,r1,d0              ;239
00087a  f7fffffe          BL       __aeabi_dmul
00087e  ec410b19          VMOV     d9,r0,r1              ;239
000882  69f8              LDR      r0,[r7,#0x1c]         ;239  ; IntegralX
000884  f7fffffe          BL       __aeabi_f2d
000888  ec532b19          VMOV     r2,r3,d9              ;239
00088c  f7fffffe          BL       __aeabi_dsub
000890  f7fffffe          BL       __aeabi_d2f
000894  62b8              STR      r0,[r7,#0x28]         ;239  ; RectificationX
000896  6a78              LDR      r0,[r7,#0x24]         ;240  ; AngleDifference
000898  f7fffffe          BL       __aeabi_f2d
00089c  ec410b10          VMOV     d0,r0,r1              ;240
0008a0  f7fffffe          BL       __hardfp_cos
0008a4  ec532b1b          VMOV     r2,r3,d11             ;240
0008a8  ec510b10          VMOV     r0,r1,d0              ;240
0008ac  f7fffffe          BL       __aeabi_dmul
0008b0  ec410b19          VMOV     d9,r0,r1              ;240
0008b4  6a38              LDR      r0,[r7,#0x20]         ;240  ; IntegralY
0008b6  f7fffffe          BL       __aeabi_f2d
0008ba  ec532b19          VMOV     r2,r3,d9              ;240
0008be  f7fffffe          BL       __aeabi_dadd
0008c2  f7fffffe          BL       __aeabi_d2f
0008c6  62f8              STR      r0,[r7,#0x2c]         ;240  ; RectificationY
0008c8  e04c              B        |L9.2404|
                  |L9.2250|
;;;243    		{
;;;244    			RequstAngle = ControlInputValue->AgvFourthRudderWheelAngle;
0008ca  ed941a0c          VLDR     s2,[r4,#0x30]
0008ce  ed871a0c          VSTR     s2,[r7,#0x30]
;;;245    			RequstSpeed = (float)ControlInputValue->AgvActualFourthSpeed / 1000.0f;
0008d2  f9b40012          LDRSH    r0,[r4,#0x12]
0008d6  ee000a90          VMOV     s1,r0
0008da  eef81ae0          VCVT.F32.S32 s3,s1
0008de  eec10a88          VDIV.F32 s1,s3,s16
0008e2  edc70a0d          VSTR     s1,[r7,#0x34]
;;;246    			
;;;247    			Angle = AngleDifference + 3.0f * PI / 2.0f;
0008e6  ee300a02          VADD.F32 s0,s0,s4
0008ea  ed870a0e          VSTR     s0,[r7,#0x38]
;;;248    			agvEncoderIntegrate(PINGYI_WHEEL_BASE_BACK,&IntegralX,&IntegralY,&Angle,RequstSpeed,RequstAngle);
0008ee  4a3f              LDR      r2,|L9.2540|
0008f0  3214              ADDS     r2,r2,#0x14
0008f2  f1a20118          SUB      r1,r2,#0x18
0008f6  1f08              SUBS     r0,r1,#4
0008f8  ed9f0a3e          VLDR     s0,|L9.2548|
0008fc  f7fffffe          BL       agvEncoderIntegrate
;;;249    
;;;250    			RectificationX = IntegralX + sin(AngleDifference) * PINGYI_WHEEL_BASE;
000900  6a78              LDR      r0,[r7,#0x24]  ; AngleDifference
000902  f7fffffe          BL       __aeabi_f2d
000906  ec410b10          VMOV     d0,r0,r1
00090a  f7fffffe          BL       __hardfp_sin
00090e  ec532b1b          VMOV     r2,r3,d11
000912  ec510b10          VMOV     r0,r1,d0
000916  f7fffffe          BL       __aeabi_dmul
00091a  ec410b19          VMOV     d9,r0,r1
00091e  69f8              LDR      r0,[r7,#0x1c]  ; IntegralX
000920  f7fffffe          BL       __aeabi_f2d
000924  ec532b19          VMOV     r2,r3,d9
000928  f7fffffe          BL       __aeabi_dadd
00092c  f7fffffe          BL       __aeabi_d2f
000930  62b8              STR      r0,[r7,#0x28]  ; RectificationX
;;;251    			RectificationY = IntegralY - cos(AngleDifference) * PINGYI_WHEEL_BASE;	
000932  6a78              LDR      r0,[r7,#0x24]  ; AngleDifference
000934  f7fffffe          BL       __aeabi_f2d
000938  ec410b10          VMOV     d0,r0,r1
00093c  f7fffffe          BL       __hardfp_cos
000940  ec532b1b          VMOV     r2,r3,d11
000944  ec510b10          VMOV     r0,r1,d0
000948  f7fffffe          BL       __aeabi_dmul
00094c  ec410b19          VMOV     d9,r0,r1
000950  6a38              LDR      r0,[r7,#0x20]  ; IntegralY
000952  f7fffffe          BL       __aeabi_f2d
000956  ec532b19          VMOV     r2,r3,d9
00095a  f7fffffe          BL       __aeabi_dsub
00095e  f7fffffe          BL       __aeabi_d2f
000962  62f8              STR      r0,[r7,#0x2c]  ; RectificationY
                  |L9.2404|
;;;252    		}
;;;253    		
;;;254    
;;;255    		Uart_Printf(COM1,"积分数据x=%.1f	y=%.1f	w=%f	%d	speed=%.1f	angle=%f	dir=%d	offset=%.1f\r\n",
000964  481e              LDR      r0,|L9.2528|
000966  6a40              LDR      r0,[r0,#0x24]  ; ControlOutputValue
000968  f7fffffe          BL       __aeabi_f2d
00096c  ed970a0c          VLDR     s0,[r7,#0x30]
000970  4605              MOV      r5,r0
000972  460e              MOV      r6,r1
000974  ee600a0a          VMUL.F32 s1,s0,s20
000978  ee800aa8          VDIV.F32 s0,s1,s17
00097c  ee100a10          VMOV     r0,s0
000980  f7fffffe          BL       __aeabi_f2d
000984  ed970a0d          VLDR     s0,[r7,#0x34]
000988  4681              MOV      r9,r0
00098a  468a              MOV      r10,r1
00098c  ee200a08          VMUL.F32 s0,s0,s16
000990  ee100a10          VMOV     r0,s0
000994  f7fffffe          BL       __aeabi_f2d
000998  e9cd011e          STRD     r0,r1,[sp,#0x78]
00099c  ed970a0e          VLDR     s0,[r7,#0x38]
0009a0  ee600a0a          VMUL.F32 s1,s0,s20
0009a4  ee800aa8          VDIV.F32 s0,s1,s17
0009a8  ee100a10          VMOV     r0,s0
0009ac  f7fffffe          BL       __aeabi_f2d
0009b0  e9cd011c          STRD     r0,r1,[sp,#0x70]
0009b4  ed970a08          VLDR     s0,[r7,#0x20]
0009b8  ee200a08          VMUL.F32 s0,s0,s16
0009bc  ee100a10          VMOV     r0,s0
0009c0  f7fffffe          BL       __aeabi_f2d
0009c4  e9cd011a          STRD     r0,r1,[sp,#0x68]
0009c8  ed970a07          VLDR     s0,[r7,#0x1c]
0009cc  ee200a08          VMUL.F32 s0,s0,s16
0009d0  ee100a10          VMOV     r0,s0
0009d4  f7fffffe          BL       __aeabi_f2d
0009d8  ec410b10          VMOV     d0,r0,r1
0009dc  e00c              B        |L9.2552|
0009de  0000              DCW      0x0000
                  |L9.2528|
                          DCD      ControlOutputValue
                  |L9.2532|
                          DCD      ||.conststring||
                  |L9.2536|
                          DCD      0x40000400
                  |L9.2540|
                          DCD      ||.data||+0x24
                  |L9.2544|
0009f0  3f30a3d7          DCFS     0x3f30a3d7 ; 0.68999999761581421
                  |L9.2548|
0009f4  3ec7ae14          DCFS     0x3ec7ae14 ; 0.38999998569488525
                  |L9.2552|
0009f8  e9cd560c          STRD     r5,r6,[sp,#0x30]
0009fc  f89400ba          LDRB     r0,[r4,#0xba]
000a00  900a              STR      r0,[sp,#0x28]
000a02  e9dd011e          LDRD     r0,r1,[sp,#0x78]
000a06  e9cd9a08          STRD     r9,r10,[sp,#0x20]
000a0a  e9cd0106          STRD     r0,r1,[sp,#0x18]
000a0e  f89b0000          LDRB     r0,[r11,#0]  ; camerparameter
000a12  9004              STR      r0,[sp,#0x10]
000a14  e9dd011c          LDRD     r0,r1,[sp,#0x70]
000a18  e9cd0102          STRD     r0,r1,[sp,#8]
000a1c  e9dd011a          LDRD     r0,r1,[sp,#0x68]
000a20  e9cd0100          STRD     r0,r1,[sp,#0]
000a24  ec532b10          VMOV     r2,r3,d0
000a28  4926              LDR      r1,|L9.2756|
000a2a  2001              MOVS     r0,#1
000a2c  f7fffffe          BL       Uart_Printf
                  |L9.2608|
;;;256    		IntegralX*1000.0f,IntegralY*1000.0f,Angle*180.0f/PI,camerparameter.TwoDCdirection,
;;;257    		RequstSpeed*1000,RequstAngle*180.0f/PI,ControlInputValue->Direction,ControlOutputValue.AgvOffset);
;;;258    	}
;;;259    
;;;260    	if(*Theta >= 2*PI)*Theta-= 2.0f*PI;
000a30  ed980a00          VLDR     s0,[r8,#0]
000a34  4924              LDR      r1,|L9.2760|
000a36  ee100a10          VMOV     r0,s0
000a3a  eddf0a24          VLDR     s1,|L9.2764|
000a3e  4288              CMP      r0,r1
000a40  db03              BLT      |L9.2634|
000a42  ee300a60          VSUB.F32 s0,s0,s1
000a46  ed880a00          VSTR     s0,[r8,#0]
                  |L9.2634|
;;;261    	if(*Theta < 0)*Theta+= 2.0f*PI;	
000a4a  ed980a00          VLDR     s0,[r8,#0]
000a4e  eeb50ac0          VCMPE.F32 s0,#0.0
000a52  eef1fa10          VMRS     APSR_nzcv,FPSCR
000a56  d203              BCS      |L9.2656|
000a58  ee300a20          VADD.F32 s0,s0,s1
000a5c  ed880a00          VSTR     s0,[r8,#0]
                  |L9.2656|
;;;262    	
;;;263    	if(ControlInputValue->Direction == 1)ControlOutputValue.AgvOffset = (RectificationY*1000.0f - 150.0f);//前进
000a60  f89400ba          LDRB     r0,[r4,#0xba]
000a64  ed9f0a1a          VLDR     s0,|L9.2768|
000a68  2801              CMP      r0,#1
000a6a  d011              BEQ      |L9.2704|
;;;264    	else if(ControlInputValue->Direction == 2)ControlOutputValue.AgvOffset = -(RectificationY*1000.0f - 150.0f);	//后退
000a6c  2802              CMP      r0,#2
000a6e  d017              BEQ      |L9.2720|
;;;265    	else if(ControlInputValue->Direction == 3)ControlOutputValue.AgvOffset = -(RectificationX*1000.0f);//前进//平移前进
000a70  2803              CMP      r0,#3
000a72  d01d              BEQ      |L9.2736|
;;;266    	else if(ControlInputValue->Direction == 4)ControlOutputValue.AgvOffset = (RectificationX*1000.0f);//前进//平移后退	
000a74  2804              CMP      r0,#4
000a76  d106              BNE      |L9.2694|
000a78  ed970a0a          VLDR     s0,[r7,#0x28]
000a7c  4815              LDR      r0,|L9.2772|
000a7e  ee200a08          VMUL.F32 s0,s0,s16
000a82  ed800a09          VSTR     s0,[r0,#0x24]
                  |L9.2694|
;;;267    }
000a86  b021              ADD      sp,sp,#0x84
000a88  ecbd8b0a          VPOP     {d8-d12}
000a8c  e8bd8ff0          POP      {r4-r11,pc}
                  |L9.2704|
000a90  edd70a0b          VLDR     s1,[r7,#0x2c]         ;263
000a94  480f              LDR      r0,|L9.2772|
000a96  ee100a88          VNMLS.F32 s0,s1,s16             ;263
000a9a  ed800a09          VSTR     s0,[r0,#0x24]         ;263
000a9e  e7f2              B        |L9.2694|
                  |L9.2720|
000aa0  edd70a0b          VLDR     s1,[r7,#0x2c]         ;264
000aa4  480b              LDR      r0,|L9.2772|
000aa6  ee000ac8          VMLS.F32 s0,s1,s16             ;264
000aaa  ed800a09          VSTR     s0,[r0,#0x24]         ;264
000aae  e7ea              B        |L9.2694|
                  |L9.2736|
000ab0  ed970a0a          VLDR     s0,[r7,#0x28]         ;265
000ab4  eddf0a08          VLDR     s1,|L9.2776|
000ab8  4806              LDR      r0,|L9.2772|
000aba  ee200a20          VMUL.F32 s0,s0,s1              ;265
000abe  ed800a09          VSTR     s0,[r0,#0x24]         ;265
000ac2  e7e0              B        |L9.2694|
;;;268    
                          ENDP

                  |L9.2756|
                          DCD      ||.conststring||+0x5c
                  |L9.2760|
                          DCD      0x40c90fda
                  |L9.2764|
000acc  40c90fda          DCFS     0x40c90fda ; 6.2831850051879883
                  |L9.2768|
000ad0  43160000          DCFS     0x43160000 ; 150
                  |L9.2772|
                          DCD      ControlOutputValue
                  |L9.2776|
000ad8  c47a0000          DCFS     0xc47a0000 ; -1000

                          AREA ||i.agvLineControlFun||, CODE, READONLY, ALIGN=1

                  agvLineControlFun PROC
;;;269    //直线控制算法
;;;270    float agvLineControlFun(float offset)
000000  4770              BX       lr
;;;271    {
;;;272    
;;;273    
;;;274    }
;;;275    
                          ENDP


                          AREA ||i.agvThreeWheelControlFun||, CODE, READONLY, ALIGN=2

                  agvThreeWheelControlFun PROC
;;;374    
;;;375    void agvThreeWheelControlFun(agvControlInputValue *ControlInputValue,agvControlOutputValue *ControlOutputValue)
000000  b510              PUSH     {r4,lr}
;;;376    {
000002  4604              MOV      r4,r0
;;;377    	static float Xbias = 0.0f,Ybias = 0.0f,Theata = 0.0f;
;;;378    	
;;;379    	agvIntegratedLaserAndIntegralData(&Xbias,&Ybias,&Theata,ControlInputValue);
000004  4a08              LDR      r2,|L11.40|
000006  4623              MOV      r3,r4
000008  1f11              SUBS     r1,r2,#4
00000a  1f08              SUBS     r0,r1,#4
00000c  f7fffffe          BL       agvIntegratedLaserAndIntegralData
;;;380    	
;;;381    	HandlePlcData.SendPlcData.CurrentLandMark = camerparameter.id;
000010  4806              LDR      r0,|L11.44|
000012  4907              LDR      r1,|L11.48|
000014  8840              LDRH     r0,[r0,#2]  ; camerparameter
000016  f8a100f2          STRH     r0,[r1,#0xf2]
;;;382    	
;;;383    	if(ControlInputValue->agvControlStatus == 0)//手动
00001a  f89400b4          LDRB     r0,[r4,#0xb4]
00001e  2800              CMP      r0,#0
000020  d001              BEQ      |L11.38|
;;;384    	{
;;;385    		
;;;386    		return;
;;;387    	}
;;;388    	
;;;389    	if(ControlInputValue->Direction == 1)//前进
000022  f89400ba          LDRB     r0,[r4,#0xba]
                  |L11.38|
;;;390    	{
;;;391    	
;;;392    	}
;;;393    	else if(ControlInputValue->Direction == 2)	//后退
;;;394    	{
;;;395    	
;;;396    	}
;;;397    	else if(ControlInputValue->Direction == 3)//平移前进
;;;398    	{
;;;399    	
;;;400    	}
;;;401    	else if(ControlInputValue->Direction == 4)//平移后退
;;;402    	{
;;;403    	
;;;404    	}
;;;405    }
000026  bd10              POP      {r4,pc}
;;;406    
                          ENDP

                  |L11.40|
                          DCD      ||.data||+0x58
                  |L11.44|
                          DCD      ||.bss||+0x10
                  |L11.48|
                          DCD      HandlePlcData

                          AREA ||i.agvTwoDimensionalCodeControlAlgorithm||, CODE, READONLY, ALIGN=1

                  agvTwoDimensionalCodeControlAlgorithm PROC
;;;408    
;;;409    void agvTwoDimensionalCodeControlAlgorithm(agvCalculationTurningSteering *CalculationTurningSteering,agvControlInputValue *ControlInputValue,agvControlOutputValue *ControlOutputValue)
000000  4603              MOV      r3,r0
;;;410    {
000002  b430              PUSH     {r4,r5}
000004  4608              MOV      r0,r1
000006  4611              MOV      r1,r2
;;;411    	switch(ControlInputValue->TurnningMode)
000008  f890203c          LDRB     r2,[r0,#0x3c]
00000c  2a05              CMP      r2,#5
00000e  d20d              BCS      |L12.44|
000010  e8dff002          TBB      [pc,r2]
000014  030c0c0c          DCB      0x03,0x0c,0x0c,0x0c
000018  0900              DCB      0x09,0x00
;;;412    	{
;;;413    		case 0:
;;;414    			QecodeControlFunction(CalculationTurningSteering,ControlInputValue,ControlOutputValue);
00001a  460a              MOV      r2,r1
00001c  4601              MOV      r1,r0
00001e  bc30              POP      {r4,r5}
000020  4618              MOV      r0,r3
000022  f7ffbffe          B.W      QecodeControlFunction
;;;415    			
;;;416    			break;
;;;417    		case 1:
;;;418    			break;
;;;419    		case 2:
;;;420    			break;
;;;421    		case 3:
;;;422    			break;
;;;423    		case 4://三舵轮、并且带全向行走
;;;424    			agvThreeWheelControlFun(ControlInputValue,ControlOutputValue);
000026  bc30              POP      {r4,r5}
000028  f7ffbffe          B.W      agvThreeWheelControlFun
                  |L12.44|
;;;425    		
;;;426    			break;
;;;427    		default:
;;;428    			break;
;;;429    	}
;;;430    
;;;431    }
00002c  bc30              POP      {r4,r5}
00002e  4770              BX       lr
;;;432    
                          ENDP


                          AREA ||.bss||, DATA, NOINIT, ALIGN=2

                  Tagdata
                          %        16
                  camerparameter
                          %        32

                          AREA ||.conststring||, DATA, READONLY, MERGE=1, STRINGS, ALIGN=2

000000  b6feceac          DCB      182,254,206,172,194,235,202,253,190,221,"=%.1f\ty=%.1f\t"
000004  c2ebcafd
000008  bedd3d25
00000c  2e316609
000010  793d252e
000014  316609  
000017  773d2566          DCB      "w=%f\t",188,208,189,199,"=%f\t",179,181,205,183,"x=%.1f"
00001b  09bcd0bd
00001f  c73d2566
000023  09b3b5cd
000027  b7783d25
00002b  2e3166  
00002e  09793d25          DCB      "\ty=%.1f\t",187,253,183,214,181,227,"x=%.1f\ty=%.1f\tof"
000032  2e316609
000036  bbfdb7d6
00003a  b5e3783d
00003e  252e3166
000042  09793d25
000046  2e316609
00004a  6f66    
00004c  66736574          DCB      "fset=%.1f\tD%d\r\n",0
000050  3d252e31
000054  66094425
000058  640d0a00
00005c  bbfdb7d6          DCB      187,253,183,214,202,253,190,221,"x=%.1f\ty=%.1f\tw=%f\t%"
000060  cafdbedd
000064  783d252e
000068  31660979
00006c  3d252e31
000070  6609773d
000074  25660925
000078  64097370          DCB      "d\tspeed=%.1f\tangle=%f\tdir=%d\toffset=%.1f\r\n",0
00007c  6565643d
000080  252e3166
000084  09616e67
000088  6c653d25
00008c  66096469
000090  723d2564
000094  096f6666
000098  7365743d
00009c  252e3166
0000a0  0d0a00  

                          AREA ||.data||, DATA, ALIGN=2

                  readposandstatedata
000000  c837              DCB      0xc8,0x37
                  selectpostag
000002  e41b              DCB      0xe4,0x1b
                  i
                          DCD      0x00000000
                  CurDis
                          DCD      0x00000000
                  LastDis
                          DCD      0x00000000
                  ||nn||
                          DCD      0x00000000
                  CenterPx
000014  00000000          DCFS     0x00000000 ; 0
                  CenterPy
000018  00000000          DCFS     0x00000000 ; 0
                  IntegralX
00001c  00000000          DCFS     0x00000000 ; 0
                  IntegralY
000020  00000000          DCFS     0x00000000 ; 0
                  AngleDifference
000024  00000000          DCFS     0x00000000 ; 0
                  RectificationX
000028  00000000          DCFS     0x00000000 ; 0
                  RectificationY
00002c  43160000          DCFS     0x43160000 ; 150
                  RequstAngle
000030  00000000          DCFS     0x00000000 ; 0
                  RequstSpeed
000034  00000000          DCFS     0x00000000 ; 0
                  Angle
000038  00000000          DCFS     0x00000000 ; 0
                  AngleMigration
00003c  00000000          DCFS     0x00000000 ; 0
                  OutPutData
000040  00000000          DCFS     0x00000000 ; 0
                  Xbias
000044  00000000          DCFS     0x00000000 ; 0
                  Ybias
000048  00000000          DCFS     0x00000000 ; 0
                  Theata
00004c  00000000          DCFS     0x00000000 ; 0
                  |symbol_number.64|
000050  00000000          DCFS     0x00000000 ; 0
                  |symbol_number.65|
000054  00000000          DCFS     0x00000000 ; 0
                  |symbol_number.66|
000058  00000000          DCFS     0x00000000 ; 0

;*** Start embedded assembler ***

#line 1 "..\\..\\User\\LaserMotionCtr\\agv_qrcode.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___12_agv_qrcode_c_ff21ee86____REV16|
#line 129 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|__asm___12_agv_qrcode_c_ff21ee86____REV16| PROC
#line 130

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___12_agv_qrcode_c_ff21ee86____REVSH|
#line 144
|__asm___12_agv_qrcode_c_ff21ee86____REVSH| PROC
#line 145

 revsh r0, r0
 bx lr
	ENDP
	AREA ||.rrx_text||, CODE
	THUMB
	EXPORT |__asm___12_agv_qrcode_c_ff21ee86____RRX|
#line 300
|__asm___12_agv_qrcode_c_ff21ee86____RRX| PROC
#line 301

 rrx r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***