mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-06-26 08:22:05 +08:00
Compare commits
1029 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9f83a79b4b | |||
| d7cdacb5c8 | |||
| c7ef64f60b | |||
| 846461f699 | |||
| 94518f7761 | |||
| 379fed7f58 | |||
| b0c0357eb0 | |||
| 9d5db97d1c | |||
| cccafa7b64 | |||
| 8317227583 | |||
| 6447f53d58 | |||
| 695d5746fe | |||
| 43f2402e90 | |||
| 2862f3006c | |||
| 27c2af7e42 | |||
| e5d748d15e | |||
| 6a6b1509e9 | |||
| 8abdb9f9c5 | |||
| 09be37c457 | |||
| b7574d3a55 | |||
| c62d0f63f2 | |||
| f798009e3d | |||
| fd4a8b2f9f | |||
| 36282d9752 | |||
| 37134796c0 | |||
| 9bfdab095f | |||
| 0cf43202d7 | |||
| 9b0db32efc | |||
| cc3dd034ee | |||
| 88a2a7e175 | |||
| 7fc6536940 | |||
| 9ba4721162 | |||
| d2a0d11c59 | |||
| b061cbef90 | |||
| df67387ca9 | |||
| 9a1e4ff917 | |||
| 5bf610ddf2 | |||
| ad2e92f057 | |||
| b54a0ccb95 | |||
| 29ab7b80d8 | |||
| f559477ab1 | |||
| 31fc2a50fb | |||
| 9c7e80ebe2 | |||
| 65d57ff9e5 | |||
| 27f8443b9e | |||
| 2f28bdad81 | |||
| ce44aa7696 | |||
| bdea69d89b | |||
| abd3c6b5dc | |||
| f700370a8e | |||
| f462f640f8 | |||
| 75618d6ce7 | |||
| c25b3def82 | |||
| 1c75d7fb14 | |||
| faf9a36067 | |||
| 50eae23440 | |||
| 14fc0424b8 | |||
| 7998cf08d3 | |||
| 0c0ba60ce4 | |||
| 926e5f397f | |||
| 1d328da675 | |||
| 39ee5ba5ad | |||
| 7983bbd3bd | |||
| dc15b9cae9 | |||
| 7750dc7784 | |||
| ad40d8f66d | |||
| 4f0fb2ce5d | |||
| 7500d48861 | |||
| 4ed8a032d4 | |||
| a49dc4be02 | |||
| 3b2e7c208a | |||
| c8ccddcb8d | |||
| eaff7b4bb4 | |||
| 1ceb7ddf0e | |||
| 3c0be0b4cd | |||
| 5ed475b25e | |||
| 64dbc96480 | |||
| 58ca42e7ef | |||
| 5ede6a346a | |||
| 5cacbbab13 | |||
| 043e83a160 | |||
| a08e586783 | |||
| f85f3b36bc | |||
| 5af4d3aeed | |||
| 06f8fd53ec | |||
| d9877e694c | |||
| d603d5c9b8 | |||
| 8ad2640c11 | |||
| 2b721f7fc8 | |||
| 2a29774272 | |||
| 4f41bfcd9e | |||
| 5219d3c023 | |||
| 7c0d01a96c | |||
| ee752d5669 | |||
| 88af74a3da | |||
| 2393c2264c | |||
| 44bab52730 | |||
| 4ad87130f9 | |||
| c270f64a07 | |||
| f17f264c1f | |||
| 8ca719e75a | |||
| e36a14f1de | |||
| 6e8ff99781 | |||
| 9e26bd8a89 | |||
| 0df2160823 | |||
| 1ad2ce8b2a | |||
| 61663c77ff | |||
| e5431eab5d | |||
| 09e9f25c29 | |||
| 344dfa9bca | |||
| d3b7d741af | |||
| ce54902f69 | |||
| 4fd5034aff | |||
| 4b962fef63 | |||
| c61ee95eec | |||
| b5fb96455d | |||
| e8c31261c8 | |||
| 608c8e46fd | |||
| 0f8cf424ce | |||
| 9e20d79455 | |||
| da1161d7d8 | |||
| 62d14b8122 | |||
| 1608739cf7 | |||
| 3db7389eb8 | |||
| 7c8f42c07e | |||
| 84fc30a84b | |||
| fbbf03bb73 | |||
| f096912cb5 | |||
| 270702f54c | |||
| 601d0b8f1e | |||
| 5416f2008e | |||
| 4d8444a4aa | |||
| 4730da4911 | |||
| 24ed87e568 | |||
| 3c658f93c0 | |||
| f82539ddd4 | |||
| cdfab1efeb | |||
| d8501656f0 | |||
| 5eea31af91 | |||
| 3caa71ef1b | |||
| ef33ef60a8 | |||
| d9ac0507a3 | |||
| 3cd0270878 | |||
| 1c03ea3b39 | |||
| 7a8f3e1df3 | |||
| 2ea17f00cf | |||
| 3adf752f1a | |||
| 8803683a0c | |||
| c37dd3ec37 | |||
| 30f707cf7a | |||
| 77aaead924 | |||
| 8e329e1e3a | |||
| 7ad5f4292e | |||
| a7bfa413ae | |||
| b773d54460 | |||
| 7f3f07e04e | |||
| a1abe13da0 | |||
| e55fd7ae4b | |||
| d855a70690 | |||
| 400889ce65 | |||
| 2b706c4335 | |||
| 62cbbb2845 | |||
| fa5e8de64d | |||
| 6b103dac74 | |||
| 07b8c4b0a0 | |||
| 0f61fe3a44 | |||
| 3efa000221 | |||
| 83c6eca4a1 | |||
| d130c6c9a2 | |||
| 9798b12384 | |||
| b67715b480 | |||
| eec9bb71c4 | |||
| 703f51ed56 | |||
| a78baac2e3 | |||
| 96bdc0a043 | |||
| d895bd6813 | |||
| 55fb019272 | |||
| a8da7e753c | |||
| 1305ea2483 | |||
| 050994f673 | |||
| 79bd9d42eb | |||
| fc3a9adf29 | |||
| 7d256852c3 | |||
| 6a95cb2b06 | |||
| 74a2d08430 | |||
| da9fddeaae | |||
| 860fe53c35 | |||
| a5fe383928 | |||
| 6c87ac182c | |||
| f7c925871a | |||
| 8f77246fcb | |||
| ee3aedaaea | |||
| 73cc0f1283 | |||
| 935191e724 | |||
| bfef97c7b8 | |||
| 3e4f64cc78 | |||
| 59440ba5b7 | |||
| a57a05b99d | |||
| a944f7d9ed | |||
| c9d8833dfe | |||
| 1d2ea64938 | |||
| 73d6d1537a | |||
| 09162309d1 | |||
| d927d61f85 | |||
| fc7bb4ea1f | |||
| 185887db37 | |||
| 863d0e1c2c | |||
| 2c4d7a2cd4 | |||
| e22b687197 | |||
| ea472e00c3 | |||
| 9f33903798 | |||
| 8cb4ff08c7 | |||
| 9c220ebf44 | |||
| 4197340812 | |||
| 1880e7ebdc | |||
| b9a32d6f61 | |||
| ca26fe3087 | |||
| d189446b68 | |||
| bb273acc28 | |||
| 13280acb12 | |||
| 8d5ef40e8b | |||
| 246e687ef9 | |||
| ced9202c46 | |||
| 11555e198e | |||
| a5ebac6ede | |||
| d5aba9035b | |||
| aa09e16a60 | |||
| 3df522b4d1 | |||
| 987ed000b4 | |||
| eeaa355c77 | |||
| a6273f1a36 | |||
| bbc3507854 | |||
| b797a10b6e | |||
| 068a481769 | |||
| 9520c20c6b | |||
| 508dc5742c | |||
| fe2a3caf51 | |||
| 364aa99ccf | |||
| 08bb061647 | |||
| d18f5a0b17 | |||
| 8452cb5d58 | |||
| 0a398a474e | |||
| 96b8b66a5a | |||
| 1d75585593 | |||
| 2fa7df9c22 | |||
| e932e5d0dc | |||
| 205a1f8121 | |||
| 8b68e26b36 | |||
| d49bd6ac02 | |||
| ebea7ebd2c | |||
| e7c53b1a4e | |||
| 7abf659b90 | |||
| 11824f2756 | |||
| e815923bb7 | |||
| 88442f0819 | |||
| 1e1c3b62f5 | |||
| 97c5965c65 | |||
| 98444c7783 | |||
| b8b2ca7759 | |||
| d96f8b17b4 | |||
| beb11b88a1 | |||
| b84cef9d95 | |||
| 762115f7f8 | |||
| db820d39d1 | |||
| 6b79d5bc07 | |||
| c62aa79af7 | |||
| 089165d1b9 | |||
| ec73591c7a | |||
| 192fc94fe5 | |||
| 98f6903eda | |||
| 4d95c008c5 | |||
| 0d8dbd73a6 | |||
| a5518a2330 | |||
| bbdcb46dc1 | |||
| d06bd5953b | |||
| df694ca719 | |||
| a64d4f7cca | |||
| aee19a87eb | |||
| 57b54d6a8a | |||
| 797644ded1 | |||
| b358137f1d | |||
| cbf2c4e08a | |||
| 67fde00df2 | |||
| 2385b2c981 | |||
| 3986b37de0 | |||
| 5ffacb58ae | |||
| 0c1f24d48b | |||
| 420141f46c | |||
| 0bc81f9ace | |||
| 93e3c9d725 | |||
| 1bbe8389db | |||
| 0b0968dc38 | |||
| 79d38db009 | |||
| 85a70c096a | |||
| d13c6cc6b3 | |||
| d9f9d439b4 | |||
| 983ab3001c | |||
| f1329f043e | |||
| e9df97064d | |||
| 25a76581e6 | |||
| deb7e30b6f | |||
| 720ceff07e | |||
| 18064840c4 | |||
| f9a9b1ddf9 | |||
| 03a00ccf45 | |||
| 734b0b295a | |||
| 972e0a7de1 | |||
| 1003213bd1 | |||
| 0573aa7cea | |||
| 5992179d68 | |||
| a139677386 | |||
| db45c6c91b | |||
| e081975298 | |||
| dd0b95689d | |||
| e3d3c20ebb | |||
| 0df46ccd55 | |||
| d66a01fc98 | |||
| afc7f88566 | |||
| 25d90b69dc | |||
| c1a78bd98b | |||
| f23adbffed | |||
| caec02ac5e | |||
| 7ca22104d8 | |||
| 79e031b0f5 | |||
| 4f98316c45 | |||
| c03ed0e02c | |||
| 9e3ff30c0c | |||
| 0e6c5775e4 | |||
| b35cd304b0 | |||
| 70b2222ede | |||
| 96330c25ce | |||
| 9fa2a47525 | |||
| 106f43287e | |||
| 6009c36423 | |||
| 8621334d76 | |||
| d4651fcc79 | |||
| 1b75ac55ac | |||
| 891d417f7c | |||
| 57411524ff | |||
| e509158e18 | |||
| b2b06e8a48 | |||
| cb5883d57b | |||
| f6868275d2 | |||
| 05479c4b7d | |||
| 06f47c1352 | |||
| 5c8114ef73 | |||
| 3bb4af65ae | |||
| d022449502 | |||
| 46f4e0ac0a | |||
| 1fdf2d59b7 | |||
| a1e0ba73c9 | |||
| 8f4281a10f | |||
| b6e97ad135 | |||
| f07e24cba4 | |||
| a3e914ec7a | |||
| 1d498095aa | |||
| 249c6512bb | |||
| c094c53b30 | |||
| bd2c65ea6d | |||
| 81836bba3f | |||
| 99eec0aa47 | |||
| 47a0a48f0c | |||
| 6b0701c5f9 | |||
| 197143d3b7 | |||
| 816bc9d4ca | |||
| 16992bfb15 | |||
| 862c5507a1 | |||
| c209d38d92 | |||
| d900c8e9b2 | |||
| 52bfd679ad | |||
| d31713a4a8 | |||
| 7b8a2043b9 | |||
| c58f2a817c | |||
| c4765f9aef | |||
| 255505e532 | |||
| 675801948e | |||
| 25634cc2a0 | |||
| 1e0f989d3f | |||
| 1c43aefada | |||
| afbe7830a3 | |||
| 02f04dd953 | |||
| 2156e48aa9 | |||
| dac25e5a14 | |||
| 13e3783327 | |||
| 80eb52d1dd | |||
| 96442bc9e1 | |||
| d56f690432 | |||
| b6a6fea700 | |||
| 88a47b0a96 | |||
| a6088fd3e9 | |||
| a22b600496 | |||
| 06a4ca837e | |||
| a0e5e385d7 | |||
| 51069dc41e | |||
| f72db32d6e | |||
| 97bfc183ef | |||
| 5d1e7ddbc2 | |||
| 958f69608c | |||
| b83d573701 | |||
| e67b0094b0 | |||
| 11f1f9e5a7 | |||
| 81a1601f3c | |||
| 2fafc81e06 | |||
| a31e196205 | |||
| 02644ab02a | |||
| 3bad9f3136 | |||
| 534fb98c35 | |||
| 624ac8bd8c | |||
| 7e8a0d2413 | |||
| 89574f5c7a | |||
| 0a90614301 | |||
| 9e22d17b0e | |||
| 9b898a9365 | |||
| 346fa152f9 | |||
| ad29964e18 | |||
| 53b0e3b6ac | |||
| d6898b1245 | |||
| 2014a651f5 | |||
| c73cbdd69e | |||
| 4b54ecdf2f | |||
| bfda984aa1 | |||
| 5a7da65049 | |||
| d12b26a2ed | |||
| 2e766dd0db | |||
| 3e30f8eb36 | |||
| 7bf0e245c6 | |||
| cf43256b1d | |||
| 52e564a4d4 | |||
| 15562775d8 | |||
| 34f2b3404f | |||
| 7984d3dc8c | |||
| a4031262d9 | |||
| 61d2b7d151 | |||
| 34beaeecd3 | |||
| 747bb5a5e0 | |||
| 0051c8a6f7 | |||
| bf5d68dae6 | |||
| 95abf32e32 | |||
| e8acd2a969 | |||
| b15a4c7435 | |||
| 7d795f4dca | |||
| e764548702 | |||
| e3bb1a9f05 | |||
| e3a266863d | |||
| 11f0915771 | |||
| ef8305d13d | |||
| 86063b41dd | |||
| 18125068e3 | |||
| 6a284fc24c | |||
| 62afb42240 | |||
| 99b5ec04d2 | |||
| 17effeff51 | |||
| 4419fdc0df | |||
| 80a5544bf2 | |||
| 6c23abac48 | |||
| 52adf9d190 | |||
| 2ee5cb849a | |||
| afd2b9f6d9 | |||
| c21ff40343 | |||
| 904ef92505 | |||
| 5922f488d7 | |||
| 1253f1eebb | |||
| 99be18e32f | |||
| a94ef2cacd | |||
| d7878df3da | |||
| 7ad0d8ca45 | |||
| 4b5b49756d | |||
| c4159ba7a0 | |||
| 4db632d669 | |||
| 3d7c8e5795 | |||
| 26cbf76312 | |||
| 92fc4c8aa1 | |||
| 4bde16547e | |||
| 0cee9d388a | |||
| eef175d247 | |||
| 2b44c2fe3d | |||
| ff3145215e | |||
| 03cbdb3fae | |||
| d91c191854 | |||
| 5ab145d968 | |||
| a8ac2023d5 | |||
| b35e861262 | |||
| e355fde8bf | |||
| 9006734293 | |||
| cc85c30c4f | |||
| b41741136d | |||
| b356d39779 | |||
| ffba451dce | |||
| c283b71b42 | |||
| 5016d5bd58 | |||
| 454cfc929b | |||
| 72bfd147f3 | |||
| 74cbb6fde3 | |||
| 99a96a99bc | |||
| affbdfafcd | |||
| 87de29ee47 | |||
| 28419d09da | |||
| c1e2a1e9be | |||
| 86425f095b | |||
| 41a95a64f0 | |||
| e60fa6453c | |||
| 15c9e398f1 | |||
| 7e560cef77 | |||
| 31a83f69a6 | |||
| 8783c5fd71 | |||
| bd6c37dcaa | |||
| d8d4dcbda0 | |||
| 04863474d2 | |||
| f41a49132f | |||
| 6afa454543 | |||
| 500c8ad2af | |||
| 47294b083f | |||
| ac443ea42f | |||
| c21c824010 | |||
| 7b3cab409a | |||
| c9bf25b937 | |||
| 54da0f0fb9 | |||
| d5d7a46d45 | |||
| 8e6f4e5200 | |||
| 4e1518c90a | |||
| d55c7ef173 | |||
| d8665f682b | |||
| d79c10c022 | |||
| 5077378c1c | |||
| 7265e635b9 | |||
| 76dde174d8 | |||
| 7b469bc8be | |||
| bbc7de2cbd | |||
| 23c0cd841a | |||
| bf26f737fd | |||
| 838bcaa843 | |||
| b255a0d55a | |||
| bbf513839a | |||
| b079fa23a6 | |||
| 81fbea44e4 | |||
| afb3405654 | |||
| ef079957aa | |||
| db500be81d | |||
| 71602b28de | |||
| 9a496c5a6a | |||
| 8d7f18dea9 | |||
| 8cd5abd0e1 | |||
| 3580a36be3 | |||
| 65f19b01fa | |||
| 42effa5f4e | |||
| 4b4f541455 | |||
| 327a5d426b | |||
| 0bf3fa6bf8 | |||
| 402e07827c | |||
| 56aba899df | |||
| 979d1e9fb4 | |||
| 9f1dc4194e | |||
| e8d2b3232e | |||
| 8794ebc92f | |||
| d0d631285b | |||
| c5ce0dcddd | |||
| 609a80ba0e | |||
| d30f8e5c75 | |||
| cacc7f082f | |||
| f60d3290c5 | |||
| deaad0f8fd | |||
| c250fb9e0d | |||
| 8373f5bfce | |||
| 72f242319d | |||
| e0cf685e45 | |||
| 2be290d146 | |||
| 1a8a5dbee2 | |||
| 987fd0ade3 | |||
| e592f889c1 | |||
| 86fb709c81 | |||
| 28e4960780 | |||
| 9775aa165f | |||
| a80b506f96 | |||
| e76c9b8082 | |||
| 0f78c98629 | |||
| 15c3793dab | |||
| 0592c72ab3 | |||
| 744a3566d6 | |||
| 6d8e8c7661 | |||
| fc7e2dd630 | |||
| 7c573c684f | |||
| bf70f4636b | |||
| ce20724121 | |||
| 9265671d25 | |||
| f144e4c383 | |||
| 9c68a385ff | |||
| e11a646657 | |||
| adb82cae81 | |||
| d961b41607 | |||
| 764a4034a2 | |||
| facd216835 | |||
| 03e64e043b | |||
| d29b51561b | |||
| 2548f41be8 | |||
| 4c4736f99b | |||
| aa482a199a | |||
| c04ca640bf | |||
| 1c730c0622 | |||
| e1c3b01f68 | |||
| bf1b47be1a | |||
| 7dd8f9f481 | |||
| a63162f5a7 | |||
| c714d9c9e9 | |||
| 2a5a458172 | |||
| 9c26f5ec7b | |||
| df25aa0a95 | |||
| 65c42b436f | |||
| 6ca53d7f6a | |||
| ead64d7770 | |||
| 413db08e1a | |||
| 2f7d46071d | |||
| 7345433d03 | |||
| b6e514d006 | |||
| 2a34efc31d | |||
| 9472ee91ed | |||
| 5669962393 | |||
| 87f244b4fe | |||
| a00df10264 | |||
| 8bbca86603 | |||
| be36f71c44 | |||
| 6741753643 | |||
| 21a85c421a | |||
| a6cc298377 | |||
| 011154ba20 | |||
| eaf2c1894d | |||
| f195f7e5fe | |||
| 1fca65977d | |||
| 238c403df9 | |||
| 7bb715cbe7 | |||
| cfbc9ce733 | |||
| a602f57dc4 | |||
| 18cf187fda | |||
| c831bf6993 | |||
| 2606ba2100 | |||
| c8e2a6636e | |||
| eb527a4c81 | |||
| 2c220c87fa | |||
| bc107c28ae | |||
| 290aa2ac41 | |||
| 9c7cf0f505 | |||
| b386f50203 | |||
| b71f83aa8f | |||
| 2754e73d61 | |||
| 8f9844eb82 | |||
| a4ddc816e8 | |||
| 444ece8c8f | |||
| 69876dce00 | |||
| 3058b81601 | |||
| 1ca8839e53 | |||
| cc7f15fe88 | |||
| b4bef4c034 | |||
| 9a47e634b9 | |||
| 7e555671fe | |||
| 5f268f3d9e | |||
| 4ab5a70cdb | |||
| 1e2dc36a9f | |||
| 2e7ee276f1 | |||
| ac4d303a54 | |||
| 09c58ea91d | |||
| 4edf2c5c01 | |||
| a36bad8391 | |||
| 993e63c000 | |||
| 43867dfe1a | |||
| 26de1b3fa8 | |||
| cbd8cf8686 | |||
| caae16218e | |||
| 17fbe1a4dd | |||
| 0f47ccc1ba | |||
| 28836f85e5 | |||
| 4368401e33 | |||
| 9e6470a325 | |||
| 08fd80dc15 | |||
| 030577f4d7 | |||
| e867ae40ba | |||
| 4b865a1955 | |||
| d03e94c4d5 | |||
| 8fe520a678 | |||
| 97b5997b8b | |||
| c3390a0cb5 | |||
| e4a07f1b89 | |||
| 5c5ffb0129 | |||
| 1b8ae3ed2e | |||
| 57d1157faf | |||
| 26a61ecc61 | |||
| 4c2feaa1ab | |||
| 3b3b366651 | |||
| 2eb7068a2d | |||
| f2cd3a85a5 | |||
| 2da41efc26 | |||
| 67c96e196e | |||
| 2b9771e594 | |||
| 80fea67a58 | |||
| f6c2c9f283 | |||
| 5d15d83faf | |||
| cb31eb3408 | |||
| 38130c20ac | |||
| 35a23f6f46 | |||
| 55e6a6f58b | |||
| 185e5b3865 | |||
| 44d4b643f3 | |||
| 431a6de992 | |||
| 921b8d3cdb | |||
| 734cb27345 | |||
| 0bf4f95a41 | |||
| d473152c82 | |||
| cffdffb528 | |||
| a641e8c9d3 | |||
| 46543952e5 | |||
| 7d5daf4747 | |||
| b9a925481e | |||
| 39f150ad96 | |||
| 7f72a7d28e | |||
| 8b7e17d86f | |||
| 4935fa7353 | |||
| 0cf5bfaaf4 | |||
| f45cb16d4e | |||
| 9cfd6bfeea | |||
| f552ca210e | |||
| 9d2fef093e | |||
| 2729c0d740 | |||
| 51d9c1a7c6 | |||
| 9b86a6edf4 | |||
| 15dc299714 | |||
| 1ace12eb12 | |||
| 9ea18b8e2b | |||
| 3251b60a22 | |||
| c49d85082f | |||
| 3fad3bfc5c | |||
| 0f4acd346c | |||
| 0f82021798 | |||
| 703bef2735 | |||
| 6e83cf4245 | |||
| b7b24f5a8f | |||
| 6fd1eaf492 | |||
| f6bf0e4f4e | |||
| 1b3dd93fcc | |||
| 083ce17c02 | |||
| 5591e42fcf | |||
| a79fc339ae | |||
| 959abaca9c | |||
| a06eaf7b95 | |||
| 9302045232 | |||
| e2df5f91ad | |||
| d44213f6d4 | |||
| 73df3624f9 | |||
| 21c6e66e4f | |||
| 4680447dd0 | |||
| 5e617d1104 | |||
| 729fc8464c | |||
| 0e79da03b5 | |||
| 70a71b741b | |||
| 0990c0ee5e | |||
| 9d33ceee33 | |||
| b47b371d7e | |||
| 977579e4aa | |||
| 643224fd7d | |||
| bb2af14dab | |||
| e908f4b8dc | |||
| 07c33192fe | |||
| 49eaa39aa2 | |||
| afa8692dbe | |||
| 6d1a974f74 | |||
| 096aec71e5 | |||
| 93a5dc40c7 | |||
| b5f662e26c | |||
| 6c73e0d877 | |||
| 2b8e62a0d6 | |||
| 736cf2fe32 | |||
| c6be3e2ed5 | |||
| 327c6b8c53 | |||
| 87140dc8b5 | |||
| 153d7a4816 | |||
| e0d95a63f3 | |||
| 43d81590bb | |||
| ea684537a9 | |||
| 61576239cf | |||
| ad7f1bb446 | |||
| 72ab35d8d6 | |||
| 46655232b6 | |||
| 318e22e39f | |||
| 8b7f4dc154 | |||
| bbc001e12a | |||
| 96dbf1657c | |||
| 615f90629c | |||
| 434a29a4ee | |||
| 660aaae90c | |||
| 97fb20e9fd | |||
| 1f0144d121 | |||
| 6e4ac6e5be | |||
| caad98839f | |||
| 25eb268c10 | |||
| 9843c250ce | |||
| ecd6e1597f | |||
| 8068e418c0 | |||
| 2ea95f18e4 | |||
| ce13309d74 | |||
| 64f8cbd387 | |||
| e2767e94a7 | |||
| a2b46f3e8e | |||
| e70922b1ce | |||
| 92146346bf | |||
| 41cb13ada0 | |||
| fb2263a0b1 | |||
| a32e5119fd | |||
| 7b4cd6dd2d | |||
| 71f1af62c2 | |||
| 07d65aa3e6 | |||
| 12e51751ee | |||
| af474d4935 | |||
| 0a72e578f0 | |||
| 8e42b86660 | |||
| 854f9cf59e | |||
| 45a18307e5 | |||
| ddef346fc3 | |||
| 976847dc69 | |||
| ef0af88f23 | |||
| 4a1dd020c7 | |||
| 6e476b69c7 | |||
| 4cbbce39d7 | |||
| fe606a5ba4 | |||
| c87526ea54 | |||
| bfdf0508c0 | |||
| cf268ff510 | |||
| c1283b0976 | |||
| 72c13f975f | |||
| 23126143be | |||
| 7abb07b402 | |||
| f94419ccb0 | |||
| ff3df00e0f | |||
| d845a258de | |||
| 4888d07567 | |||
| 5acc12852a | |||
| 47fa5c78a1 | |||
| b87dc53c39 | |||
| 175a3b074f | |||
| 4bf897953c | |||
| 30be8b9d04 | |||
| c70a2175c0 | |||
| 5942905701 | |||
| b6ade014a5 | |||
| 46bdbd36b5 | |||
| 164a84d049 | |||
| 3f4c902c6a | |||
| d382623398 | |||
| db6f46b862 | |||
| 9c2cae25d0 | |||
| 7d34a8fe71 | |||
| e968bb921d | |||
| 4931c8ed3b | |||
| e488a6d88d | |||
| f3af6c1fd5 | |||
| 397494478a | |||
| 80f13dc8ef | |||
| 7a1a14418e | |||
| defe5dff68 | |||
| c5d2d2ea5f | |||
| bc81560e3b | |||
| 99a25a480b | |||
| 8c05ca15b4 | |||
| 5e37e14498 | |||
| f815038069 | |||
| fe296e91ba | |||
| 64ba1a7cab | |||
| d18aefe4bc | |||
| 86a8902872 | |||
| fd891b97d6 | |||
| c2a1b71ed4 | |||
| 5e3daaaf11 | |||
| 5e21353fca | |||
| c441124228 | |||
| ce6d787ca2 | |||
| 38cfc60441 | |||
| 03f5ec3346 | |||
| 84fd87c67c | |||
| d17f80f86a | |||
| 60426226d0 | |||
| fad769fbaa | |||
| 758c885973 | |||
| 734002eb63 | |||
| 949cbd214b | |||
| 0d9447c76b | |||
| ce0205bcd4 | |||
| 919a131c58 | |||
| 34efbd6869 | |||
| 23444a7a70 | |||
| 0ac89e92ae | |||
| df2413e2d7 | |||
| 5e977f42b3 | |||
| 3da91deed6 | |||
| 6cdc2a8bc7 | |||
| 16132b3aaa | |||
| 00af220ee1 | |||
| 0b4715a1b4 | |||
| 05ae05ce05 | |||
| 6c299f6f62 | |||
| ec92462301 | |||
| 7266508701 | |||
| 16f124d385 | |||
| 0d9734960e | |||
| c8f4b4e420 | |||
| 4920e69752 | |||
| e68afd7a08 | |||
| 0fe3e51115 | |||
| 2f641984d9 | |||
| 37ac143808 | |||
| 0c959c062b | |||
| c6a761a06f | |||
| e40ed2d6de | |||
| ece216260e | |||
| 5bff3e4bc3 | |||
| ce0a47f674 | |||
| 48de7ee011 | |||
| e1387452be | |||
| 045cc233c8 | |||
| 624abefdb0 | |||
| 2da8c42a82 | |||
| c9253a8d52 | |||
| 703b05187d | |||
| 9f59ef7516 | |||
| 2352ad0bb0 | |||
| deab5888bb | |||
| 80ed445604 | |||
| 2e591b3923 | |||
| 5ddfd922fe | |||
| 17c209da85 | |||
| d55aa7b715 | |||
| 6eca4b7b42 | |||
| 0a53d754af | |||
| 75432db70d | |||
| 38cac4d9a8 | |||
| e9e884b0ee | |||
| e311cb647f | |||
| 48de5711c9 | |||
| b7f4e0fb84 | |||
| 5407485f96 | |||
| 478012f716 | |||
| d0b952fbc5 | |||
| 420631d588 | |||
| a102cc7c8c | |||
| ec46db033a | |||
| 2446f64e45 | |||
| 909cc30181 | |||
| c7bf1369d6 | |||
| c00bc15a2a | |||
| 15aea578e0 | |||
| 0e60a6235d | |||
| 0250a1aa64 | |||
| 4dc2cccd48 | |||
| dcf112237f | |||
| 3368e23a5b | |||
| fcddfab737 | |||
| 684a20da1d | |||
| c0b865aa07 | |||
| 9bac947c5d | |||
| a0fa4b6bcc | |||
| c5024a837d | |||
| c00f90638d | |||
| d8b3a0220a | |||
| eca5067f2b | |||
| c31e56727a | |||
| 63dce92056 | |||
| b599d835aa | |||
| 981871c512 | |||
| d4b8088969 | |||
| 0fd3ea3b1a | |||
| 176edf427e | |||
| 87d313e132 | |||
| 252e8d57ce | |||
| 6b1716a43c | |||
| 23fe981cd5 | |||
| 68ffef7ae8 | |||
| ef1227777f | |||
| 94c28dd0a0 | |||
| 36c3fc1842 | |||
| 73a0364d24 | |||
| 9bb5274201 | |||
| 4ad0e4c24c | |||
| cf7a5b9b7c | |||
| d07b14657e | |||
| e9e57ebc4d | |||
| 61c2994880 | |||
| 629d2b8af4 | |||
| 8b7486f5c0 | |||
| 471024f7b7 | |||
| d6dca124a7 | |||
| d9f8719f51 | |||
| be014c1b23 | |||
| 6bd42e1d92 | |||
| efac35a337 | |||
| d297393649 | |||
| 93df8edcf6 | |||
| 8cc5a0802d | |||
| b1c272b893 | |||
| 9f0e201537 | |||
| 753f81a9f2 | |||
| 8162b0833c | |||
| 93e322a9a0 | |||
| 8e0cd2fd3b | |||
| 28b00c1086 | |||
| 8a760b4bb5 | |||
| 3b9ebd43db | |||
| 4a145a3415 | |||
| f558179f1e | |||
| 3e4854e7e6 | |||
| bc57d65c36 | |||
| 5bbdee5b1d | |||
| df363ff0c3 | |||
| d417e4b8aa | |||
| 7b9791660d | |||
| 8cd9767a99 | |||
| 70467635f7 | |||
| 83ceffbf87 | |||
| c449945b6c | |||
| 161a8e8184 | |||
| af90994b1e | |||
| 1aebd13649 | |||
| c43d143744 | |||
| fd1a382f99 | |||
| e1c419d845 | |||
| ab03b47fc3 | |||
| 70a192348f | |||
| 0bae1a40d1 | |||
| 5a8384a048 | |||
| 1d87a0a350 | |||
| 55ed5a1153 | |||
| 01c20c31c2 | |||
| 4479d4000e | |||
| edd511f06e | |||
| 8ef3f520b1 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -31,7 +31,7 @@
|
||||
|
||||
|
||||
# Android system locale, zh-TW = Traditional Chinese, zh-CN = Simplified Chinese
|
||||
lang=zh-TW
|
||||
lang=en
|
||||
|
||||
update_font=0
|
||||
remove_old_font=0
|
||||
|
||||
@@ -31,9 +31,9 @@ FRAMEBUFFER_LIBS = -lutils -lgui -lEGL
|
||||
.PHONY: all
|
||||
all: updater
|
||||
|
||||
OBJS = NotoSansCJKtc-Regular.otf.o \
|
||||
NotoSansCJKtc-Medium.otf.o \
|
||||
NotoSansCJKtc-Bold.otf.o \
|
||||
OBJS = opensans_regular.ttf.o \
|
||||
opensans_semibold.ttf.o \
|
||||
opensans_bold.ttf.o \
|
||||
../../selfdrive/common/touch.o \
|
||||
../../selfdrive/common/framebuffer.o \
|
||||
$(PHONELIBS)/json11/json11.o \
|
||||
@@ -52,15 +52,15 @@ updater: updater.o $(OBJS)
|
||||
-lcutils -lm -llog
|
||||
strip updater
|
||||
|
||||
NotoSansCJKtc-Regular.otf.o: ../../selfdrive/assets/fonts/NotoSansCJKtc-Regular.otf
|
||||
opensans_regular.ttf.o: ../../selfdrive/assets/fonts/opensans_regular.ttf
|
||||
@echo "[ bin2o ] $@"
|
||||
cd '$(dir $<)' && ld -r -b binary '$(notdir $<)' -o '$(abspath $@)'
|
||||
|
||||
NotoSansCJKtc-Bold.otf.o: ../../selfdrive/assets/fonts/NotoSansCJKtc-Bold.otf
|
||||
opensans_bold.ttf.o: ../../selfdrive/assets/fonts/opensans_bold.ttf
|
||||
@echo "[ bin2o ] $@"
|
||||
cd '$(dir $<)' && ld -r -b binary '$(notdir $<)' -o '$(abspath $@)'
|
||||
|
||||
NotoSansCJKtc-Medium.otf.o: ../../selfdrive/assets/fonts/NotoSansCJKtc-Medium.otf
|
||||
opensans_semibold.ttf.o: ../../selfdrive/assets/fonts/opensans_semibold.ttf
|
||||
@echo "[ bin2o ] $@"
|
||||
cd '$(dir $<)' && ld -r -b binary '$(notdir $<)' -o '$(abspath $@)'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"ota_url": "https://commadist.azureedge.net/neosupdate/ota-signed-07df505453684371b6c22583ffbb74ee414fcd389a46ff369ffd1b6bac75414e.zip",
|
||||
"ota_url": "http://dpp.cool/neosupdate/ota-signed-07df505453684371b6c22583ffbb74ee414fcd389a46ff369ffd1b6bac75414e.zip",
|
||||
"ota_hash": "07df505453684371b6c22583ffbb74ee414fcd389a46ff369ffd1b6bac75414e",
|
||||
"recovery_url": "https://commadist.azureedge.net/neosupdate/recovery-3a6f973295ded6e4ff5cfff3b12e19c80d3bf45e2e8dd8699da3fc25b23ed7c6.img",
|
||||
"recovery_url": "http://dpp.cool/neosupdate/recovery-3a6f973295ded6e4ff5cfff3b12e19c80d3bf45e2e8dd8699da3fc25b23ed7c6.img",
|
||||
"recovery_len": 15848748,
|
||||
"recovery_hash": "3a6f973295ded6e4ff5cfff3b12e19c80d3bf45e2e8dd8699da3fc25b23ed7c6"
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -43,12 +43,12 @@ const char *manifest_url = MANIFEST_URL_EON;
|
||||
|
||||
#define UPDATE_DIR "/data/neoupdate"
|
||||
|
||||
extern const uint8_t bin_opensans_regular[] asm("_binary_NotoSansCJKtc_Regular_otf_start");
|
||||
extern const uint8_t bin_opensans_regular_end[] asm("_binary_NotoSansCJKtc_Regular_otf_end");
|
||||
extern const uint8_t bin_opensans_semibold[] asm("_binary_NotoSansCJKtc_Medium_otf_start");
|
||||
extern const uint8_t bin_opensans_semibold_end[] asm("_binary_NotoSansCJKtc_Medium_otf_end");
|
||||
extern const uint8_t bin_opensans_bold[] asm("_binary_NotoSansCJKtc_Bold_otf_start");
|
||||
extern const uint8_t bin_opensans_bold_end[] asm("_binary_NotoSansCJKtc_Bold_otf_end");
|
||||
extern const uint8_t bin_opensans_regular[] asm("_binary_opensans_regular_ttf_start");
|
||||
extern const uint8_t bin_opensans_regular_end[] asm("_binary_opensans_regular_ttf_end");
|
||||
extern const uint8_t bin_opensans_semibold[] asm("_binary_opensans_semibold_ttf_start");
|
||||
extern const uint8_t bin_opensans_semibold_end[] asm("_binary_opensans_semibold_ttf_end");
|
||||
extern const uint8_t bin_opensans_bold[] asm("_binary_opensans_bold_ttf_start");
|
||||
extern const uint8_t bin_opensans_bold_end[] asm("_binary_opensans_bold_ttf_end");
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -324,18 +324,18 @@ struct Updater {
|
||||
std::string stage_download(std::string url, std::string hash, std::string name) {
|
||||
std::string out_fn = UPDATE_DIR "/" + util::base_name(url);
|
||||
|
||||
set_progress("下載 " + name + " 中...");
|
||||
set_progress("Downloading " + name + "...");
|
||||
bool r = download_file(url, out_fn);
|
||||
if (!r) {
|
||||
set_error("無法下載 " + name);
|
||||
set_error("failed to download " + name);
|
||||
return "";
|
||||
}
|
||||
|
||||
set_progress("驗證 " + name + " 中...");
|
||||
set_progress("Verifying " + name + "...");
|
||||
std::string fn_hash = sha256_file(out_fn);
|
||||
printf("得到 %s hash: %s\n", name.c_str(), hash.c_str());
|
||||
printf("got %s hash: %s\n", name.c_str(), hash.c_str());
|
||||
if (fn_hash != hash) {
|
||||
set_error(name + " 已損壞");
|
||||
set_error(name + " was corrupt");
|
||||
unlink(out_fn.c_str());
|
||||
return "";
|
||||
}
|
||||
@@ -359,7 +359,7 @@ struct Updater {
|
||||
}
|
||||
|
||||
if (!check_space()) {
|
||||
set_error("您需要至少 2GB 的空間進行升級");
|
||||
set_error("2GB of free space required to update");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -367,7 +367,7 @@ struct Updater {
|
||||
|
||||
const int EON = (access("/EON", F_OK) != -1);
|
||||
|
||||
set_progress("尋找最新的版本...");
|
||||
set_progress("Finding latest version...");
|
||||
std::string manifest_s;
|
||||
if (EON) {
|
||||
manifest_s = download_string(curl, manifest_url);
|
||||
@@ -376,12 +376,12 @@ struct Updater {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
printf("宣示說明: %s\n", manifest_s.c_str());
|
||||
printf("manifest: %s\n", manifest_s.c_str());
|
||||
|
||||
std::string err;
|
||||
auto manifest = json11::Json::parse(manifest_s, err);
|
||||
if (manifest.is_null() || !err.empty()) {
|
||||
set_error("無法載入新的宣示說明");
|
||||
set_error("failed to load update manifest");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -396,7 +396,7 @@ struct Updater {
|
||||
// std::string installer_hash = manifest["installer_hash"].string_value();
|
||||
|
||||
if (ota_url.empty() || ota_hash.empty()) {
|
||||
set_error("錯誤的宣示說明");
|
||||
set_error("invalid update manifest");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -408,12 +408,12 @@ struct Updater {
|
||||
|
||||
std::string recovery_fn;
|
||||
if (recovery_url.empty() || recovery_hash.empty() || recovery_len == 0) {
|
||||
set_progress("跳過 recovery 更新...");
|
||||
set_progress("Skipping recovery flash...");
|
||||
} else {
|
||||
// only download the recovery if it differs from what's flashed
|
||||
set_progress("檢查 recovery...");
|
||||
set_progress("Checking recovery...");
|
||||
std::string existing_recovery_hash = sha256_file(RECOVERY_DEV, recovery_len);
|
||||
printf("目前 recovery 的 hash: %s\n", existing_recovery_hash.c_str());
|
||||
printf("existing recovery hash: %s\n", existing_recovery_hash.c_str());
|
||||
|
||||
if (existing_recovery_hash != recovery_hash) {
|
||||
recovery_fn = stage_download(recovery_url, recovery_hash, "recovery");
|
||||
@@ -443,18 +443,18 @@ struct Updater {
|
||||
|
||||
if (!recovery_fn.empty()) {
|
||||
// flash recovery
|
||||
set_progress("刷新 recovery...");
|
||||
set_progress("Flashing recovery...");
|
||||
|
||||
FILE *flash_file = fopen(recovery_fn.c_str(), "rb");
|
||||
if (!flash_file) {
|
||||
set_error("刷新 recovery 失敗");
|
||||
set_error("failed to flash recovery");
|
||||
return;
|
||||
}
|
||||
|
||||
FILE *recovery_dev = fopen(RECOVERY_DEV, "w+b");
|
||||
if (!recovery_dev) {
|
||||
fclose(flash_file);
|
||||
set_error("刷新 recovery 失敗");
|
||||
set_error("failed to flash recovery");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -469,7 +469,7 @@ struct Updater {
|
||||
if (bytes_read != bytes_written) {
|
||||
fclose(recovery_dev);
|
||||
fclose(flash_file);
|
||||
set_error("刷新 recovery 失敗: 無法寫入");
|
||||
set_error("failed to flash recovery: write failed");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -477,12 +477,12 @@ struct Updater {
|
||||
fclose(recovery_dev);
|
||||
fclose(flash_file);
|
||||
|
||||
set_progress("驗證新的 recovery...");
|
||||
set_progress("Verifying flash...");
|
||||
std::string new_recovery_hash = sha256_file(RECOVERY_DEV, recovery_len);
|
||||
printf("新的 recovery hash: %s\n", new_recovery_hash.c_str());
|
||||
printf("new recovery hash: %s\n", new_recovery_hash.c_str());
|
||||
|
||||
if (new_recovery_hash != recovery_hash) {
|
||||
set_error("刷新 recovery 失敗");
|
||||
set_error("recovery flash corrupted");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -491,13 +491,13 @@ struct Updater {
|
||||
// write arguments to recovery
|
||||
FILE *cmd_file = fopen(RECOVERY_COMMAND, "wb");
|
||||
if (!cmd_file) {
|
||||
set_error("無法重啟至 recovery");
|
||||
set_error("failed to reboot into recovery");
|
||||
return;
|
||||
}
|
||||
fprintf(cmd_file, "--update_package=%s\n", ota_fn.c_str());
|
||||
fclose(cmd_file);
|
||||
|
||||
set_progress("重新啟動");
|
||||
set_progress("Rebooting");
|
||||
|
||||
// remove the continue.sh so we come back into the setup.
|
||||
// maybe we should go directly into the installer, but what if we don't come back with internet? :/
|
||||
@@ -564,9 +564,9 @@ struct Updater {
|
||||
}
|
||||
|
||||
void draw_battery_screen() {
|
||||
low_battery_title = "電量過低";
|
||||
low_battery_text = "請將您的 EON 充電。當電量達到 35% 時系統將會繼續更新。";
|
||||
low_battery_context = "目前的電量為: " + battery_cap_text + "%";
|
||||
low_battery_title = "Low Battery";
|
||||
low_battery_text = "Please connect EON to your charger. Update will continue once EON battery reaches 35%.";
|
||||
low_battery_context = "Current battery charge: " + battery_cap_text + "%";
|
||||
|
||||
nvgFillColor(vg, nvgRGBA(255,255,255,255));
|
||||
nvgTextAlign(vg, NVG_ALIGN_CENTER | NVG_ALIGN_BASELINE);
|
||||
@@ -603,7 +603,7 @@ struct Updater {
|
||||
int powerprompt_y = 312;
|
||||
nvgFontFace(vg, "opensans_regular");
|
||||
nvgFontSize(vg, 64.0f);
|
||||
nvgText(vg, fb_w/2, 740, "請確保您的 EON 已接上充電器。", NULL);
|
||||
nvgText(vg, fb_w/2, 740, "Ensure EON is connected to power.", NULL);
|
||||
|
||||
NVGpaint paint = nvgBoxGradient(
|
||||
vg, progress_x + 1, progress_y + 1,
|
||||
@@ -637,10 +637,10 @@ struct Updater {
|
||||
|
||||
switch (state) {
|
||||
case CONFIRMATION:
|
||||
draw_ack_screen("NEOS 需要更新。",
|
||||
"您的設備將在點擊繼續後開始更新。\n更新檔約為 1GB 我們建議您先連接至無線網路。\n設備上現有的檔案不會丟失。",
|
||||
"繼續",
|
||||
"連線至無線網路");
|
||||
draw_ack_screen("An update to NEOS is required.",
|
||||
"Your device will now be reset and upgraded. You may want to connect to wifi as download is around 1 GB. Existing data on device should not be lost.",
|
||||
"Continue",
|
||||
"Connect to WiFi");
|
||||
break;
|
||||
case LOW_BATTERY:
|
||||
draw_battery_screen();
|
||||
@@ -649,7 +649,7 @@ struct Updater {
|
||||
draw_progress_screen();
|
||||
break;
|
||||
case ERROR:
|
||||
draw_ack_screen("發生錯誤", (error_text).c_str(), NULL, "重新啟動");
|
||||
draw_ack_screen("There was an error", (error_text).c_str(), NULL, "Reboot");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ class CarController():
|
||||
# dragonpilot
|
||||
self.turning_signal_timer = 0
|
||||
self.dragon_enable_steering_on_signal = False
|
||||
# self.dragon_allow_gas = False
|
||||
self.dragon_allow_gas = False
|
||||
self.dragon_lat_ctrl = True
|
||||
|
||||
def update(self, enabled, CS, frame, actuators, \
|
||||
@@ -97,7 +97,7 @@ class CarController():
|
||||
# dragonpilot, don't check for param too often as it's a kernel call
|
||||
if frame % 500 == 0:
|
||||
self.dragon_enable_steering_on_signal = True if params.get("DragonEnableSteeringOnSignal", encoding='utf8') == "1" else False
|
||||
# self.dragon_allow_gas = True if params.get("DragonAllowGas", encoding='utf8') == "1" else False
|
||||
self.dragon_allow_gas = True if params.get("DragonAllowGas", encoding='utf8') == "1" else False
|
||||
self.dragon_lat_ctrl = False if params.get("DragonLatCtrl", encoding='utf8') == "0" else True
|
||||
|
||||
# *** apply brake hysteresis ***
|
||||
|
||||
+191
-191
@@ -77,8 +77,8 @@ ALERTS = [
|
||||
|
||||
Alert(
|
||||
"fcw",
|
||||
"剎車!",
|
||||
"有碰撞的風險",
|
||||
"BRAKE!",
|
||||
"Risk of Collision",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.fcw, AudibleAlert.chimeWarningRepeat, 1., 2., 2.),
|
||||
|
||||
@@ -91,141 +91,141 @@ ALERTS = [
|
||||
|
||||
Alert(
|
||||
"steerSaturated",
|
||||
"接管控制",
|
||||
"彎道超過方向盤轉向限制",
|
||||
"TAKE CONTROL",
|
||||
"Turn Exceeds Steering Limit",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.chimePrompt, 1., 2., 3.),
|
||||
|
||||
Alert(
|
||||
"steerTempUnavailable",
|
||||
"接管控制",
|
||||
"轉向控制暫時失效",
|
||||
"TAKE CONTROL",
|
||||
"Steering Temporarily Unavailable",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.chimeWarning1, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"steerTempUnavailableMute",
|
||||
"接管控制",
|
||||
"轉向控制暫時失效",
|
||||
"TAKE CONTROL",
|
||||
"Steering Temporarily Unavailable",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, .2, .2, .2),
|
||||
|
||||
Alert(
|
||||
"preDriverDistracted",
|
||||
"注意路況:駕駛分心",
|
||||
"KEEP EYES ON ROAD: User Appears Distracted",
|
||||
"",
|
||||
AlertStatus.normal, AlertSize.small,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.none, .0, .1, .1, alert_rate=0.75),
|
||||
|
||||
Alert(
|
||||
"promptDriverDistracted",
|
||||
"注意路況",
|
||||
"駕駛分心",
|
||||
"KEEP EYES ON ROAD",
|
||||
"User Appears Distracted",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarning2, .1, .1, .1),
|
||||
|
||||
Alert(
|
||||
"driverDistracted",
|
||||
"立即解除",
|
||||
"駕駛分心",
|
||||
"DISENGAGE IMMEDIATELY",
|
||||
"User Was Distracted",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, .1, .1),
|
||||
|
||||
Alert(
|
||||
"preDriverUnresponsive",
|
||||
"請觸碰方向盤:無駕駛監控",
|
||||
"TOUCH STEERING WHEEL: No Face Detected",
|
||||
"",
|
||||
AlertStatus.normal, AlertSize.small,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.none, .0, .1, .1, alert_rate=0.75),
|
||||
|
||||
Alert(
|
||||
"promptDriverUnresponsive",
|
||||
"觸碰方向盤",
|
||||
"駕駛沒有反應",
|
||||
"TOUCH STEERING WHEEL",
|
||||
"User Is Unresponsive",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarning2, .1, .1, .1),
|
||||
|
||||
Alert(
|
||||
"driverUnresponsive",
|
||||
"立即解除",
|
||||
"駕駛沒有反應",
|
||||
"DISENGAGE IMMEDIATELY",
|
||||
"User Was Unresponsive",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, .1, .1),
|
||||
|
||||
Alert(
|
||||
"driverMonitorOff",
|
||||
"駕駛監控暫時停用",
|
||||
"監控準確率:低",
|
||||
"DRIVER MONITOR IS UNAVAILABLE",
|
||||
"Accuracy Is Low",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, .4, 0., 4.),
|
||||
|
||||
Alert(
|
||||
"driverMonitorOn",
|
||||
"駕駛監控已啟用",
|
||||
"監控準確率:高",
|
||||
"DRIVER MONITOR IS AVAILABLE",
|
||||
"Accuracy Is High",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, .4, 0., 4.),
|
||||
|
||||
Alert(
|
||||
"geofence",
|
||||
"DISENGAGEMENT REQUIRED",
|
||||
"不在地理圍欄區域之內",
|
||||
"Not in Geofenced Area",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, .1, .1),
|
||||
|
||||
Alert(
|
||||
"startup",
|
||||
"隨時準備好接管",
|
||||
"請您將手放在方向盤上並持續注意路況",
|
||||
"Be ready to take over at any time",
|
||||
"Always keep hands on wheel and eyes on road",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., 15.),
|
||||
|
||||
Alert(
|
||||
"startupNoControl",
|
||||
"行車記錄模式",
|
||||
"請您將手放在方向盤上並持續注意路況",
|
||||
"Dashcam mode",
|
||||
"Always keep hands on wheel and eyes on road",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., 15.),
|
||||
|
||||
Alert(
|
||||
"startupNoCar",
|
||||
"行車記錄模式 (尚未支援車種)",
|
||||
"請您將手放在方向盤上並持續注意路況",
|
||||
"Dashcam mode with unsupported car",
|
||||
"Always keep hands on wheel and eyes on road",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., 15.),
|
||||
|
||||
Alert(
|
||||
"ethicalDilemma",
|
||||
"即刻接管控制",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Ethical Dilemma Detected",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 1., 3., 3.),
|
||||
|
||||
Alert(
|
||||
"steerTempUnavailableNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"轉向控制暫時失效",
|
||||
"openpilot Unavailable",
|
||||
"Steering Temporarily Unavailable",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 0., 3.),
|
||||
|
||||
Alert(
|
||||
"manualRestart",
|
||||
"接管控制",
|
||||
"請自行恢復駕駛",
|
||||
"TAKE CONTROL",
|
||||
"Resume Driving Manually",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"resumeRequired",
|
||||
"已停止",
|
||||
"請按 RES 繼續",
|
||||
"STOPPED",
|
||||
"Press Resume to Move",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"belowSteerSpeed",
|
||||
"接管控制",
|
||||
"轉向控制暫時失效,車速低於 ",
|
||||
"TAKE CONTROL",
|
||||
"Steer Unavailable Below ",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.none, 0., 0.4, .3),
|
||||
|
||||
@@ -237,518 +237,518 @@ ALERTS = [
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, .1, .1, .1),
|
||||
Alert(
|
||||
"preLaneChangeLeft",
|
||||
"請往左打方向盤切換車道",
|
||||
"請注意其它車輛",
|
||||
"Steer Left to Start Lane Change",
|
||||
"Monitor Other Vehicles",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.none, .0, .1, .1, alert_rate=0.75),
|
||||
|
||||
Alert(
|
||||
"preLaneChangeRight",
|
||||
"請往右打方向盤切換車道",
|
||||
"請注意其它車輛",
|
||||
"Steer Right to Start Lane Change",
|
||||
"Monitor Other Vehicles",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.none, .0, .1, .1, alert_rate=0.75),
|
||||
|
||||
Alert(
|
||||
"laneChange",
|
||||
"切換車道中",
|
||||
"請注意其它車輛",
|
||||
"Changing Lane",
|
||||
"Monitor Other Vehicles",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.none, .0, .1, .1),
|
||||
|
||||
Alert(
|
||||
"posenetInvalid",
|
||||
"接管控制",
|
||||
"視覺模型輸出不明確",
|
||||
"TAKE CONTROL",
|
||||
"Vision Model Output Uncertain",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.chimeWarning1, .4, 2., 3.),
|
||||
|
||||
# Non-entry only alerts
|
||||
Alert(
|
||||
"wrongCarModeNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"主開關關閉",
|
||||
"openpilot Unavailable",
|
||||
"Main Switch Off",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 0., 3.),
|
||||
|
||||
Alert(
|
||||
"dataNeededNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"需要更多的數據來協助校準,請將行車記錄上傳後再試",
|
||||
"openpilot Unavailable",
|
||||
"Data Needed for Calibration. Upload Drive, Try Again",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 0., 3.),
|
||||
|
||||
Alert(
|
||||
"outOfSpaceNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"儲存空間不足",
|
||||
"openpilot Unavailable",
|
||||
"Out of Storage Space",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 0., 3.),
|
||||
|
||||
Alert(
|
||||
"pedalPressedNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"openpilot Unavailable",
|
||||
"Pedal Pressed During Attempt",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, "brakePressed", AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"speedTooLowNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"車速過慢",
|
||||
"openpilot Unavailable",
|
||||
"Speed Too Low",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"brakeHoldNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"駐車煞車已啟用",
|
||||
"openpilot Unavailable",
|
||||
"Brake Hold Active",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"parkBrakeNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"電子駐車已啟動",
|
||||
"openpilot Unavailable",
|
||||
"Park Brake Engaged",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"lowSpeedLockoutNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"巡航系統錯誤:請重新發動車子",
|
||||
"openpilot Unavailable",
|
||||
"Cruise Fault: Restart the Car",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"lowBatteryNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"電池電量過低",
|
||||
"openpilot Unavailable",
|
||||
"Low Battery",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"sensorDataInvalidNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"沒有收到任何來自 EON 傳感器的資料",
|
||||
"openpilot Unavailable",
|
||||
"No Data from EON Sensors",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"soundsUnavailableNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"找不到音效裝置",
|
||||
"openpilot Unavailable",
|
||||
"Speaker not found",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"tooDistractedNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"駕駛分心次數過高",
|
||||
"openpilot Unavailable",
|
||||
"Distraction Level Too High",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
# Cancellation alerts causing soft disabling
|
||||
Alert(
|
||||
"overheat",
|
||||
"即刻接管控制",
|
||||
"系統過熱",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"System Overheated",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"wrongGear",
|
||||
"即刻接管控制",
|
||||
"檔位不在 D 檔",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Gear not D",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"calibrationInvalid",
|
||||
"即刻接管控制",
|
||||
"校準無效:請將 EON 放於新的位置並重新校準",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Calibration Invalid: Reposition EON and Recalibrate",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"calibrationIncomplete",
|
||||
"即刻接管控制",
|
||||
"正在校準相機中",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Calibration in Progress",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"doorOpen",
|
||||
"即刻接管控制",
|
||||
"車門開啟",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Door Open",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"seatbeltNotLatched",
|
||||
"即刻接管控制",
|
||||
"安全帶未繫",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Seatbelt Unlatched",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"espDisabled",
|
||||
"即刻接管控制",
|
||||
"ESP 關閉",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"ESP Off",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"lowBattery",
|
||||
"即刻接管控制",
|
||||
"電池電量過低",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Low Battery",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"commIssue",
|
||||
"即刻接管控制",
|
||||
"雷達訊號錯誤:請重新發動車子",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Communication Issue between Processes",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"radarCanError",
|
||||
"即刻接管控制",
|
||||
"雷達訊號錯誤:請重新發動車子",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Radar Error: Restart the Car",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
Alert(
|
||||
"radarFault",
|
||||
"即刻接管控制",
|
||||
"AI 模型錯誤:請檢查網路連線",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Radar Error: Restart the Car",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
|
||||
Alert(
|
||||
"lowMemory",
|
||||
"即刻接管控制",
|
||||
"記憶體不足:請重啟您的 EON",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Low Memory: Reboot Your EON",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.MID, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, .1, 2., 2.),
|
||||
|
||||
# Cancellation alerts causing immediate disabling
|
||||
Alert(
|
||||
"controlsFailed",
|
||||
"即刻接管控制",
|
||||
"控制發生錯誤",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Controls Failed",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 2.2, 3., 4.),
|
||||
|
||||
Alert(
|
||||
"controlsMismatch",
|
||||
"即刻接管控制",
|
||||
"控制不匹配",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Controls Mismatch",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 2.2, 3., 4.),
|
||||
|
||||
Alert(
|
||||
"canError",
|
||||
"即刻接管控制",
|
||||
"CAN 訊號錯誤:請檢查接線",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"CAN Error: Check Connections",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 2.2, 3., 4.),
|
||||
|
||||
Alert(
|
||||
"steerUnavailable",
|
||||
"即刻接管控制",
|
||||
"LKAS 錯誤:請重新發動車子",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"LKAS Fault: Restart the Car",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 2.2, 3., 4.),
|
||||
|
||||
Alert(
|
||||
"brakeUnavailable",
|
||||
"即刻接管控制",
|
||||
"巡航系統錯誤:請重新發動車子",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Cruise Fault: Restart the Car",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 2.2, 3., 4.),
|
||||
|
||||
Alert(
|
||||
"gasUnavailable",
|
||||
"即刻接管控制",
|
||||
"油門錯誤:請重新發動車子",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Gas Fault: Restart the Car",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 2.2, 3., 4.),
|
||||
|
||||
Alert(
|
||||
"reverseGear",
|
||||
"即刻接管控制",
|
||||
"切換至倒車檔",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Reverse Gear",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 2.2, 3., 4.),
|
||||
|
||||
Alert(
|
||||
"cruiseDisabled",
|
||||
"即刻接管控制",
|
||||
"巡航系統關閉",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Cruise Is Off",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 2.2, 3., 4.),
|
||||
|
||||
Alert(
|
||||
"plannerError",
|
||||
"即刻接管控制",
|
||||
"Planner Solution 錯誤",
|
||||
"TAKE CONTROL IMMEDIATELY",
|
||||
"Planner Solution Error",
|
||||
AlertStatus.critical, AlertSize.full,
|
||||
Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.chimeWarningRepeat, 2.2, 3., 4.),
|
||||
|
||||
# not loud cancellations (user is in control)
|
||||
Alert(
|
||||
"noTarget",
|
||||
"dragonpilot 已取消",
|
||||
"沒有偵測到前車",
|
||||
"openpilot Canceled",
|
||||
"No close lead car",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.HIGH, VisualAlert.none, AudibleAlert.chimeDisengage, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"speedTooLow",
|
||||
"dragonpilot 已取消",
|
||||
"車速過慢",
|
||||
"openpilot Canceled",
|
||||
"Speed too low",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.HIGH, VisualAlert.none, AudibleAlert.chimeDisengage, .4, 2., 3.),
|
||||
|
||||
# Cancellation alerts causing non-entry
|
||||
Alert(
|
||||
"overheatNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"系統過熱",
|
||||
"openpilot Unavailable",
|
||||
"System overheated",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"wrongGearNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"車子不在 D 檔",
|
||||
"openpilot Unavailable",
|
||||
"Gear not D",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"calibrationInvalidNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"校準無效:請將 EON 放於新的位置並重新校準",
|
||||
"openpilot Unavailable",
|
||||
"Calibration Invalid: Reposition EON and Recalibrate",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"calibrationIncompleteNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"正在校準相機中",
|
||||
"openpilot Unavailable",
|
||||
"Calibration in Progress",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"doorOpenNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"車門未關",
|
||||
"openpilot Unavailable",
|
||||
"Door open",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"seatbeltNotLatchedNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"安全帶未繫",
|
||||
"openpilot Unavailable",
|
||||
"Seatbelt unlatched",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"espDisabledNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"ESP 關閉",
|
||||
"openpilot Unavailable",
|
||||
"ESP Off",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"geofenceNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"不在地理圍欄區域之內",
|
||||
"openpilot Unavailable",
|
||||
"Not in Geofenced Area",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.MID, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"radarCanErrorNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"雷達訊號錯誤:請重新發動車子",
|
||||
"openpilot Unavailable",
|
||||
"Radar Error: Restart the Car",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"radarFaultNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"雷達訊號錯誤:請重新發動車子",
|
||||
"openpilot Unavailable",
|
||||
"Radar Error: Restart the Car",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"posenetInvalidNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"視覺模型輸出不明確",
|
||||
"openpilot Unavailable",
|
||||
"Vision Model Output Uncertain",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"controlsFailedNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"控制發生錯誤",
|
||||
"openpilot Unavailable",
|
||||
"Controls Failed",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"canErrorNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"CAN 訊號錯誤:請檢查接線",
|
||||
"openpilot Unavailable",
|
||||
"CAN Error: Check Connections",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"steerUnavailableNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"LKAS 錯誤:請重新發動車子",
|
||||
"openpilot Unavailable",
|
||||
"LKAS Fault: Restart the Car",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"brakeUnavailableNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"巡航系統錯誤:請重新發動車子",
|
||||
"openpilot Unavailable",
|
||||
"Cruise Fault: Restart the Car",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"gasUnavailableNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"油門錯誤:請重新發動車子",
|
||||
"openpilot Unavailable",
|
||||
"Gas Error: Restart the Car",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"reverseGearNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"切換至倒車檔",
|
||||
"openpilot Unavailable",
|
||||
"Reverse Gear",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"cruiseDisabledNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"巡航系統關閉",
|
||||
"openpilot Unavailable",
|
||||
"Cruise is Off",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"noTargetNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"沒有偵測到前車",
|
||||
"openpilot Unavailable",
|
||||
"No Close Lead Car",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"plannerErrorNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"Planner Solution 錯誤",
|
||||
"openpilot Unavailable",
|
||||
"Planner Solution Error",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeError, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"commIssueNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"行程出現通訊問題",
|
||||
"openpilot Unavailable",
|
||||
"Communication Issue between Processes",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeDisengage, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"internetConnectivityNeededNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"請連接網路",
|
||||
"openpilot Unavailable",
|
||||
"Please Connect to Internet",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeDisengage, .4, 2., 3.),
|
||||
|
||||
Alert(
|
||||
"lowMemoryNoEntry",
|
||||
"無法使用 dragonpilot",
|
||||
"記憶體不足:請重啟您的 EON",
|
||||
"openpilot Unavailable",
|
||||
"Low Memory: Reboot Your EON",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.chimeDisengage, .4, 2., 3.),
|
||||
|
||||
# permanent alerts
|
||||
Alert(
|
||||
"steerUnavailablePermanent",
|
||||
"LKAS 錯誤:請重新發動車子",
|
||||
"LKAS Fault: Restart the car to engage",
|
||||
"",
|
||||
AlertStatus.normal, AlertSize.small,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"brakeUnavailablePermanent",
|
||||
"巡航系統錯誤:請重新發動車子",
|
||||
"Cruise Fault: Restart the car to engage",
|
||||
"",
|
||||
AlertStatus.normal, AlertSize.small,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"lowSpeedLockoutPermanent",
|
||||
"巡航系統錯誤:請重新發動車子",
|
||||
"Cruise Fault: Restart the car to engage",
|
||||
"",
|
||||
AlertStatus.normal, AlertSize.small,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"calibrationIncompletePermanent",
|
||||
"正在校準相機中:",
|
||||
"車速請高於 ",
|
||||
"Calibration in Progress: ",
|
||||
"Drive Above ",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"invalidGiraffeToyotaPermanent",
|
||||
"未支援的 Giraffe 設置",
|
||||
"請查閱 comma.ai/tg",
|
||||
"Unsupported Giraffe Configuration",
|
||||
"Visit comma.ai/tg",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"internetConnectivityNeededPermanent",
|
||||
"請連接網路",
|
||||
"需檢查更新後才能啟用",
|
||||
"Please connect to Internet",
|
||||
"An Update Check Is Required to Engage",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"communityFeatureDisallowedPermanent",
|
||||
"偵測到社群開發功能",
|
||||
"請至開發人員設定裡啟用社群開發功能",
|
||||
"Community Feature Detected",
|
||||
"Enable Community Features in Developer Settings",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, 0., 0., .2), # LOW priority to overcome Cruise Error
|
||||
|
||||
Alert(
|
||||
"sensorDataInvalidPermanent",
|
||||
"沒有收到任何來自 EON 傳感器的資料",
|
||||
"請重啟您的 EON",
|
||||
"No Data from EON Sensors",
|
||||
"Reboot your EON",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"soundsUnavailablePermanent",
|
||||
"找不到音效裝置",
|
||||
"請重啟您的 EON",
|
||||
"Speaker not found",
|
||||
"Reboot your EON",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"lowMemoryPermanent",
|
||||
"記憶體嚴重不足",
|
||||
"請重啟您的 EON",
|
||||
"RAM Memory Critically Low",
|
||||
"Reboot your EON",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2),
|
||||
|
||||
Alert(
|
||||
"vehicleModelInvalid",
|
||||
"車子參數識別失敗",
|
||||
"Vehicle Parameter Identification Failed",
|
||||
"",
|
||||
AlertStatus.normal, AlertSize.small,
|
||||
Priority.LOWEST, VisualAlert.steerRequired, AudibleAlert.none, .0, .0, .1),
|
||||
@@ -756,54 +756,54 @@ ALERTS = [
|
||||
# offroad alerts
|
||||
Alert(
|
||||
"ldwPermanent",
|
||||
"接管控制",
|
||||
"偵測到已偏離車道",
|
||||
"TAKE CONTROL",
|
||||
"Lane Departure Detected",
|
||||
AlertStatus.userPrompt, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.chimePrompt, 1., 2., 3.),
|
||||
# dragonpilot
|
||||
Alert(
|
||||
"manualSteeringRequired",
|
||||
"請接管方向盤:車道維持關閉",
|
||||
"STEERING REQUIRED: Lane Keeping OFF",
|
||||
"",
|
||||
AlertStatus.normal, AlertSize.small,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, .0, .1, .1, alert_rate=0.25),
|
||||
|
||||
Alert(
|
||||
"manualSteeringRequiredBlinkersOn",
|
||||
"請接管方向盤:方向燈開啟",
|
||||
"STEERING REQUIRED: Blinkers ON",
|
||||
"",
|
||||
AlertStatus.normal, AlertSize.small,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, .0, .1, .1, alert_rate=0.25),
|
||||
Alert(
|
||||
"leadCarMoving",
|
||||
"前車移動中,請開始加速",
|
||||
"Lead Car Is Moving",
|
||||
"",
|
||||
AlertStatus.userPrompt, AlertSize.small,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.chimeWarning2, .1, .1, .1),
|
||||
Alert(
|
||||
"leadCarDetected",
|
||||
"偵測到前車,等待中",
|
||||
"Lead Car Detected",
|
||||
"",
|
||||
AlertStatus.normal, AlertSize.small,
|
||||
Priority.LOW, VisualAlert.none, AudibleAlert.none, .0, .1, .1, alert_rate=0.25),
|
||||
Alert(
|
||||
"preAutoLaneChangeLeft",
|
||||
"將在三秒後自動切至左車道",
|
||||
"請注意其它車輛",
|
||||
"Left Auto Lane Change will engage in 3 seconds",
|
||||
"Monitor Other Vehicles",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.chimeWarning2, .1, .1, .1, alert_rate=0.75),
|
||||
|
||||
Alert(
|
||||
"preAutoLaneChangeRight",
|
||||
"將在三秒後自動切至右車道",
|
||||
"請注意其它車輛",
|
||||
"Right Auto Lane Change will engage in 3 seconds",
|
||||
"Monitor Other Vehicles",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.chimeWarning2, .1, .1, .1, alert_rate=0.75),
|
||||
|
||||
Alert(
|
||||
"autoLaneChange",
|
||||
"切換車道中",
|
||||
"請注意其它車輛",
|
||||
"Changing Lane",
|
||||
"Monitor Other Vehicles",
|
||||
AlertStatus.normal, AlertSize.mid,
|
||||
Priority.LOW, VisualAlert.steerRequired, AudibleAlert.chimeWarning2, .1, .1, .1),
|
||||
|
||||
|
||||
+6
-6
@@ -1692,7 +1692,7 @@ static void bb_ui_draw_measures_left(UIState *s, int bb_x, int bb_y, int bb_w )
|
||||
snprintf(val_str, sizeof(val_str), "-");
|
||||
}
|
||||
snprintf(uom_str, sizeof(uom_str), "m ");
|
||||
bb_h +=bb_ui_draw_measure(s, val_str, uom_str, "相對距離",
|
||||
bb_h +=bb_ui_draw_measure(s, val_str, uom_str, "REL DIST",
|
||||
bb_rx, bb_ry, bb_uom_dx,
|
||||
val_color, lab_color, uom_color,
|
||||
value_fontSize, label_fontSize, uom_fontSize );
|
||||
@@ -1727,7 +1727,7 @@ static void bb_ui_draw_measures_left(UIState *s, int bb_x, int bb_y, int bb_w )
|
||||
} else {
|
||||
snprintf(uom_str, sizeof(uom_str), "mph");
|
||||
}
|
||||
bb_h +=bb_ui_draw_measure(s, val_str, uom_str, "相對速度",
|
||||
bb_h +=bb_ui_draw_measure(s, val_str, uom_str, "REL SPEED",
|
||||
bb_rx, bb_ry, bb_uom_dx,
|
||||
val_color, lab_color, uom_color,
|
||||
value_fontSize, label_fontSize, uom_fontSize );
|
||||
@@ -1772,7 +1772,7 @@ static void bb_ui_draw_measures_right(UIState *s, int bb_x, int bb_y, int bb_w )
|
||||
snprintf(val_str, sizeof(val_str), "%.1f°",(scene->angleSteers));
|
||||
|
||||
snprintf(uom_str, sizeof(uom_str), "");
|
||||
bb_h +=bb_ui_draw_measure(s, val_str, uom_str, "實際轉向",
|
||||
bb_h +=bb_ui_draw_measure(s, val_str, uom_str, "REAL STEER",
|
||||
bb_rx, bb_ry, bb_uom_dx,
|
||||
val_color, lab_color, uom_color,
|
||||
value_fontSize, label_fontSize, uom_fontSize );
|
||||
@@ -1796,7 +1796,7 @@ static void bb_ui_draw_measures_right(UIState *s, int bb_x, int bb_y, int bb_w )
|
||||
snprintf(val_str, sizeof(val_str), "%.1f°",(scene->angleSteersDes));
|
||||
|
||||
snprintf(uom_str, sizeof(uom_str), "");
|
||||
bb_h +=bb_ui_draw_measure(s, val_str, uom_str, "所需轉向",
|
||||
bb_h +=bb_ui_draw_measure(s, val_str, uom_str, "DESIR STEER",
|
||||
bb_rx, bb_ry, bb_uom_dx,
|
||||
val_color, lab_color, uom_color,
|
||||
value_fontSize, label_fontSize, uom_fontSize );
|
||||
@@ -2698,8 +2698,8 @@ int main(int argc, char* argv[]) {
|
||||
if (s->status != STATUS_STOPPED) {
|
||||
update_status(s, STATUS_ALERT);
|
||||
}
|
||||
snprintf(s->scene.alert_text1, sizeof(s->scene.alert_text1), "%s", "即刻接管控制");
|
||||
snprintf(s->scene.alert_text2, sizeof(s->scene.alert_text2), "%s", "操控服務沒有反應");
|
||||
snprintf(s->scene.alert_text1, sizeof(s->scene.alert_text1), "%s", "TAKE CONTROL IMMEDIATELY");
|
||||
snprintf(s->scene.alert_text2, sizeof(s->scene.alert_text2), "%s", "Controls Unresponsive");
|
||||
ui_draw_vision_alert(s, s->scene.alert_size, s->status, s->scene.alert_text1, s->scene.alert_text2);
|
||||
|
||||
s->alert_sound_timeout = 2 * UI_FREQ;
|
||||
|
||||
Reference in New Issue
Block a user