表盘工具:增加工具文件
authorCaisking <Casiking@zhihuishixun.com>
Mon, 24 Mar 2025 08:09:15 +0000 (16:09 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Mon, 24 Mar 2025 08:09:15 +0000 (16:09 +0800)
358 files changed:
dial_converter_tool/README.txt [new file with mode: 0755]
dial_converter_tool/__pycache__/common_types.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/converter.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_arc_label.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_arc_progress.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_box_progress.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_click.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_digital_img.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_kaleidoscope.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_label.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_option_img.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_rotate_img.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_sequence_img.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_static_img.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/dial_video.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/img_convert.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/__pycache__/video_convert.cpython-310.pyc [new file with mode: 0755]
dial_converter_tool/common_types.py [new file with mode: 0755]
dial_converter_tool/converter.py [new file with mode: 0755]
dial_converter_tool/dial_arc_label.py [new file with mode: 0755]
dial_converter_tool/dial_arc_progress.py [new file with mode: 0755]
dial_converter_tool/dial_box_progress.py [new file with mode: 0755]
dial_converter_tool/dial_click.py [new file with mode: 0755]
dial_converter_tool/dial_digital_img.py [new file with mode: 0755]
dial_converter_tool/dial_kaleidoscope.py [new file with mode: 0755]
dial_converter_tool/dial_label.py [new file with mode: 0755]
dial_converter_tool/dial_option_img.py [new file with mode: 0755]
dial_converter_tool/dial_rotate_img.py [new file with mode: 0755]
dial_converter_tool/dial_sequence_img.py [new file with mode: 0755]
dial_converter_tool/dial_static_img.py [new file with mode: 0755]
dial_converter_tool/dial_video.py [new file with mode: 0755]
dial_converter_tool/dll/linux_cs/libcodec.so [new file with mode: 0755]
dial_converter_tool/dll/linux_es/libcodec.so [new file with mode: 0755]
dial_converter_tool/dll/x64/release_cs/ICE_V5R1_BLOCK_HTC.dll [new file with mode: 0755]
dial_converter_tool/dll/x64/release_cs/ICE_V5R1_BLOCK_HTC.lib [new file with mode: 0755]
dial_converter_tool/dll/x64/release_es/ICE_V5R1_BLOCK_HTC.dll [new file with mode: 0755]
dial_converter_tool/dll/x64/release_es/ICE_V5R1_BLOCK_HTC.lib [new file with mode: 0755]
dial_converter_tool/img_convert.py [new file with mode: 0755]
dial_converter_tool/main.py [new file with mode: 0755]
dial_converter_tool/video_convert.py [new file with mode: 0755]
dial_lzma/101/sport.lzma [new file with mode: 0755]
dial_lzma/101/sport.png [new file with mode: 0755]
dial_lzma/101/说明.txt [new file with mode: 0755]
dial_lzma/102/kaleidoscope.lzma [new file with mode: 0755]
dial_lzma/102/kaleidoscope.png [new file with mode: 0755]
dial_lzma/102/说明.txt [new file with mode: 0755]
dial_lzma/1028/KUMI.lzma [new file with mode: 0755]
dial_lzma/1028/KUMI.png [new file with mode: 0755]
dial_lzma/1028/说明.txt [new file with mode: 0755]
dial_lzma/103/jellyfish-app.png [new file with mode: 0755]
dial_lzma/103/jellyfish.lzma [new file with mode: 0755]
dial_lzma/103/说明.txt [new file with mode: 0755]
dial_lzma/104/dog.lzma [new file with mode: 0755]
dial_lzma/104/dog.png [new file with mode: 0755]
dial_lzma/104/说明.txt [new file with mode: 0755]
dial_lzma/105/kitty.lzma [new file with mode: 0755]
dial_lzma/105/kitty.png [new file with mode: 0755]
dial_lzma/105/说明.txt [new file with mode: 0755]
dial_lzma/1052/classic.lzma [new file with mode: 0755]
dial_lzma/1052/classic.png [new file with mode: 0755]
dial_lzma/1052/说明.txt [new file with mode: 0755]
dial_lzma/106/galaxy.lzma [new file with mode: 0755]
dial_lzma/106/galaxy.png [new file with mode: 0755]
dial_lzma/106/说明.txt [new file with mode: 0755]
dial_lzma/107/geometry.lzma [new file with mode: 0755]
dial_lzma/107/geometry.png [new file with mode: 0755]
dial_lzma/107/说明.txt [new file with mode: 0755]
dial_lzma/108/maomao.lzma [new file with mode: 0755]
dial_lzma/108/maomao.png [new file with mode: 0755]
dial_lzma/108/说明.txt [new file with mode: 0755]
dial_lzma/109/succulents.lzma [new file with mode: 0755]
dial_lzma/109/succulents.png [new file with mode: 0755]
dial_lzma/109/说明.txt [new file with mode: 0755]
dial_lzma/110/spaceman.lzma [new file with mode: 0755]
dial_lzma/110/spaceman.png [new file with mode: 0755]
dial_lzma/110/说明.txt [new file with mode: 0755]
dial_lzma/111/satellite.lzma [new file with mode: 0755]
dial_lzma/111/satellite.png [new file with mode: 0755]
dial_lzma/111/说明.txt [new file with mode: 0755]
dial_lzma/112/birdie.lzma [new file with mode: 0755]
dial_lzma/112/birdie.png [new file with mode: 0755]
dial_lzma/112/说明.txt [new file with mode: 0755]
dial_lzma/113/dawninsight.lzma [new file with mode: 0755]
dial_lzma/113/dawninsight.png [new file with mode: 0755]
dial_lzma/113/说明.txt [new file with mode: 0755]
dial_lzma/114/obsidianrhythm.lzma [new file with mode: 0755]
dial_lzma/114/obsidianrhythm.png [new file with mode: 0755]
dial_lzma/114/说明.txt [new file with mode: 0755]
dial_lzma/115/mirrorvoyager.lzma [new file with mode: 0755]
dial_lzma/115/mirrorvoyager.png [new file with mode: 0755]
dial_lzma/115/说明.txt [new file with mode: 0755]
dial_lzma/116/blueflower.lzma [new file with mode: 0755]
dial_lzma/116/blueflower.png [new file with mode: 0755]
dial_lzma/116/说明.txt [new file with mode: 0755]
dial_lzma/117/freshlemon.lzma [new file with mode: 0755]
dial_lzma/117/freshlemon.png [new file with mode: 0755]
dial_lzma/117/说明.txt [new file with mode: 0755]
dial_lzma/118/cuteduck.lzma [new file with mode: 0755]
dial_lzma/118/cuteduck.png [new file with mode: 0755]
dial_lzma/118/说明.txt [new file with mode: 0755]
dial_lzma/119/classicblack.lzma [new file with mode: 0755]
dial_lzma/119/classicblack.png [new file with mode: 0755]
dial_lzma/119/说明.txt [new file with mode: 0755]
dial_lzma/120/pumpkin.lzma [new file with mode: 0755]
dial_lzma/120/pumpkin.png [new file with mode: 0755]
dial_lzma/120/说明.txt [new file with mode: 0755]
dial_lzma/121/rose.lzma [new file with mode: 0755]
dial_lzma/121/rose.png [new file with mode: 0755]
dial_lzma/121/说明.txt [new file with mode: 0755]
dial_lzma/122/valley.lzma [new file with mode: 0755]
dial_lzma/122/valley.png [new file with mode: 0755]
dial_lzma/122/说明.txt [new file with mode: 0755]
dial_lzma/123/oceanworld.lzma [new file with mode: 0755]
dial_lzma/123/oceanworld.png [new file with mode: 0755]
dial_lzma/123/说明.txt [new file with mode: 0755]
dial_lzma/124/forestelk.lzma [new file with mode: 0755]
dial_lzma/124/forestelk.png [new file with mode: 0755]
dial_lzma/124/说明.txt [new file with mode: 0755]
dial_lzma/125/puppy.lzma [new file with mode: 0755]
dial_lzma/125/puppy.png [new file with mode: 0755]
dial_lzma/125/说明.txt [new file with mode: 0755]
dial_lzma/127/bud.lzma [new file with mode: 0755]
dial_lzma/127/bud.png [new file with mode: 0755]
dial_lzma/127/说明.txt [new file with mode: 0755]
dial_lzma/128/vibrantnumber.lzma [new file with mode: 0755]
dial_lzma/128/vibrantnumber.png [new file with mode: 0755]
dial_lzma/128/说明.txt [new file with mode: 0755]
dial_lzma/129/shadow.lzma [new file with mode: 0755]
dial_lzma/129/shadow.png [new file with mode: 0755]
dial_lzma/129/说明.txt [new file with mode: 0755]
dial_lzma/131/fightingfish.lzma [new file with mode: 0755]
dial_lzma/131/fightingfish.png [new file with mode: 0755]
dial_lzma/131/说明.txt [new file with mode: 0755]
dial_lzma/132/goose.lzma [new file with mode: 0755]
dial_lzma/132/goose.png [new file with mode: 0755]
dial_lzma/132/说明.txt [new file with mode: 0755]
dial_lzma/133/dewdrop.lzma [new file with mode: 0755]
dial_lzma/133/dewdrop.png [new file with mode: 0755]
dial_lzma/133/说明.txt [new file with mode: 0755]
dial_lzma/134/elk.lzma [new file with mode: 0755]
dial_lzma/134/elk.png [new file with mode: 0755]
dial_lzma/134/说明.txt [new file with mode: 0755]
dial_lzma/135/giraffe.lzma [new file with mode: 0755]
dial_lzma/135/giraffe.png [new file with mode: 0755]
dial_lzma/135/说明.txt [new file with mode: 0755]
dial_lzma/136/lotu.lzma [new file with mode: 0755]
dial_lzma/136/lotu.png [new file with mode: 0755]
dial_lzma/136/说明.txt [new file with mode: 0755]
dial_lzma/137/eagle.lzma [new file with mode: 0755]
dial_lzma/137/eagle.png [new file with mode: 0755]
dial_lzma/137/说明.txt [new file with mode: 0755]
dial_lzma/138/zebra.lzma [new file with mode: 0755]
dial_lzma/138/zebra.png [new file with mode: 0755]
dial_lzma/138/说明.txt [new file with mode: 0755]
dial_lzma/139/littledaisy.lzma [new file with mode: 0755]
dial_lzma/139/littledaisy.png [new file with mode: 0755]
dial_lzma/139/说明.txt [new file with mode: 0755]
dial_lzma/140/wolf.lzma [new file with mode: 0755]
dial_lzma/140/wolf.png [new file with mode: 0755]
dial_lzma/140/说明.txt [new file with mode: 0755]
dial_lzma/141/bear.lzma [new file with mode: 0755]
dial_lzma/141/bear.png [new file with mode: 0755]
dial_lzma/141/说明.txt [new file with mode: 0755]
dial_lzma/142/whiterose.lzma [new file with mode: 0755]
dial_lzma/142/whiterose.png [new file with mode: 0755]
dial_lzma/142/说明.txt [new file with mode: 0755]
dial_lzma/143/glowjellyfish.lzma [new file with mode: 0755]
dial_lzma/143/glowjellyfish.png [new file with mode: 0755]
dial_lzma/143/说明.txt [new file with mode: 0755]
dial_lzma/144/kingfisher.lzma [new file with mode: 0755]
dial_lzma/144/kingfisher.png [new file with mode: 0755]
dial_lzma/144/说明.txt [new file with mode: 0755]
dial_lzma/145/ornithogalum.lzma [new file with mode: 0755]
dial_lzma/145/ornithogalum.png [new file with mode: 0755]
dial_lzma/145/说明.txt [new file with mode: 0755]
dial_lzma/146/lion.lzma [new file with mode: 0755]
dial_lzma/146/lion.png [new file with mode: 0755]
dial_lzma/146/说明.txt [new file with mode: 0755]
dial_lzma/147/sharpee.lzma [new file with mode: 0755]
dial_lzma/147/sharpee.png [new file with mode: 0755]
dial_lzma/147/说明.txt [new file with mode: 0755]
dial_lzma/148/Aquarius.lzma [new file with mode: 0755]
dial_lzma/148/Aquarius.png [new file with mode: 0755]
dial_lzma/148/说明.txt [new file with mode: 0755]
dial_lzma/149/Sagittarius.lzma [new file with mode: 0755]
dial_lzma/149/Sagittarius.png [new file with mode: 0755]
dial_lzma/149/说明.txt [new file with mode: 0755]
dial_lzma/150/Leo.lzma [new file with mode: 0755]
dial_lzma/150/Leo.png [new file with mode: 0755]
dial_lzma/150/说明.txt [new file with mode: 0755]
dial_lzma/151/Taurus.lzma [new file with mode: 0755]
dial_lzma/151/Taurus.png [new file with mode: 0755]
dial_lzma/151/说明.txt [new file with mode: 0755]
dial_lzma/152/Aries.lzma [new file with mode: 0755]
dial_lzma/152/Aries.png [new file with mode: 0755]
dial_lzma/152/说明.txt [new file with mode: 0755]
dial_lzma/153/Libra.lzma [new file with mode: 0755]
dial_lzma/153/Libra.png [new file with mode: 0755]
dial_lzma/153/说明.txt [new file with mode: 0755]
dial_lzma/154/corgi.lzma [new file with mode: 0755]
dial_lzma/154/corgi.png [new file with mode: 0755]
dial_lzma/154/说明.txt [new file with mode: 0755]
dial_lzma/155/lookup.lzma [new file with mode: 0755]
dial_lzma/155/lookup.png [new file with mode: 0755]
dial_lzma/155/说明.txt [new file with mode: 0755]
dial_lzma/156/greenery.lzma [new file with mode: 0755]
dial_lzma/156/greenery.png [new file with mode: 0755]
dial_lzma/156/说明.txt [new file with mode: 0755]
dial_lzma/157/dusk.lzma [new file with mode: 0755]
dial_lzma/157/dusk.png [new file with mode: 0755]
dial_lzma/157/说明.txt [new file with mode: 0755]
dial_lzma/158/squirrel.lzma [new file with mode: 0755]
dial_lzma/158/squirrel.png [new file with mode: 0755]
dial_lzma/158/说明.txt [new file with mode: 0755]
dial_lzma/159/lizard.lzma [new file with mode: 0755]
dial_lzma/159/lizard.png [new file with mode: 0755]
dial_lzma/159/说明.txt [new file with mode: 0755]
dial_lzma/160/lighthouse.lzma [new file with mode: 0755]
dial_lzma/160/lighthouse.png [new file with mode: 0755]
dial_lzma/160/说明.txt [new file with mode: 0755]
dial_lzma/161/persiancat.lzma [new file with mode: 0755]
dial_lzma/161/persiancat.png [new file with mode: 0755]
dial_lzma/161/说明.txt [new file with mode: 0755]
dial_lzma/162/urbannight.lzma [new file with mode: 0755]
dial_lzma/162/urbannight.png [new file with mode: 0755]
dial_lzma/162/说明.txt [new file with mode: 0755]
dial_lzma/163/nature.lzma [new file with mode: 0755]
dial_lzma/163/nature.png [new file with mode: 0755]
dial_lzma/163/说明.txt [new file with mode: 0755]
dial_lzma/164/sikadeer.lzma [new file with mode: 0755]
dial_lzma/164/sikadeer.png [new file with mode: 0755]
dial_lzma/164/说明.txt [new file with mode: 0755]
dial_lzma/165/firework.lzma [new file with mode: 0755]
dial_lzma/165/firework.png [new file with mode: 0755]
dial_lzma/165/说明.txt [new file with mode: 0755]
dial_lzma/166/pinktree.lzma [new file with mode: 0755]
dial_lzma/166/pinktree.png [new file with mode: 0755]
dial_lzma/166/说明.txt [new file with mode: 0755]
dial_lzma/167/lake.lzma [new file with mode: 0755]
dial_lzma/167/lake.png [new file with mode: 0755]
dial_lzma/167/说明.txt [new file with mode: 0755]
dial_lzma/168/sakura.lzma [new file with mode: 0755]
dial_lzma/168/sakura.png [new file with mode: 0755]
dial_lzma/168/说明.txt [new file with mode: 0755]
dial_lzma/169/snails.lzma [new file with mode: 0755]
dial_lzma/169/snails.png [new file with mode: 0755]
dial_lzma/169/说明.txt [new file with mode: 0755]
dial_lzma/170/duck.lzma [new file with mode: 0755]
dial_lzma/170/duck.png [new file with mode: 0755]
dial_lzma/170/说明.txt [new file with mode: 0755]
dial_lzma/171/deepdive.lzma [new file with mode: 0755]
dial_lzma/171/deepdive.png [new file with mode: 0755]
dial_lzma/171/说明.txt [new file with mode: 0755]
dial_lzma/172/wave.lzma [new file with mode: 0755]
dial_lzma/172/wave.png [new file with mode: 0755]
dial_lzma/172/说明.txt [new file with mode: 0755]
dial_lzma/173/golden_ball.png [new file with mode: 0755]
dial_lzma/173/goldenball.lzma [new file with mode: 0755]
dial_lzma/173/说明.txt [new file with mode: 0755]
dial_lzma/174/abstractlines.lzma [new file with mode: 0755]
dial_lzma/174/abstractlines.png [new file with mode: 0755]
dial_lzma/174/说明.txt [new file with mode: 0755]
dial_lzma/175/lineglare.lzma [new file with mode: 0755]
dial_lzma/175/lineglare.png [new file with mode: 0755]
dial_lzma/175/说明.txt [new file with mode: 0755]
dial_lzma/176/linespace.lzma [new file with mode: 0755]
dial_lzma/176/linespace.png [new file with mode: 0755]
dial_lzma/176/说明.txt [new file with mode: 0755]
dial_lzma/177/liquefaction.lzma [new file with mode: 0755]
dial_lzma/177/liquefaction.png [new file with mode: 0755]
dial_lzma/177/说明.txt [new file with mode: 0755]
dial_lzma/178/linemantis.lzma [new file with mode: 0755]
dial_lzma/178/linemantis.png [new file with mode: 0755]
dial_lzma/178/说明.txt [new file with mode: 0755]
dial_lzma/179/lineflow.lzma [new file with mode: 0755]
dial_lzma/179/lineflow.png [new file with mode: 0755]
dial_lzma/179/说明.txt [new file with mode: 0755]
dial_lzma/180/linedream.lzma [new file with mode: 0755]
dial_lzma/180/linedream.png [new file with mode: 0755]
dial_lzma/180/说明.txt [new file with mode: 0755]
dial_lzma/181/lineflower.lzma [new file with mode: 0755]
dial_lzma/181/lineflower.png [new file with mode: 0755]
dial_lzma/181/说明.txt [new file with mode: 0755]
dial_lzma/182/linespiral.lzma [new file with mode: 0755]
dial_lzma/182/linespiral.png [new file with mode: 0755]
dial_lzma/182/说明.txt [new file with mode: 0755]
dial_lzma/183/explode.lzma [new file with mode: 0755]
dial_lzma/183/explode.png [new file with mode: 0755]
dial_lzma/183/说明.txt [new file with mode: 0755]
dial_lzma/184/networks.lzma [new file with mode: 0755]
dial_lzma/184/networks.png [new file with mode: 0755]
dial_lzma/184/说明.txt [new file with mode: 0755]
dial_lzma/185/distortion.lzma [new file with mode: 0755]
dial_lzma/185/distortion.png [new file with mode: 0755]
dial_lzma/185/说明.txt [new file with mode: 0755]
dial_lzma/186/linevalley.lzma [new file with mode: 0755]
dial_lzma/186/linevalley.png [new file with mode: 0755]
dial_lzma/186/说明.txt [new file with mode: 0755]
dial_lzma/187/redbal.lzma [new file with mode: 0755]
dial_lzma/187/redbal.png [new file with mode: 0755]
dial_lzma/187/说明.txt [new file with mode: 0755]
dial_lzma/188/david.lzma [new file with mode: 0755]
dial_lzma/188/david.png [new file with mode: 0755]
dial_lzma/188/说明.txt [new file with mode: 0755]
dial_lzma/189/dragonball.lzma [new file with mode: 0755]
dial_lzma/189/dragonball.png [new file with mode: 0755]
dial_lzma/189/说明.txt [new file with mode: 0755]
dial_lzma/190/science.lzma [new file with mode: 0755]
dial_lzma/190/science.png [new file with mode: 0755]
dial_lzma/190/说明.txt [new file with mode: 0755]
dial_lzma/191/future.lzma [new file with mode: 0755]
dial_lzma/191/future.png [new file with mode: 0755]
dial_lzma/191/说明.txt [new file with mode: 0755]
dial_lzma/192/HappyNewYear.lzma [new file with mode: 0755]
dial_lzma/192/HappyNewYear.png [new file with mode: 0755]
dial_lzma/192/说明.txt [new file with mode: 0755]
dial_lzma/193/SnakeYearLuck.lzma [new file with mode: 0755]
dial_lzma/193/SnakeYearLuck.png [new file with mode: 0755]
dial_lzma/193/说明.txt [new file with mode: 0755]
dial_lzma/194/LuckyDollNew.lzma [new file with mode: 0755]
dial_lzma/194/LuckyDollNew.png [new file with mode: 0755]
dial_lzma/194/说明.txt [new file with mode: 0755]
dial_lzma/195/WishYouWealth.lzma [new file with mode: 0755]
dial_lzma/195/WishYouWealth.png [new file with mode: 0755]
dial_lzma/195/说明.txt [new file with mode: 0755]
dial_lzma/196/GoodLuckForever.lzma [new file with mode: 0755]
dial_lzma/196/GoodLuckForever.png [new file with mode: 0755]
dial_lzma/196/说明.txt [new file with mode: 0755]
dial_lzma/197/WealthfromAll.lzma [new file with mode: 0755]
dial_lzma/197/WealthfromAll.png [new file with mode: 0755]
dial_lzma/197/说明.txt [new file with mode: 0755]
dial_lzma/198/Welcome2025.lzma [new file with mode: 0755]
dial_lzma/198/Welcome2025.png [new file with mode: 0755]
dial_lzma/198/说明.txt [new file with mode: 0755]
dial_lzma/199/NewYearsDay.lzma [new file with mode: 0755]
dial_lzma/199/NewYearsDay.png [new file with mode: 0755]
dial_lzma/199/说明.txt [new file with mode: 0755]
dial_lzma/200/HappySpring.lzma [new file with mode: 0755]
dial_lzma/200/HappySpring.png [new file with mode: 0755]
dial_lzma/200/说明.txt [new file with mode: 0755]
dial_lzma/201/2025.lzma [new file with mode: 0755]
dial_lzma/201/2025.png [new file with mode: 0755]
dial_lzma/201/说明.txt [new file with mode: 0755]
dial_lzma/202/LuckwithSnake.lzma [new file with mode: 0755]
dial_lzma/202/LuckwithSnake.png [new file with mode: 0755]
dial_lzma/202/说明.txt [new file with mode: 0755]
dial_lzma/203/GoodSnakeYear.lzma [new file with mode: 0755]
dial_lzma/203/GoodSnakeYear.png [new file with mode: 0755]
dial_lzma/203/说明.txt [new file with mode: 0755]
dial_lzma/204/LighWisdom.lzma [new file with mode: 0755]
dial_lzma/204/LighWisdom.png [new file with mode: 0755]
dial_lzma/204/说明.txt [new file with mode: 0755]
lzma_tool/lzma_tool [new file with mode: 0755]
lzma_tool/lzma_tool.exe [new file with mode: 0755]
lzma_tool/readme.txt [new file with mode: 0755]
make_tools/gen_dial_bin.sh [new file with mode: 0755]
make_tools/表盘制作脚本使用说明.md [new file with mode: 0755]
离线表盘开发指南.docx [changed mode: 0644->0755]

diff --git a/dial_converter_tool/README.txt b/dial_converter_tool/README.txt
new file mode 100755 (executable)
index 0000000..58d2c0f
--- /dev/null
@@ -0,0 +1,11 @@
+usage: main.py [-h] [-file FILE] [-dir DIR] [-output OUTPUT]\r
+\r
+options:\r
+  -h, --help           show this help message and exit\r
+  -file FILE, -f FILE  The svg file need to be converted.\r
+  -dir DIR, -d DIR     The directory needs to be converted.\r
+  -output OUTPUT       output dir\r
+\r
+example:\r
+windows: python .\main.py -dir .\instance\analogue_dial\r
+windows: python .\main.py -dir .\instance\kaleidoscope_dial
\ No newline at end of file
diff --git a/dial_converter_tool/__pycache__/common_types.cpython-310.pyc b/dial_converter_tool/__pycache__/common_types.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..3b8b5b1
Binary files /dev/null and b/dial_converter_tool/__pycache__/common_types.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/converter.cpython-310.pyc b/dial_converter_tool/__pycache__/converter.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..68b5b46
Binary files /dev/null and b/dial_converter_tool/__pycache__/converter.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_arc_label.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_arc_label.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..9e91d31
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_arc_label.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_arc_progress.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_arc_progress.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..44d4bf5
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_arc_progress.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_box_progress.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_box_progress.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..b9b7f8b
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_box_progress.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_click.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_click.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..3ac6847
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_click.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_digital_img.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_digital_img.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..ffa4df6
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_digital_img.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_kaleidoscope.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_kaleidoscope.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..d622536
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_kaleidoscope.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_label.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_label.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..a825f27
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_label.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_option_img.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_option_img.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..56544fe
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_option_img.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_rotate_img.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_rotate_img.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..eca7185
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_rotate_img.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_sequence_img.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_sequence_img.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..3aca6b9
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_sequence_img.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_static_img.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_static_img.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..d6e8d9d
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_static_img.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/dial_video.cpython-310.pyc b/dial_converter_tool/__pycache__/dial_video.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..aa97d99
Binary files /dev/null and b/dial_converter_tool/__pycache__/dial_video.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/img_convert.cpython-310.pyc b/dial_converter_tool/__pycache__/img_convert.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..106b086
Binary files /dev/null and b/dial_converter_tool/__pycache__/img_convert.cpython-310.pyc differ
diff --git a/dial_converter_tool/__pycache__/video_convert.cpython-310.pyc b/dial_converter_tool/__pycache__/video_convert.cpython-310.pyc
new file mode 100755 (executable)
index 0000000..3849d42
Binary files /dev/null and b/dial_converter_tool/__pycache__/video_convert.cpython-310.pyc differ
diff --git a/dial_converter_tool/common_types.py b/dial_converter_tool/common_types.py
new file mode 100755 (executable)
index 0000000..444fc6e
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from enum import Enum\r
+from ctypes import *\r
+\r
+class Point(Structure):\r
+    _fields_ = [\r
+        ('x', c_short),\r
+        ('y', c_short),\r
+    ]\r
+\r
+class Rect(Structure):\r
+    _fields_ = [\r
+        ('x', c_short),\r
+        ('y', c_short),\r
+        ('w', c_ushort),\r
+        ('h', c_ushort)\r
+    ]\r
+\r
+class ColorStop(Structure):\r
+    _fields_ = [\r
+        ('stop', c_float),\r
+        ('color', c_uint),\r
+    ]
\ No newline at end of file
diff --git a/dial_converter_tool/converter.py b/dial_converter_tool/converter.py
new file mode 100755 (executable)
index 0000000..502ed35
--- /dev/null
@@ -0,0 +1,184 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import os\r
+import re\r
+import struct\r
+import ctypes\r
+from ctypes import *\r
+import xml.sax\r
+from enum import Enum\r
+import img_convert\r
+import video_convert\r
+from dial_static_img import DialStaticImg\r
+from dial_sequence_img import DialSequenceImg\r
+from dial_rotate_img import DialRotateImg\r
+from dial_option_img import DialOptionImg\r
+from dial_digital_img import DialDigitalImg\r
+from dial_label import DialLabel\r
+from dial_arc_label import DialArcLabel\r
+from dial_box_progress import DialBoxProgress\r
+from dial_arc_progress import DialArcProgress\r
+from dial_video import DialVideo\r
+from dial_click import DialClick\r
+from dial_kaleidoscope import DialKaleidoscope\r
+\r
+class DialHeader(Structure):\r
+    _fields_ = [\r
+        ('dialName', c_char * 16),\r
+        ('width', c_short),\r
+        ('height', c_short),\r
+        ('version', c_char * 16),\r
+        ('previewImgId', c_ushort),\r
+        ('description', c_char * 128),\r
+        ('imgoffset', c_uint),\r
+        ('period', c_ubyte),\r
+        ('dialViewCount', c_ubyte),\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.imgoffset = 0\r
+        self.dialViewCount = 0\r
+        self.period = 0\r
+        self.viewType = []\r
+        self.viewPt = []\r
+\r
+    def parse_attributes(self, attributes):\r
+        title = attributes["title"]\r
+        self.dialName = bytes(title, encoding = "utf8")\r
+\r
+        description = attributes["description"]\r
+        self.description = bytes(description, encoding = "utf8")\r
+\r
+        size = attributes["size"]\r
+        width,height = size.split(' ')\r
+        self.width = int(width)\r
+        self.height = int(height)\r
+\r
+        version = attributes["version"]\r
+        self.version = bytes(version, encoding = "utf8")\r
+\r
+        previewStr = attributes["preview_img"]\r
+        self.previewImgId = img_convert.instance.convert_img(previewStr)\r
+\r
+        for attr in attributes.getNames():\r
+            if attr == "tile_width":\r
+                tile_width = int(attributes["tile_width"])\r
+                img_conver.instance.set_tile_width(tile_width)\r
+\r
+    def add_view(self, viewObj, viewType):\r
+        self.viewPt.append(viewObj)\r
+        self.viewType.append(viewType)\r
+        self.dialViewCount += 1\r
+\r
+    def get_bytes(self):\r
+        ret = bytes(self)\r
+        for index in range(self.dialViewCount):\r
+            ret += struct.pack('@b', self.viewType[index])\r
+        return ret\r
+\r
+    def get_size(self):\r
+        return sizeof(self) + sizeof(c_ubyte) * self.dialViewCount\r
+\r
+class DialConvertTool(xml.sax.ContentHandler):\r
+    parser = xml.sax.make_parser()\r
+    DIAL_STATIC_IMG_TYPE = 0\r
+    DIAL_SEQUENCE_IMG_TYPE = 1\r
+    DIAL_ROTATE_IMG_TYPE = 2\r
+    DIAL_OPTION_IMG_TYPE = 3\r
+    DIAL_DIGITAL_IMG_TYPE = 4\r
+    DIAL_LABEL_TYPE = 5\r
+    DIAL_ARC_LABEL_TYPE = 6\r
+    DIAL_BOX_PROGRESS_TYPE = 7\r
+    DIAL_ARC_PROGRESS_TYPE = 8\r
+    DIAL_VIDEO_TYPE = 9\r
+    DIAL_CLICK_TYPE = 10\r
+    DIAL_KALEIDOSCCOPE_TYPE = 11\r
+\r
+    def __init__(self):\r
+        self.inFile = ""\r
+        self.outPath = ""\r
+        self.header = DialHeader()\r
+        self.parser.setFeature(xml.sax.handler.feature_namespaces, 0)\r
+        self.parser.setContentHandler(self)\r
+\r
+    def startElement(self, tag, attributes):\r
+        viewTypeArray = []\r
+        if tag == "dial":\r
+            self.header.parse_attributes(attributes)\r
+        elif tag == "static_img":\r
+            view = DialStaticImg()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_STATIC_IMG_TYPE)\r
+        elif tag == "sequence_img":\r
+            view = DialSequenceImg()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_SEQUENCE_IMG_TYPE)\r
+        elif tag == "rotate_img":\r
+            view = DialRotateImg()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_ROTATE_IMG_TYPE)\r
+        elif tag == "option_img":\r
+            view = DialOptionImg()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_OPTION_IMG_TYPE)\r
+        elif tag == "digital_img":\r
+            view = DialDigitalImg()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_DIGITAL_IMG_TYPE)\r
+        elif tag == "label":\r
+            view = DialLabel()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_LABEL_TYPE)\r
+        elif tag == "arc_label":\r
+            view = DialArcLabel()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_ARC_LABEL_TYPE)\r
+        elif tag == "box_progress":\r
+            view = DialBoxProgress()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_BOX_PROGRESS_TYPE)\r
+        elif tag == "arc_progress":\r
+            view = DialArcProgress()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_ARC_PROGRESS_TYPE)\r
+        elif tag == "video":\r
+            view = DialVideo()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_VIDEO_TYPE)\r
+        elif tag == "click":\r
+            view = DialClick()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_CLICK_TYPE)\r
+        elif tag == "kaleidoscope":\r
+            view = DialKaleidoscope()\r
+            view.parse_attributes(attributes)\r
+            self.header.add_view(view, self.DIAL_KALEIDOSCCOPE_TYPE)\r
+\r
+    def endElement(self, tag):\r
+        if tag == "dial":\r
+            # create & open dstfile\r
+            outputfile = self.outPath + "/" + os.path.basename(self.inFile)[:-3] + "bin"\r
+            fb = open(outputfile, 'wb')\r
+            os.chmod(outputfile, 0o0755)\r
+            self._write_data_to_bin(fb)\r
+            fb.close()\r
+\r
+    def convert_xml_to_output(self, inFile, outPath):\r
+        self.inFile = inFile\r
+        self.outPath = outPath\r
+        self.parser.parse(inFile)\r
+\r
+    def _write_data_to_bin(self, fb):\r
+        self.header.imgoffset += self.header.get_size()\r
+        for view in self.header.viewPt:\r
+            if self.header.period < view.period:\r
+                self.header.period = view.period\r
+            self.header.imgoffset += view.get_size()\r
+\r
+        fb.write(self.header.get_bytes())\r
+        for view in self.header.viewPt:\r
+            if isinstance(view, DialVideo):\r
+                view.offset += self.header.imgoffset + img_convert.instance.get_size()\r
+            fb.write(view.get_bytes())\r
+        img_convert.instance.write_data_to_bin(fb)\r
+        video_convert.instance.write_data_to_bin(fb)\r
diff --git a/dial_converter_tool/dial_arc_label.py b/dial_converter_tool/dial_arc_label.py
new file mode 100755 (executable)
index 0000000..5f493fa
--- /dev/null
@@ -0,0 +1,67 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Point\r
+\r
+class DialArcLabel(Structure):\r
+    _fields_ = [\r
+        ('align', c_ubyte),\r
+        ('fontSize', c_ubyte),\r
+        ('center', Point),\r
+        ('radius', c_ushort),\r
+        ('rotateStart', c_short),\r
+        ('rotaeteEnd', c_short),\r
+        ('color', c_uint),\r
+        ('fontName', c_char * 64),\r
+        ('text', c_char * 64),\r
+        ('bindData', c_short),\r
+        ('isPeriod', c_bool)\r
+    ]\r
+    def __init__(self):\r
+        self.period = 0\r
+        self.isPeriod = False\r
+\r
+    def parse_attributes(self, attributes):\r
+        alignStr = attributes["align"]\r
+        if alignStr == "bottom":\r
+            self.align = 4\r
+        elif alignStr == "top":\r
+            self.align = 3\r
+        elif alignStr == "center":\r
+            self.align = 2\r
+        elif alignStr == "right":\r
+            self.align = 1\r
+        else:\r
+            self.align = 0\r
+\r
+        self.fontSize = int(attributes["font_size"])\r
+\r
+        x,y = attributes["center"].split(" ")\r
+        self.center.x = int(x)\r
+        self.center.y = int(y)\r
+\r
+        self.radius = int(attributes["radius"])\r
+        self.rotateStart = int(attributes["start_angle"])\r
+        self.rotaeteEnd = int(attributes["end_angle"])\r
+        self.color = int(attributes["color"], 16)\r
+        self.fontName = bytes(attributes["font"], encoding = "utf8")\r
+        self.text = bytes(attributes["text"], encoding = "utf8")\r
+        for attr in attributes.getNames():\r
+            if attr == "bind_data":\r
+                self.bindData = int(attributes["bind_data"])\r
+            elif attr == "period":\r
+                self.period = int(attributes["period"])\r
+                if self.period != 0:\r
+                    self.isPeriod = True\r
+        if self.isPeriod != 0 and self.bindData == 0:\r
+            print("[ERROR]:[bind_data] is not set, [period] cannot be set")\r
+            sys.exit(1)\r
+\r
+    def get_bytes(self):\r
+        return bytes(self)\r
+\r
+    def get_size(self):\r
+        return sizeof(self)
\ No newline at end of file
diff --git a/dial_converter_tool/dial_arc_progress.py b/dial_converter_tool/dial_arc_progress.py
new file mode 100755 (executable)
index 0000000..1ee9f56
--- /dev/null
@@ -0,0 +1,101 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Rect\r
+from common_types import ColorStop\r
+import img_convert\r
+\r
+class ProgressUnion(Union):\r
+    _fields_ = [\r
+        ('stopCount', c_ubyte),\r
+        ('imgId', c_ushort),\r
+        ('color', c_uint),\r
+    ]\r
+\r
+class DialArcProgress(Structure):\r
+    _fields_ = [\r
+        ('cap', c_ubyte),\r
+        ('isPeriod', c_bool),\r
+        ('radius', c_ushort),\r
+        ('startAngle', c_ushort),\r
+        ('endAngle', c_ushort),\r
+        ('lineWidth', c_ushort),\r
+        ('bindData', c_short),\r
+        ('bgColor', c_uint),\r
+        ('type', c_ubyte),\r
+        ('rect', Rect),\r
+        ('unionValue', ProgressUnion)\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.stop = []\r
+        self.period = 0\r
+        self.isPeriod = False\r
+\r
+    def parse_attributes(self, attributes):\r
+        x,y,w,h = attributes["rect"].split(" ")\r
+        self.rect.x = int(x)\r
+        self.rect.y = int(y)\r
+        self.rect.w = int(w)\r
+        self.rect.h = int(h)\r
+\r
+        cap = attributes["cap_type"]\r
+        if cap == "round":\r
+            self.cap = 1\r
+        else:\r
+            self.cap = 0\r
+\r
+        self.radius = int(attributes["radius"])\r
+        self.startAngle = int(attributes["start_angle"])\r
+        self.endAngle = int(attributes["end_angle"])\r
+        self.lineWidth = int(attributes["line_width"])\r
+        self.bindData = int(attributes["bind_data"])\r
+\r
+        attrList = attributes.getNames()\r
+        for attr in attrList:\r
+            if attr == "img_name":\r
+                self.unionValue.imgId = img_convert.instance.convert_img(attributes["img_name"])\r
+                self.type = 0\r
+                break\r
+            elif attr == "color":\r
+                self.unionValue.color = int(attributes["color"], 16)\r
+                self.type = 1\r
+                break\r
+            elif attr == "gradient_colors":\r
+                self.type = 2\r
+                stopList = attributes["gradient_stops"].split(" ")\r
+                colorList = attributes["gradient_colors"].split(" ")\r
+                if len(stopList) != len(colorList):\r
+                    print("[ERROR]:[gradient_stops] attr not equal [colorList] attr")\r
+                self.unionValue.stopCount = min(len(colorList), len(stopList))\r
+                for index in range(self.unionValue.stopCount):\r
+                    colorStop = ColorStop()\r
+                    colorStop.stop = float(stopList[index])\r
+                    colorStop.color = int(colorList[index], 16)\r
+                    self.stop.append(colorStop)\r
+                break\r
+\r
+        if "period" in attrList:\r
+            self.period = int(attributes["period"])\r
+            if (self.period != 0):\r
+                self.isPeriod = True\r
+\r
+        if "background_color" in attrList:\r
+            self.bgColor = int(attributes["background_color"], 16)\r
+\r
+    def get_bytes(self):\r
+        ret = bytes(self)\r
+        if self.type == 2:\r
+            for stop in self.stop:\r
+                ret += bytes(stop)\r
+        return ret\r
+\r
+    def get_size(self):\r
+        ret = sizeof(self)\r
+        if self.type == 2:\r
+            for stop in self.stop:\r
+                ret += sizeof(stop)\r
+        return ret
\ No newline at end of file
diff --git a/dial_converter_tool/dial_box_progress.py b/dial_converter_tool/dial_box_progress.py
new file mode 100755 (executable)
index 0000000..b427fe6
--- /dev/null
@@ -0,0 +1,103 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Rect\r
+from common_types import ColorStop\r
+import img_convert\r
+\r
+class ProgressUnion(Union):\r
+    _fields_ = [\r
+        ('stopCount', c_ubyte),\r
+        ('imgId', c_ushort),\r
+        ('color', c_uint),\r
+    ]\r
+\r
+class DialBoxProgress(Structure):\r
+    _fields_ = [\r
+        ('cap', c_ubyte),\r
+        ('direction', c_ubyte),\r
+        ('isPeriod', c_bool),\r
+        ('bindData', c_short),\r
+        ('bgColor', c_uint),\r
+        ('type', c_ubyte),\r
+        ('rect', Rect),\r
+        ('unionValue', ProgressUnion)\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.stop = []\r
+        self.isPeriod = False\r
+        self.period = 0\r
+\r
+    def parse_attributes(self, attributes):\r
+        x,y,w,h = attributes["rect"].split(" ")\r
+        self.rect.x = int(x)\r
+        self.rect.y = int(y)\r
+        self.rect.w = int(w)\r
+        self.rect.h = int(h)\r
+\r
+        cap = attributes["cap_type"]\r
+        if cap == "round":\r
+            self.cap = 1\r
+        else:\r
+            self.cap = 0\r
+\r
+        direction = attributes["direction"]\r
+        if direction == "left_to_right":\r
+            self.direction = 0\r
+        elif direction == "right_to_left":\r
+            self.direction = 1\r
+        elif direction == "top_to_bottom":\r
+            self.direction = 2\r
+        elif direction == "bottom_to_top":\r
+            self.direction = 3\r
+\r
+        self.bindData = int(attributes["bind_data"])\r
+\r
+        attrList = attributes.getNames()\r
+        for attr in attrList:\r
+            if attr == "img_name":\r
+                self.unionValue.imgId = img_convert.instance.convert_img(attributes["img_name"])\r
+                self.type = 0\r
+                break\r
+            elif attr == "color":\r
+                self.unionValue.color = int(attributes["color"], 16)\r
+                self.type = 1\r
+                break\r
+            elif attr == "gradient_colors":\r
+                stopList = attributes["gradient_stops"].split(" ")\r
+                colorList = attributes["gradient_colors"].split(" ")\r
+                if len(stopList) != len(colorList):\r
+                    print("[ERROR]:[gradient_stops] attr not equal [colorList] attr")\r
+                self.unionValue.stopCount = min(len(colorList), len(stopList))\r
+                for index in range(self.unionValue.stopCount):\r
+                    colorStop = ColorStop()\r
+                    colorStop.stop = float(stopList[index])\r
+                    colorStop.color = int(colorList[index], 16)\r
+                    self.stop.append(colorStop)\r
+                self.type = 2\r
+                break\r
+\r
+        if "period" in attrList:\r
+            self.period = int(attributes["period"])\r
+            if (self.period != 0) :\r
+                self.isPeriod = True\r
+        if "background_color" in attrList:\r
+            self.bgColor = int(attributes["background_color"], 16)\r
+\r
+    def get_bytes(self):\r
+        ret = bytes(self)\r
+        if self.type == 2:\r
+            for stop in self.stop:\r
+                ret += bytes(stop)\r
+        return ret\r
+\r
+    def get_size(self):\r
+        ret = sizeof(self)\r
+        if self.type == 2:\r
+            for stop in self.stop:\r
+                ret += sizeof(stop)\r
+        return ret
\ No newline at end of file
diff --git a/dial_converter_tool/dial_click.py b/dial_converter_tool/dial_click.py
new file mode 100755 (executable)
index 0000000..957dd7d
--- /dev/null
@@ -0,0 +1,46 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Rect\r
+\r
+class ClickTypeUnion(Union):\r
+    _fields_ = [\r
+        ('sliceId', c_uint),\r
+        ('bundleName', c_char * 64)\r
+    ]\r
+\r
+class DialClick(Structure):\r
+    _fields_ = [\r
+        ('type', c_ubyte),\r
+        ('rect', Rect),\r
+        ('unionType', ClickTypeUnion),\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.period = 0\r
+\r
+    def parse_attributes(self, attributes):\r
+        x,y,w,h = attributes["rect"].split(" ")\r
+        self.rect.x = int(x)\r
+        self.rect.y = int(y)\r
+        self.rect.w = int(w)\r
+        self.rect.h = int(h)\r
+\r
+        for attr in attributes.getNames():\r
+            if attr == "action_slice":\r
+                self.unionType.sliceId = int(attributes["action_slice"])\r
+                self.type = 0\r
+                break\r
+            elif attr == "action_bundle":\r
+                self.unionType.bundleName = bytes(attributes["action_bundle"], encoding = "utf8")\r
+                self.type = 1\r
+                break\r
+\r
+    def get_bytes(self):\r
+        return bytes(self)\r
+\r
+    def get_size(self):\r
+        return sizeof(self)
\ No newline at end of file
diff --git a/dial_converter_tool/dial_digital_img.py b/dial_converter_tool/dial_digital_img.py
new file mode 100755 (executable)
index 0000000..a19c1b3
--- /dev/null
@@ -0,0 +1,71 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Point\r
+import img_convert\r
+\r
+class DialDigitalImg(Structure):\r
+    _fields_ = [\r
+        ('alignType', c_ubyte, 4),\r
+        ('integerLength', c_ubyte, 4),\r
+        ('decimalPrecision', c_ubyte),\r
+        ('imgIds', c_ushort * 10),\r
+        ('signImgId', c_ushort),\r
+        ('decimalPointImgId', c_ushort),\r
+        ('space', c_ushort),\r
+        ('alignPosition', Point),\r
+        ('bindData', c_short),\r
+        ('isPeriod', c_bool)\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.period = 0\r
+        self.isPeriod = False\r
+\r
+    def parse_attributes(self, attributes):\r
+        imgNames = attributes["img_names"].split(",")\r
+        length = len(imgNames)\r
+        if length < 10:\r
+            print("[ERR]:tag:[digital_img] attr[img_names] less than 10!")\r
+            sys.exit(1)\r
+        else:\r
+            for index in range(10):\r
+                self.imgIds[index] = img_convert.instance.convert_img(imgNames[index])\r
+\r
+        self.space = int(attributes["space"])\r
+        alignStr = attributes["align"]\r
+        if alignStr == "right":\r
+            self.alignType = 2\r
+        elif alignStr == "center":\r
+            self.alignType = 1\r
+        else:\r
+            self.alignType = 0\r
+        x,y = attributes["align_pos"].split(" ")\r
+        self.alignPosition.x = int(x)\r
+        self.alignPosition.y = int(y)\r
+        self.bindData = int(attributes["bind_data"])\r
+\r
+        for attr in attributes.getNames():\r
+            if attr == "sign_img_name":\r
+                signImgName = attributes["sign_img_name"]\r
+                self.signImgId = img_convert.instance.convert_img(signImgName)\r
+            elif attr == "integer_length":\r
+                self.integerLength = int(attributes["integer_length"])\r
+            elif attr == "img_decimal_point":\r
+                decimalPointImgName = attributes["img_decimal_point"]\r
+                self.decimalPointImgId = img_convert.instance.convert_img(decimalPointImgName)\r
+            elif attr == "decimal_precision":\r
+                self.decimalPrecision = int(attributes["decimal_precision"])\r
+            elif attr == "period":\r
+                self.period = int(attributes["period"])\r
+                if self.period != 0:\r
+                    self.isPeriod = True\r
+\r
+    def get_bytes(self):\r
+        return bytes(self)\r
+\r
+    def get_size(self):\r
+        return sizeof(self)
\ No newline at end of file
diff --git a/dial_converter_tool/dial_kaleidoscope.py b/dial_converter_tool/dial_kaleidoscope.py
new file mode 100755 (executable)
index 0000000..450a6db
--- /dev/null
@@ -0,0 +1,34 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+import img_convert\r
+\r
+class DialKaleidoscope(Structure):\r
+    _fields_ = [\r
+        ('imgId', c_ushort),\r
+        ('rotateEventFactor', c_float),\r
+        ('rotateAnimatorValue', c_float)\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.imgId = 0\r
+        self.rotateEventFactor = 1.0\r
+        self.rotateAnimatorValue = 0.0\r
+        self.period = 0\r
+\r
+    def parse_attributes(self, attributes):\r
+        self.imgId = img_convert.instance.convert_img(attributes["img_name"])\r
+        for attr in attributes.getNames():\r
+            if attr == "crown_rotate_step":\r
+                self.rotateEventFactor = float(attributes["crown_rotate_step"])\r
+            elif attr == "animator_rotate_step":\r
+                self.rotateAnimatorValue = float(attributes["animator_rotate_step"])\r
+\r
+    def get_bytes(self):\r
+        return bytes(self)\r
+\r
+    def get_size(self):\r
+        return sizeof(self)\r
diff --git a/dial_converter_tool/dial_label.py b/dial_converter_tool/dial_label.py
new file mode 100755 (executable)
index 0000000..a2549bf
--- /dev/null
@@ -0,0 +1,85 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Rect\r
+\r
+class DialLabel(Structure):\r
+    _fields_ = [\r
+        ('breakMode', c_ubyte),\r
+        ('align', c_ubyte),\r
+        ('fontSize', c_ubyte),\r
+        ('isPeriod', c_bool),\r
+        ('rect', Rect),\r
+        ('color', c_uint),\r
+        ('fontName', c_char * 64),\r
+        ('text', c_char * 64),\r
+        ('bindData', c_short)\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.period = 0\r
+        self.isPeriod = False\r
+\r
+    def parse_attributes(self, attributes):\r
+        x,y,w,h = attributes["rect"].split(" ")\r
+        self.rect.x = int(x)\r
+        self.rect.y = int(y)\r
+        self.rect.w = int(w)\r
+        self.rect.h = int(h)\r
+\r
+        mode = attributes["break_mode"]\r
+        if mode == "adapt":\r
+            self.breakMode = 0\r
+        elif mode == "stretch":\r
+            self.breakMode = 1\r
+        elif mode == "wrap":\r
+            self.breakMode = 2\r
+        elif mode == "ellipsis":\r
+            self.breakMode = 3\r
+        elif mode == "marquee":\r
+            self.breakMode = 4\r
+        elif mode == "clip":\r
+            self.breakMode = 5\r
+        else:\r
+            self.breakMode = 3\r
+            print("[WARING][label:break_mode]Incorrect input:", mode)\r
+\r
+        alignStr = attributes["align"]\r
+        if alignStr == "bottom":\r
+            self.align = 4\r
+        elif alignStr == "top":\r
+            self.align = 3\r
+        elif alignStr == "center":\r
+            self.align = 2\r
+        elif alignStr == "right":\r
+            self.align = 1\r
+        elif alignStr == "left":\r
+            self.align = 0\r
+        else:\r
+            self.align = 0\r
+            print("[WARING][label:align]Incorrect input:", alignStr)\r
+\r
+        self.fontSize = int(attributes["font_size"])\r
+        self.color = int(attributes["color"], 16)\r
+        self.fontName = bytes(attributes["font"], encoding = "utf8")\r
+        self.text = bytes(attributes["text"], encoding = "utf8")\r
+\r
+        for attr in attributes.getNames():\r
+            if attr == "bind_data":\r
+                self.bindData = int(attributes["bind_data"])\r
+            elif attr == "period":\r
+                self.period = int(attributes["period"])\r
+                if self.period != 0:\r
+                    self.isPeriod = True\r
+        if self.isPeriod != 0 and self.bindData == 0:\r
+            print("[ERROR]:[bind_data] is not set, [period] cannot be set")\r
+            sys.exit(1)\r
+\r
+    def get_bytes(self):\r
+        return bytes(self)\r
+\r
+    def get_size(self):\r
+        return sizeof(self)
\ No newline at end of file
diff --git a/dial_converter_tool/dial_option_img.py b/dial_converter_tool/dial_option_img.py
new file mode 100755 (executable)
index 0000000..e5e318a
--- /dev/null
@@ -0,0 +1,48 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Point\r
+import img_convert\r
+\r
+class DialOptionImg(Structure):\r
+    _fields_ = [\r
+        ('pos', Point),\r
+        ('bindData', c_short),\r
+        ('isPeriod', c_bool),\r
+        ('count', c_ubyte),\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.imgId = []\r
+        self.period = 0\r
+        self.isPeriod = False\r
+\r
+    def parse_attributes(self, attributes):\r
+        x,y = attributes["position"].split(" ")\r
+        self.pos.x = int(x)\r
+        self.pos.y = int(y)\r
+\r
+        self.bindData = int(attributes["bind_data"])\r
+\r
+        imgNames = attributes["img_names"].split(",")\r
+        self.count = len(imgNames)\r
+        for img in imgNames:\r
+            imgId = img_convert.instance.convert_img(img)\r
+            self.imgId.append(imgId)\r
+\r
+        if "period" in attributes.getNames():\r
+            self.period = int(attributes["period"])\r
+            if self.period != 0:\r
+                self.isPeriod = True\r
+\r
+    def get_bytes(self):\r
+        ret = bytes(self)\r
+        for index in range(self.count):\r
+            ret += struct.pack('@H', self.imgId[index])\r
+        return ret\r
+\r
+    def get_size(self):\r
+        return sizeof(self) + sizeof(c_ushort) * self.count
\ No newline at end of file
diff --git a/dial_converter_tool/dial_rotate_img.py b/dial_converter_tool/dial_rotate_img.py
new file mode 100755 (executable)
index 0000000..a7d6e2e
--- /dev/null
@@ -0,0 +1,49 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Point\r
+import img_convert\r
+\r
+class DialRotateImg(Structure):\r
+    _fields_ = [\r
+        ('pos', Point),\r
+        ('center', Point),\r
+        ('rotateStart', c_short),\r
+        ('rotaeteEnd', c_short),\r
+        ('imgId', c_ushort),\r
+        ('bindData', c_short),\r
+        ('isPeriod', c_bool)\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.period = 0\r
+        self.isPeriod = False\r
+\r
+    def parse_attributes(self, attributes):\r
+        x,y = attributes["position"].split(" ")\r
+        self.pos.x = int(x)\r
+        self.pos.y = int(y)\r
+\r
+        x,y = attributes["rotate_center"].split(" ")\r
+        self.center.x = round(float(x))\r
+        self.center.y = round(float(y))\r
+\r
+        self.rotateStart = int(attributes["rotate_start"])\r
+        self.rotaeteEnd = int(attributes["rotate_end"])\r
+\r
+        self.bindData = int(attributes["bind_data"])\r
+\r
+        self.imgId = img_convert.instance.convert_img(attributes["img_name"])\r
+        if "period" in attributes.getNames():\r
+            self.period = int(attributes["period"])\r
+            if self.period != 0:\r
+                self.isPeriod = True\r
+\r
+    def get_bytes(self):\r
+        return bytes(self)\r
+\r
+    def get_size(self):\r
+        return sizeof(self)
\ No newline at end of file
diff --git a/dial_converter_tool/dial_sequence_img.py b/dial_converter_tool/dial_sequence_img.py
new file mode 100755 (executable)
index 0000000..09781e8
--- /dev/null
@@ -0,0 +1,52 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Point\r
+import img_convert\r
+\r
+class DialSequenceImg(Structure):\r
+    _fields_ = [\r
+        ('pos', Point),\r
+        ('interval', c_ushort),\r
+        ('repeat', c_bool),\r
+        ('imgNum', c_ubyte),\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.imgId = []\r
+        self.period = 0\r
+\r
+    def parse_attributes(self, attributes):\r
+        x,y = attributes["position"].split(" ")\r
+        self.pos.x = int(x)\r
+        self.pos.y = int(y)\r
+\r
+        if attributes["repeat"].lower() == "true":\r
+            self.repeat = True\r
+        elif attributes["repeat"].lower() == "false":\r
+            self.repeat = False\r
+\r
+        interval = int(attributes["interval"])\r
+        if interval < 0:\r
+            print("[ERROR]: [interval] attr less than 0")\r
+            sys.exit(1)\r
+        else:\r
+            self.interval = interval\r
+\r
+        imgNames = attributes["img_names"].split(",")\r
+        self.imgNum = len(imgNames)\r
+        for img in imgNames:\r
+            imgId = img_convert.instance.convert_img(img)\r
+            self.imgId.append(imgId)\r
+\r
+    def get_bytes(self):\r
+        ret = bytes(self)\r
+        for index in range(self.imgNum):\r
+            ret += struct.pack('@H', self.imgId[index])\r
+        return ret\r
+\r
+    def get_size(self):\r
+        return sizeof(self) + sizeof(c_ushort) * self.imgNum
\ No newline at end of file
diff --git a/dial_converter_tool/dial_static_img.py b/dial_converter_tool/dial_static_img.py
new file mode 100755 (executable)
index 0000000..4e8302e
--- /dev/null
@@ -0,0 +1,46 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Point\r
+import img_convert\r
+\r
+class DialStaticImg(Structure):\r
+    _fields_ = [\r
+        ('pos', Point),\r
+        ('center', Point),\r
+        ('rotate', c_float),\r
+        ('imgId', c_ushort)\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.imgId = 0\r
+        self.pos.x = 0\r
+        self.pos.y = 0\r
+        self.center.x = 0\r
+        self.center.y = 0\r
+        self.rotate  = 0.0\r
+        self.period = 0\r
+\r
+    def parse_attributes(self, attributes):\r
+        x,y = attributes["position"].split(" ")\r
+        self.pos.x = int(x)\r
+        self.pos.y = int(y)\r
+\r
+        self.imgId = img_convert.instance.convert_img(attributes["img_name"])\r
+\r
+        for attr in attributes.getNames():\r
+            if attr == "center":\r
+                x,y = attributes["center"].split(" ")\r
+                self.center.x = int(x)\r
+                self.center.y = int(y)\r
+            elif attr == "rotate":\r
+                self.rotate = float(attributes["rotate"])\r
+\r
+    def get_bytes(self):\r
+        return bytes(self)\r
+\r
+    def get_size(self):\r
+        return sizeof(self)\r
diff --git a/dial_converter_tool/dial_video.py b/dial_converter_tool/dial_video.py
new file mode 100755 (executable)
index 0000000..f83c85c
--- /dev/null
@@ -0,0 +1,39 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+from xml.dom.minidom import parse\r
+from ctypes import *\r
+from common_types import Rect\r
+import video_convert\r
+import img_convert\r
+\r
+class DialVideo(Structure):\r
+    _fields_ = [\r
+        ('rect', Rect),\r
+        ('offset', c_uint),\r
+        ('colorKey', c_uint),\r
+        ('imgId', c_uint),\r
+    ]\r
+\r
+    def __init__(self):\r
+        self.period = 0\r
+\r
+    def parse_attributes(self, attributes):\r
+        x,y,w,h = attributes["rect"].split(" ")\r
+        self.rect.x = int(x)\r
+        self.rect.y = int(y)\r
+        self.rect.w = int(w)\r
+        self.rect.h = int(h)\r
+\r
+        self.colorKey = int(attributes["color_key"], 16)\r
+\r
+        self.offset = video_convert.instance.convert_video(attributes["source"])\r
+\r
+        self.imgId = img_convert.instance.convert_img(attributes["preview_frame"])\r
+\r
+    def get_bytes(self):\r
+        return bytes(self)\r
+\r
+    def get_size(self):\r
+        return sizeof(self)
\ No newline at end of file
diff --git a/dial_converter_tool/dll/linux_cs/libcodec.so b/dial_converter_tool/dll/linux_cs/libcodec.so
new file mode 100755 (executable)
index 0000000..1b99f0b
Binary files /dev/null and b/dial_converter_tool/dll/linux_cs/libcodec.so differ
diff --git a/dial_converter_tool/dll/linux_es/libcodec.so b/dial_converter_tool/dll/linux_es/libcodec.so
new file mode 100755 (executable)
index 0000000..ddb8838
Binary files /dev/null and b/dial_converter_tool/dll/linux_es/libcodec.so differ
diff --git a/dial_converter_tool/dll/x64/release_cs/ICE_V5R1_BLOCK_HTC.dll b/dial_converter_tool/dll/x64/release_cs/ICE_V5R1_BLOCK_HTC.dll
new file mode 100755 (executable)
index 0000000..21b76ed
Binary files /dev/null and b/dial_converter_tool/dll/x64/release_cs/ICE_V5R1_BLOCK_HTC.dll differ
diff --git a/dial_converter_tool/dll/x64/release_cs/ICE_V5R1_BLOCK_HTC.lib b/dial_converter_tool/dll/x64/release_cs/ICE_V5R1_BLOCK_HTC.lib
new file mode 100755 (executable)
index 0000000..fcdc59f
Binary files /dev/null and b/dial_converter_tool/dll/x64/release_cs/ICE_V5R1_BLOCK_HTC.lib differ
diff --git a/dial_converter_tool/dll/x64/release_es/ICE_V5R1_BLOCK_HTC.dll b/dial_converter_tool/dll/x64/release_es/ICE_V5R1_BLOCK_HTC.dll
new file mode 100755 (executable)
index 0000000..4b74cd6
Binary files /dev/null and b/dial_converter_tool/dll/x64/release_es/ICE_V5R1_BLOCK_HTC.dll differ
diff --git a/dial_converter_tool/dll/x64/release_es/ICE_V5R1_BLOCK_HTC.lib b/dial_converter_tool/dll/x64/release_es/ICE_V5R1_BLOCK_HTC.lib
new file mode 100755 (executable)
index 0000000..811632b
Binary files /dev/null and b/dial_converter_tool/dll/x64/release_es/ICE_V5R1_BLOCK_HTC.lib differ
diff --git a/dial_converter_tool/img_convert.py b/dial_converter_tool/img_convert.py
new file mode 100755 (executable)
index 0000000..50abf97
--- /dev/null
@@ -0,0 +1,300 @@
+import base64\r
+from PIL import Image\r
+from io import BytesIO\r
+import cv2\r
+import ctypes\r
+from ctypes import *\r
+from PIL import Image\r
+\r
+import os\r
+import sys\r
+import struct\r
+import time\r
+import platform\r
+import numpy as np\r
+import pickle as p\r
+import requests\r
+import matplotlib.pyplot as pyplot\r
+\r
+global dll\r
+if platform.system().lower() == 'windows':\r
+    dll = ctypes.CDLL(r".\dll\x64\release_cs\ICE_V5R1_BLOCK_HTC.dll")\r
+elif platform.system().lower() == 'linux':\r
+    dll = ctypes.CDLL(sys.path[0] + r"/dll/linux_cs/libcodec.so")\r
+\r
+class Header(ctypes.Structure):\r
+    _fields_ = [\r
+        ("width", c_uint),\r
+        ("height", c_uint),\r
+        ("stride", c_uint),\r
+        ("pixel_format", c_uint),\r
+        ("tile_width", c_uint),\r
+        ("mode_alpha", c_uint),\r
+        ("mode_rgb", c_uint)\r
+    ]\r
+\r
+class BsData(ctypes.Structure):\r
+    _fields_ = [\r
+        ("bs_data", POINTER(c_ubyte)),\r
+        ("data_size", c_uint),\r
+        ("cmp_ratio", c_uint),\r
+        ("is_valid", c_uint),\r
+        ("subjective_review", c_uint),\r
+        ("para", Header)\r
+    ]\r
+\r
+class AutoCmpOutput(ctypes.Structure):\r
+    _fields_ = [\r
+        ("cmp_bs0", POINTER(BsData)),\r
+        ("cmp_bs1", POINTER(BsData)),\r
+        ("cmp_bs2", POINTER(BsData)),\r
+        ("cmp_bs3", POINTER(BsData)),\r
+        ("auto_cmp_mode", c_uint),\r
+        ("valid_bs_num", c_uint)\r
+    ]\r
+\r
+class CmpInput(ctypes.Structure):\r
+    _fields_ = [\r
+        ("width", c_uint),\r
+        ("height", c_uint),\r
+        ("stride", c_uint),\r
+        ("pixel_format", c_uint),\r
+        ("tile_width", c_uint),\r
+        ("mode_alpha", c_uint),\r
+        ("mode_rgb", c_uint),\r
+        ("red_channel", POINTER(c_ubyte)),\r
+        ("green_channel", POINTER(c_ubyte)),\r
+        ("blue_channel", POINTER(c_ubyte)),\r
+        ("alpha_channel", POINTER(c_ubyte))\r
+    ]\r
+\r
+class AutoCmpInput(ctypes.Structure):\r
+    _fields_ =[\r
+        ("auto_cmp_mode", c_uint),\r
+        ("high_quality_mode", c_uint),\r
+        ("high_cmp_ratio_mode", c_uint),\r
+        ("cmp_in", POINTER(CmpInput))\r
+    ]\r
+\r
+class BinHeader(ctypes.Structure):\r
+    _fields_ = [\r
+        ("dirId", c_uint),\r
+        ("count", c_uint)\r
+    ]\r
+\r
+class SeekInfo(ctypes.Structure):\r
+    _fields_ = [\r
+        ("offset", c_uint),\r
+        ("size", c_uint)\r
+    ]\r
+\r
+class ImageHeader(ctypes.Structure):\r
+    _fields_ = [\r
+        ("colorMode", c_uint, 8),\r
+        ("version", c_uint, 4),\r
+        ("compressMode", c_uint, 4),\r
+        ("reserved", c_uint, 16),\r
+        ("width", c_ushort),\r
+        ("height", c_ushort)\r
+    ]\r
+\r
+class ImageConverTool():\r
+    binHeader = BinHeader()\r
+    binHeader.dirId = 0xfef\r
+    seekInfo = []\r
+    imageHeader = []\r
+    imageData = []\r
+    imageNum = 0\r
+    isConvertedFile = []\r
+\r
+    def __init__(self):\r
+        self.markCurOffset = 0\r
+        self.width = 0\r
+        self.height = 0\r
+        self.file_alpha = False\r
+        self.cmp_mode = "HFBC"\r
+        self.color_fmt = ' '\r
+        self.align = 1\r
+        self.tile_width = 6\r
+        self.mode_alpha = 1\r
+        self.mode_rgb = 1\r
+        self.auto_cmp_mode = 0\r
+        self.high_quality_mode = 0\r
+        self.high_cmp_ratio_mode = 0\r
+        self.version = 1\r
+\r
+    def set_tile_width(self, tile_width):\r
+        if tile_width not in self.tile_width_support:\r
+            print("[ERROR]:The tile_width value is not supported.")\r
+            sys.exit(1)\r
+\r
+        self.tile_width = tile_width\r
+\r
+    def _convert(self):\r
+        width, height = self.image.size\r
+        self.width = width\r
+        self.height = height\r
+        self.stride_pixel = (self.width + self.align - 1) // self.align * self.align\r
+        if len(self.image.split()) > 3:\r
+            self.file_alpha = True\r
+        else:\r
+            self.file_alpha = False\r
+\r
+        # initialize CmpInput\r
+        cmp_input = CmpInput()\r
+        self._get_cmp_input(cmp_input)\r
+        auto_cmp_input = AutoCmpInput()\r
+        self._get_auto_cmp_input(auto_cmp_input, cmp_input)\r
+\r
+        # call GetBufferSize to get buffer size\r
+        # initialize CmpOutput\r
+        auto_cmp_output = AutoCmpOutput()\r
+\r
+        cmp_bs0 = BsData()\r
+        buf_size0 = dll.ice_v5r1_block_get_buffer_size(byref(cmp_input))  # 压缩后输出数据的大小\r
+        cmp_bs0.bs_data = (c_ubyte * buf_size0)()\r
+        auto_cmp_output.cmp_bs0 = ctypes.cast(pointer(cmp_bs0), POINTER(BsData))\r
+        ret = dll.ice_v5r1_block_htc_auto_cmp(byref(auto_cmp_input), byref(auto_cmp_output))  # 对输入数据进行压缩返回值是函数正常运行标志位\r
+\r
+        # add imageinfo to list\r
+        self.binHeader.count += 1\r
+\r
+        imageInfo = ImageHeader()\r
+        imageInfo.width = self.width\r
+        imageInfo.height = self.height\r
+        imageInfo.colorMode = self._get_color_mode()\r
+        imageInfo.version = 1\r
+        imageInfo.compressMode = 4\r
+        imageInfo.reserved = 0\r
+        seekInfo = SeekInfo()\r
+        seekInfo.offset = self.markCurOffset\r
+        seekInfo.size = sizeof(imageInfo) + cmp_bs0.data_size\r
+        self.markCurOffset += seekInfo.size\r
+        self.seekInfo.append(seekInfo)\r
+        self.imageHeader.append(imageInfo)\r
+        self.imageData.append(cmp_bs0)\r
+        self.imageNum += 1\r
+        return self.imageNum\r
+\r
+    def _check_path(self, path):\r
+        if not os.path.exists(path):\r
+            print("[ERROR]:", path, "is not exist")\r
+            return False\r
+        else:\r
+            if (not path[-3:].lower() == "png") and (not path[-3:].lower() == "jpg"):\r
+                print("[ERROR]:", path, "is not jpg or png format image")\r
+                return False\r
+        return True\r
+\r
+    def convert_img(self, path):\r
+        if path in self.isConvertedFile:\r
+            return self.isConvertedFile.index(path) + 1\r
+\r
+        if not self._check_path(path):\r
+            sys.exit(1)\r
+\r
+        self.image = Image.open(path)\r
+        if self.image.mode == 'RGBA':\r
+            self.color_fmt = 'ARGB8888'\r
+        elif self.image.mode == 'RGB':\r
+            self.color_fmt = 'RGB888'\r
+        self.isConvertedFile.append(path)\r
+        return self._convert()\r
+\r
+    def _get_cmp_px_format(self):\r
+        if self.color_fmt == 'RGB565':\r
+            return 2\r
+        elif self.color_fmt == 'RGB888':\r
+            return 0\r
+        elif self.color_fmt == 'ARGB8888':\r
+            return 1\r
+\r
+    def _get_color_mode(self):\r
+        if self.color_fmt == 'RGB565':\r
+            return 2\r
+        elif self.color_fmt == 'RGB888':\r
+            return 1\r
+        elif self.color_fmt == 'ARGB8888':\r
+            return 0\r
+\r
+    def _get_auto_cmp_input(self, auto_cmp_input, cmp_input):\r
+        auto_cmp_input.auto_cmp_mode = self.auto_cmp_mode\r
+        auto_cmp_input.high_quality_mode = self.high_quality_mode\r
+        auto_cmp_input.high_cmp_ratio_mode = self.high_cmp_ratio_mode\r
+        auto_cmp_input.cmp_in = ctypes.cast(pointer(cmp_input), POINTER(CmpInput))\r
+\r
+    def _get_cmp_input(self, cmp_input):\r
+        cmp_input.width = self.width\r
+        cmp_input.height = self.height\r
+        cmp_input.stride = self.width\r
+        cmp_input.tile_width = self.tile_width\r
+        cmp_input.mode_alpha = self.mode_alpha\r
+        cmp_input.mode_rgb = self.mode_rgb\r
+        cmp_input.pixel_format = self._get_cmp_px_format()\r
+        size = self.width * self.height\r
+        red = (c_ubyte * size)()\r
+        green = (c_ubyte * size)()\r
+        blue = (c_ubyte * size)()\r
+        alpha = (c_ubyte * size)()\r
+\r
+        for row in range(self.height):\r
+            for col in range(self.width):\r
+                position = row * self.width + col\r
+                red[position] = self.image.getdata()[position][0]\r
+                green[position] = self.image.getdata()[position][1]\r
+                blue[position] = self.image.getdata()[position][2]\r
+                if self.file_alpha == False:\r
+                    alpha[position] = 0xFF\r
+                else:\r
+                    alpha[position] = self.image.getdata()[position][3]\r
+        cmp_input.red_channel = red\r
+        cmp_input.green_channel = green\r
+        cmp_input.blue_channel = blue\r
+        cmp_input.alpha_channel = alpha\r
+\r
+    def write_data_to_bin(self, fb):\r
+        fb.write(bytes(self.binHeader))\r
+        for seek in self.seekInfo:\r
+            fb.write(bytes(seek))\r
+\r
+        for index in range(0, self.imageNum):\r
+            bt = bytearray()\r
+            color_fmt = self.imageHeader[index].colorMode\r
+            header = color_fmt + (self.imageHeader[index].width << 32) + \\r
+                    (self.imageHeader[index].height << 48) + (self.imageHeader[index].version << 8)\r
+            header_bin = struct.pack("<Q", header)\r
+\r
+            if (self.cmp_mode == "HFBC"):\r
+                header = header + (4 << 12)\r
+            elif (self.cmp_mode == "HFBC_ABYPASS"):\r
+                header = header + (5 << 12)\r
+\r
+            header_bin = struct.pack("<Q", header)\r
+            bt += header_bin\r
+            for i in range(self.imageData[index].data_size):\r
+                bt += struct.pack("B", self.imageData[index].bs_data[i])\r
+            fb.writelines([bt])\r
+\r
+    def get_size(self):\r
+        ret = sizeof(self.binHeader)\r
+        ret += len(self.seekInfo) * sizeof(SeekInfo)\r
+        for index in range(0, self.imageNum):\r
+            bt = bytearray()\r
+            color_fmt = self._get_cmp_px_format()\r
+            header = color_fmt + (self.imageHeader[index].width << 32) + \\r
+                    (self.imageHeader[index].height << 48) + (self.imageHeader[index].version << 8)\r
+            header_bin = struct.pack("<Q", header)\r
+\r
+            if (self.cmp_mode == "HFBC"):\r
+                header = header + (4 << 12)\r
+            elif (self.cmp_mode == "HFBC_ABYPASS"):\r
+                header = header + (5 << 12)\r
+\r
+            header_bin = struct.pack("<Q", header)\r
+            bt += header_bin\r
+            for i in range(self.imageData[index].data_size):\r
+                bt += struct.pack("B", self.imageData[index].bs_data[i])\r
+            ret += len(bt)\r
+        return ret\r
+\r
+instance = ImageConverTool()\r
diff --git a/dial_converter_tool/main.py b/dial_converter_tool/main.py
new file mode 100755 (executable)
index 0000000..42f8c15
--- /dev/null
@@ -0,0 +1,47 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+# 1\ 解析命令 python main.py -d [DIR] -o [OUT_DIR]\r
+# 2\ 循环执行svg解析写入\r
+import sys\r
+import os\r
+import argparse\r
+from converter import DialConvertTool\r
+\r
+def GetParameters():\r
+    parser = argparse.ArgumentParser()\r
+\r
+    parser.add_argument('-file', '-f', type=str, default='', required=False,\r
+                        help='The svg file need to be converted.')\r
+\r
+    parser.add_argument('-dir', '-d', type=str, default='', required=False,\r
+                        help='The directory needs to be converted.')\r
+\r
+    parser.add_argument('-output', type=str, default=os.getcwd() + "/out", required=False,\r
+                        help='output dir')\r
+\r
+    config = parser.parse_args()\r
+    return config\r
+\r
+if __name__ == "__main__":\r
+    userInput = GetParameters()\r
+    outputPath = userInput.output\r
+    inputFile = userInput.file\r
+    inputDir = userInput.dir\r
+    # Create an output folder.\r
+    print("output dir : " + outputPath)\r
+    if not os.path.exists(outputPath):\r
+        os.mkdir(outputPath)\r
+\r
+    if not os.path.isdir(inputFile) and inputFile[-3:].lower() == "xml":\r
+        print("input file : " + inputFile)\r
+        converter = DialConvertTool()\r
+        converter.convert_xml_to_output(inputFile, outputPath)\r
+\r
+    files = os.listdir(inputDir)\r
+    print("input dir : " + inputDir)\r
+    for file in files:\r
+        if not os.path.isdir(file) and file[-3:].lower() == "xml":\r
+            print("xml file : " + file)\r
+            converter = DialConvertTool()\r
+            converter.convert_xml_to_output(inputDir + "/" + file, outputPath)\r
+\r
diff --git a/dial_converter_tool/video_convert.py b/dial_converter_tool/video_convert.py
new file mode 100755 (executable)
index 0000000..d447a16
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/python\r
+# coding: utf-8\r
+import sys\r
+import struct\r
+import ctypes\r
+from ctypes import *\r
+\r
+class VideoConvertTool:\r
+    def __init__(self):\r
+        self.videoNum = 0\r
+        self.videoName = []\r
+        self.videoIndex = []\r
+        self.videoData = bytearray()\r
+\r
+    def convert_video(self, path):\r
+        if path in self.videoName:\r
+            index = self.videoName.index(path)\r
+            return self.videoIndex[index]\r
+        fp = open(path, 'rb')\r
+        data = fp.read()\r
+        fp.close()\r
+        self.videoName.append(path)\r
+        self.videoNum += 1\r
+        ret = len(self.videoData)\r
+        self.videoIndex.append(ret)\r
+        self.videoData += data\r
+        return ret\r
+\r
+    def write_data_to_bin(self, fb):\r
+        fb.write(self.videoData)\r
+\r
+instance = VideoConvertTool()\r
diff --git a/dial_lzma/101/sport.lzma b/dial_lzma/101/sport.lzma
new file mode 100755 (executable)
index 0000000..bad8d85
Binary files /dev/null and b/dial_lzma/101/sport.lzma differ
diff --git a/dial_lzma/101/sport.png b/dial_lzma/101/sport.png
new file mode 100755 (executable)
index 0000000..7b684e6
Binary files /dev/null and b/dial_lzma/101/sport.png differ
diff --git a/dial_lzma/101/说明.txt b/dial_lzma/101/说明.txt
new file mode 100755 (executable)
index 0000000..18d09fe
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:运动\r
+英文名:Sport\r
+标签:经典指针 运动
\ No newline at end of file
diff --git a/dial_lzma/102/kaleidoscope.lzma b/dial_lzma/102/kaleidoscope.lzma
new file mode 100755 (executable)
index 0000000..73130a8
Binary files /dev/null and b/dial_lzma/102/kaleidoscope.lzma differ
diff --git a/dial_lzma/102/kaleidoscope.png b/dial_lzma/102/kaleidoscope.png
new file mode 100755 (executable)
index 0000000..3f00083
Binary files /dev/null and b/dial_lzma/102/kaleidoscope.png differ
diff --git a/dial_lzma/102/说明.txt b/dial_lzma/102/说明.txt
new file mode 100755 (executable)
index 0000000..1e9a45c
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:万花筒\r
+英文名:Kaleidoscope\r
+标签:经典指针;动态
\ No newline at end of file
diff --git a/dial_lzma/1028/KUMI.lzma b/dial_lzma/1028/KUMI.lzma
new file mode 100755 (executable)
index 0000000..5457dd3
Binary files /dev/null and b/dial_lzma/1028/KUMI.lzma differ
diff --git a/dial_lzma/1028/KUMI.png b/dial_lzma/1028/KUMI.png
new file mode 100755 (executable)
index 0000000..ee19ac9
Binary files /dev/null and b/dial_lzma/1028/KUMI.png differ
diff --git a/dial_lzma/1028/说明.txt b/dial_lzma/1028/说明.txt
new file mode 100755 (executable)
index 0000000..374c9c8
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:KUMI\r
+英文名:KUMI\r
+标签:数码表盘
\ No newline at end of file
diff --git a/dial_lzma/103/jellyfish-app.png b/dial_lzma/103/jellyfish-app.png
new file mode 100755 (executable)
index 0000000..a795ad7
Binary files /dev/null and b/dial_lzma/103/jellyfish-app.png differ
diff --git a/dial_lzma/103/jellyfish.lzma b/dial_lzma/103/jellyfish.lzma
new file mode 100755 (executable)
index 0000000..f4a073e
Binary files /dev/null and b/dial_lzma/103/jellyfish.lzma differ
diff --git a/dial_lzma/103/说明.txt b/dial_lzma/103/说明.txt
new file mode 100755 (executable)
index 0000000..cca3173
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:水母\r
+英文名:Jellyfish\r
+标签:数码表盘;动物
\ No newline at end of file
diff --git a/dial_lzma/104/dog.lzma b/dial_lzma/104/dog.lzma
new file mode 100755 (executable)
index 0000000..e74695d
Binary files /dev/null and b/dial_lzma/104/dog.lzma differ
diff --git a/dial_lzma/104/dog.png b/dial_lzma/104/dog.png
new file mode 100755 (executable)
index 0000000..0ec1655
Binary files /dev/null and b/dial_lzma/104/dog.png differ
diff --git a/dial_lzma/104/说明.txt b/dial_lzma/104/说明.txt
new file mode 100755 (executable)
index 0000000..5d5bd58
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:小狗\r
+英文名:Dog\r
+标签:经典指针;动物
\ No newline at end of file
diff --git a/dial_lzma/105/kitty.lzma b/dial_lzma/105/kitty.lzma
new file mode 100755 (executable)
index 0000000..9ad880d
Binary files /dev/null and b/dial_lzma/105/kitty.lzma differ
diff --git a/dial_lzma/105/kitty.png b/dial_lzma/105/kitty.png
new file mode 100755 (executable)
index 0000000..8bf1d83
Binary files /dev/null and b/dial_lzma/105/kitty.png differ
diff --git a/dial_lzma/105/说明.txt b/dial_lzma/105/说明.txt
new file mode 100755 (executable)
index 0000000..7445a7f
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:小猫\r
+英文名:Kitty\r
+标签:数码表盘;动态;动物
\ No newline at end of file
diff --git a/dial_lzma/1052/classic.lzma b/dial_lzma/1052/classic.lzma
new file mode 100755 (executable)
index 0000000..c8c1f85
Binary files /dev/null and b/dial_lzma/1052/classic.lzma differ
diff --git a/dial_lzma/1052/classic.png b/dial_lzma/1052/classic.png
new file mode 100755 (executable)
index 0000000..c28154e
Binary files /dev/null and b/dial_lzma/1052/classic.png differ
diff --git a/dial_lzma/1052/说明.txt b/dial_lzma/1052/说明.txt
new file mode 100755 (executable)
index 0000000..065092c
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:指针几何\r
+英文名:Classic_Geometry\r
+标签:经典指针
\ No newline at end of file
diff --git a/dial_lzma/106/galaxy.lzma b/dial_lzma/106/galaxy.lzma
new file mode 100755 (executable)
index 0000000..fdba722
Binary files /dev/null and b/dial_lzma/106/galaxy.lzma differ
diff --git a/dial_lzma/106/galaxy.png b/dial_lzma/106/galaxy.png
new file mode 100755 (executable)
index 0000000..a7a11bb
Binary files /dev/null and b/dial_lzma/106/galaxy.png differ
diff --git a/dial_lzma/106/说明.txt b/dial_lzma/106/说明.txt
new file mode 100755 (executable)
index 0000000..8d6deca
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:星空\r
+英文名:Galaxy\r
+标签:数码表盘;运动
\ No newline at end of file
diff --git a/dial_lzma/107/geometry.lzma b/dial_lzma/107/geometry.lzma
new file mode 100755 (executable)
index 0000000..0b31122
Binary files /dev/null and b/dial_lzma/107/geometry.lzma differ
diff --git a/dial_lzma/107/geometry.png b/dial_lzma/107/geometry.png
new file mode 100755 (executable)
index 0000000..5e74676
Binary files /dev/null and b/dial_lzma/107/geometry.png differ
diff --git a/dial_lzma/107/说明.txt b/dial_lzma/107/说明.txt
new file mode 100755 (executable)
index 0000000..bb6cd9f
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:数码几何\r
+英文名:Digital_Geometry\r
+标签:数码表盘;动态
\ No newline at end of file
diff --git a/dial_lzma/108/maomao.lzma b/dial_lzma/108/maomao.lzma
new file mode 100755 (executable)
index 0000000..40c60f3
Binary files /dev/null and b/dial_lzma/108/maomao.lzma differ
diff --git a/dial_lzma/108/maomao.png b/dial_lzma/108/maomao.png
new file mode 100755 (executable)
index 0000000..51a0f52
Binary files /dev/null and b/dial_lzma/108/maomao.png differ
diff --git a/dial_lzma/108/说明.txt b/dial_lzma/108/说明.txt
new file mode 100755 (executable)
index 0000000..92fc4ad
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:招财猫\r
+英文名:Luckycat\r
+标签:经典指针;动物
\ No newline at end of file
diff --git a/dial_lzma/109/succulents.lzma b/dial_lzma/109/succulents.lzma
new file mode 100755 (executable)
index 0000000..77ec3dc
Binary files /dev/null and b/dial_lzma/109/succulents.lzma differ
diff --git a/dial_lzma/109/succulents.png b/dial_lzma/109/succulents.png
new file mode 100755 (executable)
index 0000000..f20518d
Binary files /dev/null and b/dial_lzma/109/succulents.png differ
diff --git a/dial_lzma/109/说明.txt b/dial_lzma/109/说明.txt
new file mode 100755 (executable)
index 0000000..4b8774f
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:多肉\r
+英文名:Succulents\r
+标签:数码表盘;植物
\ No newline at end of file
diff --git a/dial_lzma/110/spaceman.lzma b/dial_lzma/110/spaceman.lzma
new file mode 100755 (executable)
index 0000000..719c1eb
Binary files /dev/null and b/dial_lzma/110/spaceman.lzma differ
diff --git a/dial_lzma/110/spaceman.png b/dial_lzma/110/spaceman.png
new file mode 100755 (executable)
index 0000000..a9d708a
Binary files /dev/null and b/dial_lzma/110/spaceman.png differ
diff --git a/dial_lzma/110/说明.txt b/dial_lzma/110/说明.txt
new file mode 100755 (executable)
index 0000000..a3c8b25
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:宇航员\r
+英文名:Spaceman\r
+标签:数码表盘;动态;人物
\ No newline at end of file
diff --git a/dial_lzma/111/satellite.lzma b/dial_lzma/111/satellite.lzma
new file mode 100755 (executable)
index 0000000..4db5529
Binary files /dev/null and b/dial_lzma/111/satellite.lzma differ
diff --git a/dial_lzma/111/satellite.png b/dial_lzma/111/satellite.png
new file mode 100755 (executable)
index 0000000..ba7d6fc
Binary files /dev/null and b/dial_lzma/111/satellite.png differ
diff --git a/dial_lzma/111/说明.txt b/dial_lzma/111/说明.txt
new file mode 100755 (executable)
index 0000000..ddad8dd
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:卫星\r
+英文名:Satellite\r
+标签:数码表盘;动态
\ No newline at end of file
diff --git a/dial_lzma/112/birdie.lzma b/dial_lzma/112/birdie.lzma
new file mode 100755 (executable)
index 0000000..ca30ed2
Binary files /dev/null and b/dial_lzma/112/birdie.lzma differ
diff --git a/dial_lzma/112/birdie.png b/dial_lzma/112/birdie.png
new file mode 100755 (executable)
index 0000000..985037e
Binary files /dev/null and b/dial_lzma/112/birdie.png differ
diff --git a/dial_lzma/112/说明.txt b/dial_lzma/112/说明.txt
new file mode 100755 (executable)
index 0000000..d75e4df
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:飞鸟\r
+英文名:birdie\r
+标签:数码表盘,动物
\ No newline at end of file
diff --git a/dial_lzma/113/dawninsight.lzma b/dial_lzma/113/dawninsight.lzma
new file mode 100755 (executable)
index 0000000..779cfda
Binary files /dev/null and b/dial_lzma/113/dawninsight.lzma differ
diff --git a/dial_lzma/113/dawninsight.png b/dial_lzma/113/dawninsight.png
new file mode 100755 (executable)
index 0000000..907f3b9
Binary files /dev/null and b/dial_lzma/113/dawninsight.png differ
diff --git a/dial_lzma/113/说明.txt b/dial_lzma/113/说明.txt
new file mode 100755 (executable)
index 0000000..1389b4e
--- /dev/null
@@ -0,0 +1,10 @@
+中文名:晨曦智影\r
+英文名:Dawn Insight\r
+标签:数码表盘、运动\r
+表盘描述:\r
+“晨曦智影”表盘将科技与生活完美融合,通过简洁的界面展现全天候健康数据。\r
+表盘顶部显示实时天气预报和日期,让你轻松掌握日常安排;\r
+中央大字体时间显示,清晰可读,便于快速查看。\r
+底部区域提供目标步数完成进度、心率、步数和卡路里消耗,智能健康管理一目了然。\r
+此外,表盘还整合了支付宝与AI助手快捷入口,让每一次支付和互动都迅速流畅。\r
+晨曦智影表盘为你带来不仅仅是时间的提示,更是对健康与效率的全面管理。
\ No newline at end of file
diff --git a/dial_lzma/114/obsidianrhythm.lzma b/dial_lzma/114/obsidianrhythm.lzma
new file mode 100755 (executable)
index 0000000..999489c
Binary files /dev/null and b/dial_lzma/114/obsidianrhythm.lzma differ
diff --git a/dial_lzma/114/obsidianrhythm.png b/dial_lzma/114/obsidianrhythm.png
new file mode 100755 (executable)
index 0000000..70acebf
Binary files /dev/null and b/dial_lzma/114/obsidianrhythm.png differ
diff --git a/dial_lzma/114/说明.txt b/dial_lzma/114/说明.txt
new file mode 100755 (executable)
index 0000000..8d4b9df
--- /dev/null
@@ -0,0 +1,9 @@
+中文名:黑曜律动\r
+英文名:Obsidian Rhythm\r
+标签:经典指针、动态表盘\r
+描述:\r
+“黑曜律动”表盘融合现代科技与独特个性,黑色基调搭配精致设计,\r
+彰显你的风格与效率。除了显示时间,它还提供便捷的快捷功能:\r
+● 点击12点位置进入天气应用,查看实时天气信息;\r
+● 点击6点位置查看今日步数,追踪健康数据;\r
+简约优雅的设计,让你在追求效率的同时,保持独一无二的风格。
\ No newline at end of file
diff --git a/dial_lzma/115/mirrorvoyager.lzma b/dial_lzma/115/mirrorvoyager.lzma
new file mode 100755 (executable)
index 0000000..dfe96e5
Binary files /dev/null and b/dial_lzma/115/mirrorvoyager.lzma differ
diff --git a/dial_lzma/115/mirrorvoyager.png b/dial_lzma/115/mirrorvoyager.png
new file mode 100755 (executable)
index 0000000..8ae2e74
Binary files /dev/null and b/dial_lzma/115/mirrorvoyager.png differ
diff --git a/dial_lzma/115/说明.txt b/dial_lzma/115/说明.txt
new file mode 100755 (executable)
index 0000000..916e5bc
--- /dev/null
@@ -0,0 +1,9 @@
+中文名:镜影行者\r
+英文名:Mirror Voyager\r
+标签:经典指针、动态表盘\r
+表盘描述:\r
+“镜影行者”表盘将现代时尚与经典腕表元素巧妙融合,\r
+采用三眼设计,左侧子表盘显示实时心率,红色指针与数值提供清晰的健康数据;\r
+右侧子表盘展示步数进展,象征每日目标的达成。\r
+中央计时秒针与外圈渐变的边缘设计则如同时光流逝中的步伐,赋予佩戴者在时间与健康管理中的平衡感。\r
+这款表盘在动感与优雅之间取得完美平衡,是智慧与品味的象征。
\ No newline at end of file
diff --git a/dial_lzma/116/blueflower.lzma b/dial_lzma/116/blueflower.lzma
new file mode 100755 (executable)
index 0000000..fa2844a
Binary files /dev/null and b/dial_lzma/116/blueflower.lzma differ
diff --git a/dial_lzma/116/blueflower.png b/dial_lzma/116/blueflower.png
new file mode 100755 (executable)
index 0000000..8b6930c
Binary files /dev/null and b/dial_lzma/116/blueflower.png differ
diff --git a/dial_lzma/116/说明.txt b/dial_lzma/116/说明.txt
new file mode 100755 (executable)
index 0000000..f456f69
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:蓝花\r
+英文名:blue flower\r
+标签:数码表盘;自然植物
\ No newline at end of file
diff --git a/dial_lzma/117/freshlemon.lzma b/dial_lzma/117/freshlemon.lzma
new file mode 100755 (executable)
index 0000000..cf19f4b
Binary files /dev/null and b/dial_lzma/117/freshlemon.lzma differ
diff --git a/dial_lzma/117/freshlemon.png b/dial_lzma/117/freshlemon.png
new file mode 100755 (executable)
index 0000000..a76590e
Binary files /dev/null and b/dial_lzma/117/freshlemon.png differ
diff --git a/dial_lzma/117/说明.txt b/dial_lzma/117/说明.txt
new file mode 100755 (executable)
index 0000000..20f4a0b
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:柠檬清新\r
+英文名:fresh lemon\r
+标签:数码表盘;食物元素
\ No newline at end of file
diff --git a/dial_lzma/118/cuteduck.lzma b/dial_lzma/118/cuteduck.lzma
new file mode 100755 (executable)
index 0000000..d542164
Binary files /dev/null and b/dial_lzma/118/cuteduck.lzma differ
diff --git a/dial_lzma/118/cuteduck.png b/dial_lzma/118/cuteduck.png
new file mode 100755 (executable)
index 0000000..71f94f5
Binary files /dev/null and b/dial_lzma/118/cuteduck.png differ
diff --git a/dial_lzma/118/说明.txt b/dial_lzma/118/说明.txt
new file mode 100755 (executable)
index 0000000..595fe64
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:可爱小鸭\r
+英文名:cute duck\r
+标签:数码表盘;趣味动物
\ No newline at end of file
diff --git a/dial_lzma/119/classicblack.lzma b/dial_lzma/119/classicblack.lzma
new file mode 100755 (executable)
index 0000000..11b6fb2
Binary files /dev/null and b/dial_lzma/119/classicblack.lzma differ
diff --git a/dial_lzma/119/classicblack.png b/dial_lzma/119/classicblack.png
new file mode 100755 (executable)
index 0000000..509d2ae
Binary files /dev/null and b/dial_lzma/119/classicblack.png differ
diff --git a/dial_lzma/119/说明.txt b/dial_lzma/119/说明.txt
new file mode 100755 (executable)
index 0000000..b57202d
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:经典指针_黑\r
+英文名:classic_black\r
+标签:经典指针
\ No newline at end of file
diff --git a/dial_lzma/120/pumpkin.lzma b/dial_lzma/120/pumpkin.lzma
new file mode 100755 (executable)
index 0000000..51ff570
Binary files /dev/null and b/dial_lzma/120/pumpkin.lzma differ
diff --git a/dial_lzma/120/pumpkin.png b/dial_lzma/120/pumpkin.png
new file mode 100755 (executable)
index 0000000..0170466
Binary files /dev/null and b/dial_lzma/120/pumpkin.png differ
diff --git a/dial_lzma/120/说明.txt b/dial_lzma/120/说明.txt
new file mode 100755 (executable)
index 0000000..19020aa
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:万圣南瓜\r
+英文名:pumpkin\r
+标签:数码表盘;节日活动
\ No newline at end of file
diff --git a/dial_lzma/121/rose.lzma b/dial_lzma/121/rose.lzma
new file mode 100755 (executable)
index 0000000..b448cbf
Binary files /dev/null and b/dial_lzma/121/rose.lzma differ
diff --git a/dial_lzma/121/rose.png b/dial_lzma/121/rose.png
new file mode 100755 (executable)
index 0000000..27af1d8
Binary files /dev/null and b/dial_lzma/121/rose.png differ
diff --git a/dial_lzma/121/说明.txt b/dial_lzma/121/说明.txt
new file mode 100755 (executable)
index 0000000..0981147
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:玫瑰\r
+英文名:rose\r
+标签:数码表盘;自然植物
\ No newline at end of file
diff --git a/dial_lzma/122/valley.lzma b/dial_lzma/122/valley.lzma
new file mode 100755 (executable)
index 0000000..57059a9
Binary files /dev/null and b/dial_lzma/122/valley.lzma differ
diff --git a/dial_lzma/122/valley.png b/dial_lzma/122/valley.png
new file mode 100755 (executable)
index 0000000..70522d7
Binary files /dev/null and b/dial_lzma/122/valley.png differ
diff --git a/dial_lzma/122/说明.txt b/dial_lzma/122/说明.txt
new file mode 100755 (executable)
index 0000000..a306924
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:白色铃兰花\r
+英文名:valley\r
+标签:数码表盘;自然植物
\ No newline at end of file
diff --git a/dial_lzma/123/oceanworld.lzma b/dial_lzma/123/oceanworld.lzma
new file mode 100755 (executable)
index 0000000..fcf5a3f
Binary files /dev/null and b/dial_lzma/123/oceanworld.lzma differ
diff --git a/dial_lzma/123/oceanworld.png b/dial_lzma/123/oceanworld.png
new file mode 100755 (executable)
index 0000000..b5afd0a
Binary files /dev/null and b/dial_lzma/123/oceanworld.png differ
diff --git a/dial_lzma/123/说明.txt b/dial_lzma/123/说明.txt
new file mode 100755 (executable)
index 0000000..3f4abe0
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:海洋世界\r
+英文名:ocean world\r
+标签:数码表盘;趣味动物
\ No newline at end of file
diff --git a/dial_lzma/124/forestelk.lzma b/dial_lzma/124/forestelk.lzma
new file mode 100755 (executable)
index 0000000..f07934d
Binary files /dev/null and b/dial_lzma/124/forestelk.lzma differ
diff --git a/dial_lzma/124/forestelk.png b/dial_lzma/124/forestelk.png
new file mode 100755 (executable)
index 0000000..4be0200
Binary files /dev/null and b/dial_lzma/124/forestelk.png differ
diff --git a/dial_lzma/124/说明.txt b/dial_lzma/124/说明.txt
new file mode 100755 (executable)
index 0000000..dd5c6eb
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:森林麋鹿\r
+英文名:forest elk\r
+标签:数码表盘;趣味动物
\ No newline at end of file
diff --git a/dial_lzma/125/puppy.lzma b/dial_lzma/125/puppy.lzma
new file mode 100755 (executable)
index 0000000..3da1106
Binary files /dev/null and b/dial_lzma/125/puppy.lzma differ
diff --git a/dial_lzma/125/puppy.png b/dial_lzma/125/puppy.png
new file mode 100755 (executable)
index 0000000..fac5c55
Binary files /dev/null and b/dial_lzma/125/puppy.png differ
diff --git a/dial_lzma/125/说明.txt b/dial_lzma/125/说明.txt
new file mode 100755 (executable)
index 0000000..1eb5005
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:修狗\r
+英文名:puppy\r
+标签:数码表盘;趣味动物
\ No newline at end of file
diff --git a/dial_lzma/127/bud.lzma b/dial_lzma/127/bud.lzma
new file mode 100755 (executable)
index 0000000..b8402de
Binary files /dev/null and b/dial_lzma/127/bud.lzma differ
diff --git a/dial_lzma/127/bud.png b/dial_lzma/127/bud.png
new file mode 100755 (executable)
index 0000000..aad708b
Binary files /dev/null and b/dial_lzma/127/bud.png differ
diff --git a/dial_lzma/127/说明.txt b/dial_lzma/127/说明.txt
new file mode 100755 (executable)
index 0000000..4a4c9b2
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:花蕾\r
+英文名:bud\r
+标签:数码表盘;自然植物
\ No newline at end of file
diff --git a/dial_lzma/128/vibrantnumber.lzma b/dial_lzma/128/vibrantnumber.lzma
new file mode 100755 (executable)
index 0000000..ee08994
Binary files /dev/null and b/dial_lzma/128/vibrantnumber.lzma differ
diff --git a/dial_lzma/128/vibrantnumber.png b/dial_lzma/128/vibrantnumber.png
new file mode 100755 (executable)
index 0000000..ad4bf05
Binary files /dev/null and b/dial_lzma/128/vibrantnumber.png differ
diff --git a/dial_lzma/128/说明.txt b/dial_lzma/128/说明.txt
new file mode 100755 (executable)
index 0000000..7ae7c73
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:活力数字\r
+英文名:vibrant number\r
+标签:数码表盘;插画艺术
\ No newline at end of file
diff --git a/dial_lzma/129/shadow.lzma b/dial_lzma/129/shadow.lzma
new file mode 100755 (executable)
index 0000000..02dee3b
Binary files /dev/null and b/dial_lzma/129/shadow.lzma differ
diff --git a/dial_lzma/129/shadow.png b/dial_lzma/129/shadow.png
new file mode 100755 (executable)
index 0000000..82f3616
Binary files /dev/null and b/dial_lzma/129/shadow.png differ
diff --git a/dial_lzma/129/说明.txt b/dial_lzma/129/说明.txt
new file mode 100755 (executable)
index 0000000..62e36c9
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:炫酷光影\r
+英文名:shadow\r
+标签:经典指针;运动
\ No newline at end of file
diff --git a/dial_lzma/131/fightingfish.lzma b/dial_lzma/131/fightingfish.lzma
new file mode 100755 (executable)
index 0000000..60ed2b0
Binary files /dev/null and b/dial_lzma/131/fightingfish.lzma differ
diff --git a/dial_lzma/131/fightingfish.png b/dial_lzma/131/fightingfish.png
new file mode 100755 (executable)
index 0000000..f4dd27f
Binary files /dev/null and b/dial_lzma/131/fightingfish.png differ
diff --git a/dial_lzma/131/说明.txt b/dial_lzma/131/说明.txt
new file mode 100755 (executable)
index 0000000..74cb613
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:斗鱼\r
+英文名:fighting_fish\r
+标签:数码表盘;趣味动物
\ No newline at end of file
diff --git a/dial_lzma/132/goose.lzma b/dial_lzma/132/goose.lzma
new file mode 100755 (executable)
index 0000000..2c92f86
Binary files /dev/null and b/dial_lzma/132/goose.lzma differ
diff --git a/dial_lzma/132/goose.png b/dial_lzma/132/goose.png
new file mode 100755 (executable)
index 0000000..c397664
Binary files /dev/null and b/dial_lzma/132/goose.png differ
diff --git a/dial_lzma/132/说明.txt b/dial_lzma/132/说明.txt
new file mode 100755 (executable)
index 0000000..dac6035
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:大鹅\r
+英文名:goose\r
+标签:经典指针;插画艺术;动态
\ No newline at end of file
diff --git a/dial_lzma/133/dewdrop.lzma b/dial_lzma/133/dewdrop.lzma
new file mode 100755 (executable)
index 0000000..9f5f619
Binary files /dev/null and b/dial_lzma/133/dewdrop.lzma differ
diff --git a/dial_lzma/133/dewdrop.png b/dial_lzma/133/dewdrop.png
new file mode 100755 (executable)
index 0000000..6224216
Binary files /dev/null and b/dial_lzma/133/dewdrop.png differ
diff --git a/dial_lzma/133/说明.txt b/dial_lzma/133/说明.txt
new file mode 100755 (executable)
index 0000000..3f31d43
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:露珠\r
+英文名:dewdrop\r
+标签:数码表盘;自然植物\r
diff --git a/dial_lzma/134/elk.lzma b/dial_lzma/134/elk.lzma
new file mode 100755 (executable)
index 0000000..91a53bb
Binary files /dev/null and b/dial_lzma/134/elk.lzma differ
diff --git a/dial_lzma/134/elk.png b/dial_lzma/134/elk.png
new file mode 100755 (executable)
index 0000000..6c857f4
Binary files /dev/null and b/dial_lzma/134/elk.png differ
diff --git a/dial_lzma/134/说明.txt b/dial_lzma/134/说明.txt
new file mode 100755 (executable)
index 0000000..20f383e
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:麋鹿\r
+英文名:elk\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/135/giraffe.lzma b/dial_lzma/135/giraffe.lzma
new file mode 100755 (executable)
index 0000000..5209c57
Binary files /dev/null and b/dial_lzma/135/giraffe.lzma differ
diff --git a/dial_lzma/135/giraffe.png b/dial_lzma/135/giraffe.png
new file mode 100755 (executable)
index 0000000..0a6e917
Binary files /dev/null and b/dial_lzma/135/giraffe.png differ
diff --git a/dial_lzma/135/说明.txt b/dial_lzma/135/说明.txt
new file mode 100755 (executable)
index 0000000..926d43f
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:长颈鹿\r
+英文名:giraffe\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/136/lotu.lzma b/dial_lzma/136/lotu.lzma
new file mode 100755 (executable)
index 0000000..4191325
Binary files /dev/null and b/dial_lzma/136/lotu.lzma differ
diff --git a/dial_lzma/136/lotu.png b/dial_lzma/136/lotu.png
new file mode 100755 (executable)
index 0000000..5a079d7
Binary files /dev/null and b/dial_lzma/136/lotu.png differ
diff --git a/dial_lzma/136/说明.txt b/dial_lzma/136/说明.txt
new file mode 100755 (executable)
index 0000000..4e55dcb
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:荷花\r
+英文名:lotu\r
+标签:数码表盘;自然植物\r
diff --git a/dial_lzma/137/eagle.lzma b/dial_lzma/137/eagle.lzma
new file mode 100755 (executable)
index 0000000..34d807a
Binary files /dev/null and b/dial_lzma/137/eagle.lzma differ
diff --git a/dial_lzma/137/eagle.png b/dial_lzma/137/eagle.png
new file mode 100755 (executable)
index 0000000..e625fc2
Binary files /dev/null and b/dial_lzma/137/eagle.png differ
diff --git a/dial_lzma/137/说明.txt b/dial_lzma/137/说明.txt
new file mode 100755 (executable)
index 0000000..c7221b8
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:老鹰\r
+英文名:eagle\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/138/zebra.lzma b/dial_lzma/138/zebra.lzma
new file mode 100755 (executable)
index 0000000..76a4ee0
Binary files /dev/null and b/dial_lzma/138/zebra.lzma differ
diff --git a/dial_lzma/138/zebra.png b/dial_lzma/138/zebra.png
new file mode 100755 (executable)
index 0000000..3306b06
Binary files /dev/null and b/dial_lzma/138/zebra.png differ
diff --git a/dial_lzma/138/说明.txt b/dial_lzma/138/说明.txt
new file mode 100755 (executable)
index 0000000..8e6ec87
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:斑马\r
+英文名:zebra\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/139/littledaisy.lzma b/dial_lzma/139/littledaisy.lzma
new file mode 100755 (executable)
index 0000000..bbb2815
Binary files /dev/null and b/dial_lzma/139/littledaisy.lzma differ
diff --git a/dial_lzma/139/littledaisy.png b/dial_lzma/139/littledaisy.png
new file mode 100755 (executable)
index 0000000..52c2ddb
Binary files /dev/null and b/dial_lzma/139/littledaisy.png differ
diff --git a/dial_lzma/139/说明.txt b/dial_lzma/139/说明.txt
new file mode 100755 (executable)
index 0000000..bfc6818
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:小雏菊\r
+英文名:little daisy\r
+标签:数码表盘;自然植物\r
diff --git a/dial_lzma/140/wolf.lzma b/dial_lzma/140/wolf.lzma
new file mode 100755 (executable)
index 0000000..495915a
Binary files /dev/null and b/dial_lzma/140/wolf.lzma differ
diff --git a/dial_lzma/140/wolf.png b/dial_lzma/140/wolf.png
new file mode 100755 (executable)
index 0000000..b788cee
Binary files /dev/null and b/dial_lzma/140/wolf.png differ
diff --git a/dial_lzma/140/说明.txt b/dial_lzma/140/说明.txt
new file mode 100755 (executable)
index 0000000..bcf09a3
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:狼\r
+英文名:wolf\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/141/bear.lzma b/dial_lzma/141/bear.lzma
new file mode 100755 (executable)
index 0000000..54acf21
Binary files /dev/null and b/dial_lzma/141/bear.lzma differ
diff --git a/dial_lzma/141/bear.png b/dial_lzma/141/bear.png
new file mode 100755 (executable)
index 0000000..8d0348d
Binary files /dev/null and b/dial_lzma/141/bear.png differ
diff --git a/dial_lzma/141/说明.txt b/dial_lzma/141/说明.txt
new file mode 100755 (executable)
index 0000000..c103948
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:熊\r
+英文名:bear\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/142/whiterose.lzma b/dial_lzma/142/whiterose.lzma
new file mode 100755 (executable)
index 0000000..f0ab872
Binary files /dev/null and b/dial_lzma/142/whiterose.lzma differ
diff --git a/dial_lzma/142/whiterose.png b/dial_lzma/142/whiterose.png
new file mode 100755 (executable)
index 0000000..5dad1b0
Binary files /dev/null and b/dial_lzma/142/whiterose.png differ
diff --git a/dial_lzma/142/说明.txt b/dial_lzma/142/说明.txt
new file mode 100755 (executable)
index 0000000..e1f9917
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:白玫瑰\r
+英文名:white rose\r
+标签:数码表盘;自然植物\r
diff --git a/dial_lzma/143/glowjellyfish.lzma b/dial_lzma/143/glowjellyfish.lzma
new file mode 100755 (executable)
index 0000000..b58a263
Binary files /dev/null and b/dial_lzma/143/glowjellyfish.lzma differ
diff --git a/dial_lzma/143/glowjellyfish.png b/dial_lzma/143/glowjellyfish.png
new file mode 100755 (executable)
index 0000000..d5e30b4
Binary files /dev/null and b/dial_lzma/143/glowjellyfish.png differ
diff --git a/dial_lzma/143/说明.txt b/dial_lzma/143/说明.txt
new file mode 100755 (executable)
index 0000000..793b577
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:夜光水母\r
+英文名:glow jellyfish\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/144/kingfisher.lzma b/dial_lzma/144/kingfisher.lzma
new file mode 100755 (executable)
index 0000000..dbb20f5
Binary files /dev/null and b/dial_lzma/144/kingfisher.lzma differ
diff --git a/dial_lzma/144/kingfisher.png b/dial_lzma/144/kingfisher.png
new file mode 100755 (executable)
index 0000000..9164f56
Binary files /dev/null and b/dial_lzma/144/kingfisher.png differ
diff --git a/dial_lzma/144/说明.txt b/dial_lzma/144/说明.txt
new file mode 100755 (executable)
index 0000000..bda19ac
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:小翠鸟\r
+英文名:kingfisher\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/145/ornithogalum.lzma b/dial_lzma/145/ornithogalum.lzma
new file mode 100755 (executable)
index 0000000..981d583
Binary files /dev/null and b/dial_lzma/145/ornithogalum.lzma differ
diff --git a/dial_lzma/145/ornithogalum.png b/dial_lzma/145/ornithogalum.png
new file mode 100755 (executable)
index 0000000..528082e
Binary files /dev/null and b/dial_lzma/145/ornithogalum.png differ
diff --git a/dial_lzma/145/说明.txt b/dial_lzma/145/说明.txt
new file mode 100755 (executable)
index 0000000..f820060
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:大眼雀梅\r
+英文名:ornithogalum\r
+标签:数码表盘;自然植物
\ No newline at end of file
diff --git a/dial_lzma/146/lion.lzma b/dial_lzma/146/lion.lzma
new file mode 100755 (executable)
index 0000000..feff254
Binary files /dev/null and b/dial_lzma/146/lion.lzma differ
diff --git a/dial_lzma/146/lion.png b/dial_lzma/146/lion.png
new file mode 100755 (executable)
index 0000000..e1eac30
Binary files /dev/null and b/dial_lzma/146/lion.png differ
diff --git a/dial_lzma/146/说明.txt b/dial_lzma/146/说明.txt
new file mode 100755 (executable)
index 0000000..1404a49
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:狮子\r
+英文名:lion\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/147/sharpee.lzma b/dial_lzma/147/sharpee.lzma
new file mode 100755 (executable)
index 0000000..9d9183a
Binary files /dev/null and b/dial_lzma/147/sharpee.lzma differ
diff --git a/dial_lzma/147/sharpee.png b/dial_lzma/147/sharpee.png
new file mode 100755 (executable)
index 0000000..f1c0ff9
Binary files /dev/null and b/dial_lzma/147/sharpee.png differ
diff --git a/dial_lzma/147/说明.txt b/dial_lzma/147/说明.txt
new file mode 100755 (executable)
index 0000000..1bf4836
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:沙皮狗\r
+英文名:shar pee\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/148/Aquarius.lzma b/dial_lzma/148/Aquarius.lzma
new file mode 100755 (executable)
index 0000000..353f808
Binary files /dev/null and b/dial_lzma/148/Aquarius.lzma differ
diff --git a/dial_lzma/148/Aquarius.png b/dial_lzma/148/Aquarius.png
new file mode 100755 (executable)
index 0000000..431202b
Binary files /dev/null and b/dial_lzma/148/Aquarius.png differ
diff --git a/dial_lzma/148/说明.txt b/dial_lzma/148/说明.txt
new file mode 100755 (executable)
index 0000000..8038864
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:水瓶座\r
+英文名:Aquarius\r
+标签:数码表盘;星座\r
diff --git a/dial_lzma/149/Sagittarius.lzma b/dial_lzma/149/Sagittarius.lzma
new file mode 100755 (executable)
index 0000000..5b30500
Binary files /dev/null and b/dial_lzma/149/Sagittarius.lzma differ
diff --git a/dial_lzma/149/Sagittarius.png b/dial_lzma/149/Sagittarius.png
new file mode 100755 (executable)
index 0000000..19e9b84
Binary files /dev/null and b/dial_lzma/149/Sagittarius.png differ
diff --git a/dial_lzma/149/说明.txt b/dial_lzma/149/说明.txt
new file mode 100755 (executable)
index 0000000..4cfd4f5
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:射手座\r
+英文名:Sagittarius\r
+标签:数码表盘;星座\r
diff --git a/dial_lzma/150/Leo.lzma b/dial_lzma/150/Leo.lzma
new file mode 100755 (executable)
index 0000000..149a8e2
Binary files /dev/null and b/dial_lzma/150/Leo.lzma differ
diff --git a/dial_lzma/150/Leo.png b/dial_lzma/150/Leo.png
new file mode 100755 (executable)
index 0000000..9b91fe9
Binary files /dev/null and b/dial_lzma/150/Leo.png differ
diff --git a/dial_lzma/150/说明.txt b/dial_lzma/150/说明.txt
new file mode 100755 (executable)
index 0000000..847ec16
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:狮子座\r
+英文名:Leo\r
+标签:数码表盘;星座\r
diff --git a/dial_lzma/151/Taurus.lzma b/dial_lzma/151/Taurus.lzma
new file mode 100755 (executable)
index 0000000..327ea9e
Binary files /dev/null and b/dial_lzma/151/Taurus.lzma differ
diff --git a/dial_lzma/151/Taurus.png b/dial_lzma/151/Taurus.png
new file mode 100755 (executable)
index 0000000..75c8fd2
Binary files /dev/null and b/dial_lzma/151/Taurus.png differ
diff --git a/dial_lzma/151/说明.txt b/dial_lzma/151/说明.txt
new file mode 100755 (executable)
index 0000000..58d4c96
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:金牛座\r
+英文名:Taurus\r
+标签:数码表盘;星座\r
diff --git a/dial_lzma/152/Aries.lzma b/dial_lzma/152/Aries.lzma
new file mode 100755 (executable)
index 0000000..d64cd39
Binary files /dev/null and b/dial_lzma/152/Aries.lzma differ
diff --git a/dial_lzma/152/Aries.png b/dial_lzma/152/Aries.png
new file mode 100755 (executable)
index 0000000..2b5f308
Binary files /dev/null and b/dial_lzma/152/Aries.png differ
diff --git a/dial_lzma/152/说明.txt b/dial_lzma/152/说明.txt
new file mode 100755 (executable)
index 0000000..338e290
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:白羊座\r
+英文名:Aries\r
+标签:数码表盘;星座\r
diff --git a/dial_lzma/153/Libra.lzma b/dial_lzma/153/Libra.lzma
new file mode 100755 (executable)
index 0000000..9176a3e
Binary files /dev/null and b/dial_lzma/153/Libra.lzma differ
diff --git a/dial_lzma/153/Libra.png b/dial_lzma/153/Libra.png
new file mode 100755 (executable)
index 0000000..04115f6
Binary files /dev/null and b/dial_lzma/153/Libra.png differ
diff --git a/dial_lzma/153/说明.txt b/dial_lzma/153/说明.txt
new file mode 100755 (executable)
index 0000000..61ced0a
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:天秤座\r
+英文名:Libra\r
+标签:数码表盘;星座\r
diff --git a/dial_lzma/154/corgi.lzma b/dial_lzma/154/corgi.lzma
new file mode 100755 (executable)
index 0000000..6b9d4d7
Binary files /dev/null and b/dial_lzma/154/corgi.lzma differ
diff --git a/dial_lzma/154/corgi.png b/dial_lzma/154/corgi.png
new file mode 100755 (executable)
index 0000000..be911c2
Binary files /dev/null and b/dial_lzma/154/corgi.png differ
diff --git a/dial_lzma/154/说明.txt b/dial_lzma/154/说明.txt
new file mode 100755 (executable)
index 0000000..34c1a9c
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:柯基\r
+英文名:corgi\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/155/lookup.lzma b/dial_lzma/155/lookup.lzma
new file mode 100755 (executable)
index 0000000..e8e9cc3
Binary files /dev/null and b/dial_lzma/155/lookup.lzma differ
diff --git a/dial_lzma/155/lookup.png b/dial_lzma/155/lookup.png
new file mode 100755 (executable)
index 0000000..b444272
Binary files /dev/null and b/dial_lzma/155/lookup.png differ
diff --git a/dial_lzma/155/说明.txt b/dial_lzma/155/说明.txt
new file mode 100755 (executable)
index 0000000..b6dcffc
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:仰望\r
+英文名:look up\r
+标签:数码表盘;自然景观\r
diff --git a/dial_lzma/156/greenery.lzma b/dial_lzma/156/greenery.lzma
new file mode 100755 (executable)
index 0000000..9abc445
Binary files /dev/null and b/dial_lzma/156/greenery.lzma differ
diff --git a/dial_lzma/156/greenery.png b/dial_lzma/156/greenery.png
new file mode 100755 (executable)
index 0000000..9001cf6
Binary files /dev/null and b/dial_lzma/156/greenery.png differ
diff --git a/dial_lzma/156/说明.txt b/dial_lzma/156/说明.txt
new file mode 100755 (executable)
index 0000000..0461b05
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:绿叶\r
+英文名:greenery\r
+标签:数码表盘;自然植物\r
diff --git a/dial_lzma/157/dusk.lzma b/dial_lzma/157/dusk.lzma
new file mode 100755 (executable)
index 0000000..19c64e8
Binary files /dev/null and b/dial_lzma/157/dusk.lzma differ
diff --git a/dial_lzma/157/dusk.png b/dial_lzma/157/dusk.png
new file mode 100755 (executable)
index 0000000..be9dd35
Binary files /dev/null and b/dial_lzma/157/dusk.png differ
diff --git a/dial_lzma/157/说明.txt b/dial_lzma/157/说明.txt
new file mode 100755 (executable)
index 0000000..8c846cd
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:黄昏\r
+英文名:dusk\r
+标签:数码表盘;自然景观\r
diff --git a/dial_lzma/158/squirrel.lzma b/dial_lzma/158/squirrel.lzma
new file mode 100755 (executable)
index 0000000..8ec217f
Binary files /dev/null and b/dial_lzma/158/squirrel.lzma differ
diff --git a/dial_lzma/158/squirrel.png b/dial_lzma/158/squirrel.png
new file mode 100755 (executable)
index 0000000..e7575d9
Binary files /dev/null and b/dial_lzma/158/squirrel.png differ
diff --git a/dial_lzma/158/说明.txt b/dial_lzma/158/说明.txt
new file mode 100755 (executable)
index 0000000..4ca2c01
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:小松鼠\r
+英文名:squirrel\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/159/lizard.lzma b/dial_lzma/159/lizard.lzma
new file mode 100755 (executable)
index 0000000..063b4e3
Binary files /dev/null and b/dial_lzma/159/lizard.lzma differ
diff --git a/dial_lzma/159/lizard.png b/dial_lzma/159/lizard.png
new file mode 100755 (executable)
index 0000000..1d04f74
Binary files /dev/null and b/dial_lzma/159/lizard.png differ
diff --git a/dial_lzma/159/说明.txt b/dial_lzma/159/说明.txt
new file mode 100755 (executable)
index 0000000..ea67fda
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:蜥蜴\r
+英文名:lizard\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/160/lighthouse.lzma b/dial_lzma/160/lighthouse.lzma
new file mode 100755 (executable)
index 0000000..dacfecb
Binary files /dev/null and b/dial_lzma/160/lighthouse.lzma differ
diff --git a/dial_lzma/160/lighthouse.png b/dial_lzma/160/lighthouse.png
new file mode 100755 (executable)
index 0000000..a3fca4c
Binary files /dev/null and b/dial_lzma/160/lighthouse.png differ
diff --git a/dial_lzma/160/说明.txt b/dial_lzma/160/说明.txt
new file mode 100755 (executable)
index 0000000..8789788
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:灯塔\r
+英文名:lighthouse\r
+标签:数码表盘;城市风采\r
diff --git a/dial_lzma/161/persiancat.lzma b/dial_lzma/161/persiancat.lzma
new file mode 100755 (executable)
index 0000000..aa658fe
Binary files /dev/null and b/dial_lzma/161/persiancat.lzma differ
diff --git a/dial_lzma/161/persiancat.png b/dial_lzma/161/persiancat.png
new file mode 100755 (executable)
index 0000000..1540aa5
Binary files /dev/null and b/dial_lzma/161/persiancat.png differ
diff --git a/dial_lzma/161/说明.txt b/dial_lzma/161/说明.txt
new file mode 100755 (executable)
index 0000000..32d2703
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:波斯猫\r
+英文名:persian cat\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/162/urbannight.lzma b/dial_lzma/162/urbannight.lzma
new file mode 100755 (executable)
index 0000000..6645e42
Binary files /dev/null and b/dial_lzma/162/urbannight.lzma differ
diff --git a/dial_lzma/162/urbannight.png b/dial_lzma/162/urbannight.png
new file mode 100755 (executable)
index 0000000..dae7835
Binary files /dev/null and b/dial_lzma/162/urbannight.png differ
diff --git a/dial_lzma/162/说明.txt b/dial_lzma/162/说明.txt
new file mode 100755 (executable)
index 0000000..0b0ebcf
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:都市夜色\r
+英文名:urban night\r
+标签:数码表盘;城市风采\r
diff --git a/dial_lzma/163/nature.lzma b/dial_lzma/163/nature.lzma
new file mode 100755 (executable)
index 0000000..3220428
Binary files /dev/null and b/dial_lzma/163/nature.lzma differ
diff --git a/dial_lzma/163/nature.png b/dial_lzma/163/nature.png
new file mode 100755 (executable)
index 0000000..b99f3ef
Binary files /dev/null and b/dial_lzma/163/nature.png differ
diff --git a/dial_lzma/163/说明.txt b/dial_lzma/163/说明.txt
new file mode 100755 (executable)
index 0000000..152b58b
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:自然\r
+英文名:nature\r
+标签:数码表盘;自然植物\r
diff --git a/dial_lzma/164/sikadeer.lzma b/dial_lzma/164/sikadeer.lzma
new file mode 100755 (executable)
index 0000000..8591a25
Binary files /dev/null and b/dial_lzma/164/sikadeer.lzma differ
diff --git a/dial_lzma/164/sikadeer.png b/dial_lzma/164/sikadeer.png
new file mode 100755 (executable)
index 0000000..bdb8340
Binary files /dev/null and b/dial_lzma/164/sikadeer.png differ
diff --git a/dial_lzma/164/说明.txt b/dial_lzma/164/说明.txt
new file mode 100755 (executable)
index 0000000..27acb56
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:梅花鹿\r
+英文名:sika deer\r
+标签:数码表盘;插画艺术\r
diff --git a/dial_lzma/165/firework.lzma b/dial_lzma/165/firework.lzma
new file mode 100755 (executable)
index 0000000..60d879f
Binary files /dev/null and b/dial_lzma/165/firework.lzma differ
diff --git a/dial_lzma/165/firework.png b/dial_lzma/165/firework.png
new file mode 100755 (executable)
index 0000000..1a2ecfd
Binary files /dev/null and b/dial_lzma/165/firework.png differ
diff --git a/dial_lzma/165/说明.txt b/dial_lzma/165/说明.txt
new file mode 100755 (executable)
index 0000000..26ff401
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:烟花\r
+英文名:firework\r
+标签:数码表盘;节日活动\r
diff --git a/dial_lzma/166/pinktree.lzma b/dial_lzma/166/pinktree.lzma
new file mode 100755 (executable)
index 0000000..d8bfaac
Binary files /dev/null and b/dial_lzma/166/pinktree.lzma differ
diff --git a/dial_lzma/166/pinktree.png b/dial_lzma/166/pinktree.png
new file mode 100755 (executable)
index 0000000..b892d56
Binary files /dev/null and b/dial_lzma/166/pinktree.png differ
diff --git a/dial_lzma/166/说明.txt b/dial_lzma/166/说明.txt
new file mode 100755 (executable)
index 0000000..cb11018
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:粉树\r
+英文名:pink tree\r
+标签:数码表盘;自然植物\r
diff --git a/dial_lzma/167/lake.lzma b/dial_lzma/167/lake.lzma
new file mode 100755 (executable)
index 0000000..c4d00f7
Binary files /dev/null and b/dial_lzma/167/lake.lzma differ
diff --git a/dial_lzma/167/lake.png b/dial_lzma/167/lake.png
new file mode 100755 (executable)
index 0000000..ab923a6
Binary files /dev/null and b/dial_lzma/167/lake.png differ
diff --git a/dial_lzma/167/说明.txt b/dial_lzma/167/说明.txt
new file mode 100755 (executable)
index 0000000..2bb8e40
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:湖泊\r
+英文名:lake\r
+标签:数码表盘;自然景观\r
diff --git a/dial_lzma/168/sakura.lzma b/dial_lzma/168/sakura.lzma
new file mode 100755 (executable)
index 0000000..02a4b30
Binary files /dev/null and b/dial_lzma/168/sakura.lzma differ
diff --git a/dial_lzma/168/sakura.png b/dial_lzma/168/sakura.png
new file mode 100755 (executable)
index 0000000..13f1a4d
Binary files /dev/null and b/dial_lzma/168/sakura.png differ
diff --git a/dial_lzma/168/说明.txt b/dial_lzma/168/说明.txt
new file mode 100755 (executable)
index 0000000..d235109
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:樱花\r
+英文名:sakura\r
+标签:数码表盘;自然植物\r
diff --git a/dial_lzma/169/snails.lzma b/dial_lzma/169/snails.lzma
new file mode 100755 (executable)
index 0000000..52ddd73
Binary files /dev/null and b/dial_lzma/169/snails.lzma differ
diff --git a/dial_lzma/169/snails.png b/dial_lzma/169/snails.png
new file mode 100755 (executable)
index 0000000..b17b637
Binary files /dev/null and b/dial_lzma/169/snails.png differ
diff --git a/dial_lzma/169/说明.txt b/dial_lzma/169/说明.txt
new file mode 100755 (executable)
index 0000000..8bf478b
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:蜗牛\r
+英文名:snails\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/170/duck.lzma b/dial_lzma/170/duck.lzma
new file mode 100755 (executable)
index 0000000..60d79a6
Binary files /dev/null and b/dial_lzma/170/duck.lzma differ
diff --git a/dial_lzma/170/duck.png b/dial_lzma/170/duck.png
new file mode 100755 (executable)
index 0000000..ae4a431
Binary files /dev/null and b/dial_lzma/170/duck.png differ
diff --git a/dial_lzma/170/说明.txt b/dial_lzma/170/说明.txt
new file mode 100755 (executable)
index 0000000..e6f9372
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:小鸭\r
+英文名:duck\r
+标签:数码表盘;趣味动物\r
diff --git a/dial_lzma/171/deepdive.lzma b/dial_lzma/171/deepdive.lzma
new file mode 100755 (executable)
index 0000000..9d9433a
Binary files /dev/null and b/dial_lzma/171/deepdive.lzma differ
diff --git a/dial_lzma/171/deepdive.png b/dial_lzma/171/deepdive.png
new file mode 100755 (executable)
index 0000000..08ffecb
Binary files /dev/null and b/dial_lzma/171/deepdive.png differ
diff --git a/dial_lzma/171/说明.txt b/dial_lzma/171/说明.txt
new file mode 100755 (executable)
index 0000000..b9cf23f
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:深潜\r
+英文名:deep dive\r
+标签:数码表盘;自然景观\r
diff --git a/dial_lzma/172/wave.lzma b/dial_lzma/172/wave.lzma
new file mode 100755 (executable)
index 0000000..ebb4383
Binary files /dev/null and b/dial_lzma/172/wave.lzma differ
diff --git a/dial_lzma/172/wave.png b/dial_lzma/172/wave.png
new file mode 100755 (executable)
index 0000000..7588056
Binary files /dev/null and b/dial_lzma/172/wave.png differ
diff --git a/dial_lzma/172/说明.txt b/dial_lzma/172/说明.txt
new file mode 100755 (executable)
index 0000000..d00a24a
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:波浪\r
+英文名:wave\r
+标签:数码表盘;插画艺术\r
diff --git a/dial_lzma/173/golden_ball.png b/dial_lzma/173/golden_ball.png
new file mode 100755 (executable)
index 0000000..2df72ab
Binary files /dev/null and b/dial_lzma/173/golden_ball.png differ
diff --git a/dial_lzma/173/goldenball.lzma b/dial_lzma/173/goldenball.lzma
new file mode 100755 (executable)
index 0000000..716c580
Binary files /dev/null and b/dial_lzma/173/goldenball.lzma differ
diff --git a/dial_lzma/173/说明.txt b/dial_lzma/173/说明.txt
new file mode 100755 (executable)
index 0000000..1348c2c
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:机械表盘_足球\r
+英文名:golden ball\r
+标签:经典指针;机械风格\r
diff --git a/dial_lzma/174/abstractlines.lzma b/dial_lzma/174/abstractlines.lzma
new file mode 100755 (executable)
index 0000000..bda26dd
Binary files /dev/null and b/dial_lzma/174/abstractlines.lzma differ
diff --git a/dial_lzma/174/abstractlines.png b/dial_lzma/174/abstractlines.png
new file mode 100755 (executable)
index 0000000..e38776c
Binary files /dev/null and b/dial_lzma/174/abstractlines.png differ
diff --git a/dial_lzma/174/说明.txt b/dial_lzma/174/说明.txt
new file mode 100755 (executable)
index 0000000..a36a033
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:抽象线条\r
+英文名:abstract_lines\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/175/lineglare.lzma b/dial_lzma/175/lineglare.lzma
new file mode 100755 (executable)
index 0000000..eb21ff2
Binary files /dev/null and b/dial_lzma/175/lineglare.lzma differ
diff --git a/dial_lzma/175/lineglare.png b/dial_lzma/175/lineglare.png
new file mode 100755 (executable)
index 0000000..e4fb115
Binary files /dev/null and b/dial_lzma/175/lineglare.png differ
diff --git a/dial_lzma/175/说明.txt b/dial_lzma/175/说明.txt
new file mode 100755 (executable)
index 0000000..bd36697
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:线条_炫光\r
+英文名:line_glare\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/176/linespace.lzma b/dial_lzma/176/linespace.lzma
new file mode 100755 (executable)
index 0000000..ef8d64b
Binary files /dev/null and b/dial_lzma/176/linespace.lzma differ
diff --git a/dial_lzma/176/linespace.png b/dial_lzma/176/linespace.png
new file mode 100755 (executable)
index 0000000..2ded5ac
Binary files /dev/null and b/dial_lzma/176/linespace.png differ
diff --git a/dial_lzma/176/说明.txt b/dial_lzma/176/说明.txt
new file mode 100755 (executable)
index 0000000..fec536e
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:线条_星球\r
+英文名:line_space\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/177/liquefaction.lzma b/dial_lzma/177/liquefaction.lzma
new file mode 100755 (executable)
index 0000000..3f74136
Binary files /dev/null and b/dial_lzma/177/liquefaction.lzma differ
diff --git a/dial_lzma/177/liquefaction.png b/dial_lzma/177/liquefaction.png
new file mode 100755 (executable)
index 0000000..6ae769a
Binary files /dev/null and b/dial_lzma/177/liquefaction.png differ
diff --git a/dial_lzma/177/说明.txt b/dial_lzma/177/说明.txt
new file mode 100755 (executable)
index 0000000..1bfd748
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:线条_液化\r
+英文名:liquefaction\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/178/linemantis.lzma b/dial_lzma/178/linemantis.lzma
new file mode 100755 (executable)
index 0000000..4187787
Binary files /dev/null and b/dial_lzma/178/linemantis.lzma differ
diff --git a/dial_lzma/178/linemantis.png b/dial_lzma/178/linemantis.png
new file mode 100755 (executable)
index 0000000..540b195
Binary files /dev/null and b/dial_lzma/178/linemantis.png differ
diff --git a/dial_lzma/178/说明.txt b/dial_lzma/178/说明.txt
new file mode 100755 (executable)
index 0000000..a3f1772
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:线条_螳螂\r
+英文名:line_mantis\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/179/lineflow.lzma b/dial_lzma/179/lineflow.lzma
new file mode 100755 (executable)
index 0000000..10c3b65
Binary files /dev/null and b/dial_lzma/179/lineflow.lzma differ
diff --git a/dial_lzma/179/lineflow.png b/dial_lzma/179/lineflow.png
new file mode 100755 (executable)
index 0000000..5faab4e
Binary files /dev/null and b/dial_lzma/179/lineflow.png differ
diff --git a/dial_lzma/179/说明.txt b/dial_lzma/179/说明.txt
new file mode 100755 (executable)
index 0000000..85b8986
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:线条_流动\r
+英文名:line_flow\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/180/linedream.lzma b/dial_lzma/180/linedream.lzma
new file mode 100755 (executable)
index 0000000..d6e8983
Binary files /dev/null and b/dial_lzma/180/linedream.lzma differ
diff --git a/dial_lzma/180/linedream.png b/dial_lzma/180/linedream.png
new file mode 100755 (executable)
index 0000000..b18850c
Binary files /dev/null and b/dial_lzma/180/linedream.png differ
diff --git a/dial_lzma/180/说明.txt b/dial_lzma/180/说明.txt
new file mode 100755 (executable)
index 0000000..4cbfa62
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:线条_梦境\r
+英文名:line_dream\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/181/lineflower.lzma b/dial_lzma/181/lineflower.lzma
new file mode 100755 (executable)
index 0000000..7ed58e5
Binary files /dev/null and b/dial_lzma/181/lineflower.lzma differ
diff --git a/dial_lzma/181/lineflower.png b/dial_lzma/181/lineflower.png
new file mode 100755 (executable)
index 0000000..6a74300
Binary files /dev/null and b/dial_lzma/181/lineflower.png differ
diff --git a/dial_lzma/181/说明.txt b/dial_lzma/181/说明.txt
new file mode 100755 (executable)
index 0000000..dc83550
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:线条_花朵\r
+英文名:line_flower\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/182/linespiral.lzma b/dial_lzma/182/linespiral.lzma
new file mode 100755 (executable)
index 0000000..286f2ce
Binary files /dev/null and b/dial_lzma/182/linespiral.lzma differ
diff --git a/dial_lzma/182/linespiral.png b/dial_lzma/182/linespiral.png
new file mode 100755 (executable)
index 0000000..cb040d9
Binary files /dev/null and b/dial_lzma/182/linespiral.png differ
diff --git a/dial_lzma/182/说明.txt b/dial_lzma/182/说明.txt
new file mode 100755 (executable)
index 0000000..dc1fde6
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:线条_螺旋\r
+英文名:line_spiral\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/183/explode.lzma b/dial_lzma/183/explode.lzma
new file mode 100755 (executable)
index 0000000..105f0d8
Binary files /dev/null and b/dial_lzma/183/explode.lzma differ
diff --git a/dial_lzma/183/explode.png b/dial_lzma/183/explode.png
new file mode 100755 (executable)
index 0000000..2ff9d7b
Binary files /dev/null and b/dial_lzma/183/explode.png differ
diff --git a/dial_lzma/183/说明.txt b/dial_lzma/183/说明.txt
new file mode 100755 (executable)
index 0000000..c212d9f
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:爆炸\r
+英文名:explode\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/184/networks.lzma b/dial_lzma/184/networks.lzma
new file mode 100755 (executable)
index 0000000..a906bdd
Binary files /dev/null and b/dial_lzma/184/networks.lzma differ
diff --git a/dial_lzma/184/networks.png b/dial_lzma/184/networks.png
new file mode 100755 (executable)
index 0000000..825e71d
Binary files /dev/null and b/dial_lzma/184/networks.png differ
diff --git a/dial_lzma/184/说明.txt b/dial_lzma/184/说明.txt
new file mode 100755 (executable)
index 0000000..2ec6f85
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:神经网络\r
+英文名:networks\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/185/distortion.lzma b/dial_lzma/185/distortion.lzma
new file mode 100755 (executable)
index 0000000..d51ecf7
Binary files /dev/null and b/dial_lzma/185/distortion.lzma differ
diff --git a/dial_lzma/185/distortion.png b/dial_lzma/185/distortion.png
new file mode 100755 (executable)
index 0000000..0e82c48
Binary files /dev/null and b/dial_lzma/185/distortion.png differ
diff --git a/dial_lzma/185/说明.txt b/dial_lzma/185/说明.txt
new file mode 100755 (executable)
index 0000000..f6aed49
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:扭曲\r
+英文名:distortion\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/186/linevalley.lzma b/dial_lzma/186/linevalley.lzma
new file mode 100755 (executable)
index 0000000..0a31134
Binary files /dev/null and b/dial_lzma/186/linevalley.lzma differ
diff --git a/dial_lzma/186/linevalley.png b/dial_lzma/186/linevalley.png
new file mode 100755 (executable)
index 0000000..8fdf668
Binary files /dev/null and b/dial_lzma/186/linevalley.png differ
diff --git a/dial_lzma/186/说明.txt b/dial_lzma/186/说明.txt
new file mode 100755 (executable)
index 0000000..fde7ef3
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:线条_山谷\r
+英文名:line_valley\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/187/redbal.lzma b/dial_lzma/187/redbal.lzma
new file mode 100755 (executable)
index 0000000..517d710
Binary files /dev/null and b/dial_lzma/187/redbal.lzma differ
diff --git a/dial_lzma/187/redbal.png b/dial_lzma/187/redbal.png
new file mode 100755 (executable)
index 0000000..47e0a1f
Binary files /dev/null and b/dial_lzma/187/redbal.png differ
diff --git a/dial_lzma/187/说明.txt b/dial_lzma/187/说明.txt
new file mode 100755 (executable)
index 0000000..87a9c50
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:红色小球\r
+英文名:red_bal\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/188/david.lzma b/dial_lzma/188/david.lzma
new file mode 100755 (executable)
index 0000000..a414958
Binary files /dev/null and b/dial_lzma/188/david.lzma differ
diff --git a/dial_lzma/188/david.png b/dial_lzma/188/david.png
new file mode 100755 (executable)
index 0000000..63d1fea
Binary files /dev/null and b/dial_lzma/188/david.png differ
diff --git a/dial_lzma/188/说明.txt b/dial_lzma/188/说明.txt
new file mode 100755 (executable)
index 0000000..f57e5b7
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:大卫\r
+英文名:david\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/189/dragonball.lzma b/dial_lzma/189/dragonball.lzma
new file mode 100755 (executable)
index 0000000..0987560
Binary files /dev/null and b/dial_lzma/189/dragonball.lzma differ
diff --git a/dial_lzma/189/dragonball.png b/dial_lzma/189/dragonball.png
new file mode 100755 (executable)
index 0000000..2d03321
Binary files /dev/null and b/dial_lzma/189/dragonball.png differ
diff --git a/dial_lzma/189/说明.txt b/dial_lzma/189/说明.txt
new file mode 100755 (executable)
index 0000000..a4e695f
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:龙珠\r
+英文名:dragon_ball\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/190/science.lzma b/dial_lzma/190/science.lzma
new file mode 100755 (executable)
index 0000000..952b622
Binary files /dev/null and b/dial_lzma/190/science.lzma differ
diff --git a/dial_lzma/190/science.png b/dial_lzma/190/science.png
new file mode 100755 (executable)
index 0000000..c29e09f
Binary files /dev/null and b/dial_lzma/190/science.png differ
diff --git a/dial_lzma/190/说明.txt b/dial_lzma/190/说明.txt
new file mode 100755 (executable)
index 0000000..8f060f4
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:科幻\r
+英文名:science\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/191/future.lzma b/dial_lzma/191/future.lzma
new file mode 100755 (executable)
index 0000000..03a1185
Binary files /dev/null and b/dial_lzma/191/future.lzma differ
diff --git a/dial_lzma/191/future.png b/dial_lzma/191/future.png
new file mode 100755 (executable)
index 0000000..14aa43c
Binary files /dev/null and b/dial_lzma/191/future.png differ
diff --git a/dial_lzma/191/说明.txt b/dial_lzma/191/说明.txt
new file mode 100755 (executable)
index 0000000..6095262
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:未来\r
+英文名:future\r
+标签:经典指针、插画艺术\r
diff --git a/dial_lzma/192/HappyNewYear.lzma b/dial_lzma/192/HappyNewYear.lzma
new file mode 100755 (executable)
index 0000000..9144e2c
Binary files /dev/null and b/dial_lzma/192/HappyNewYear.lzma differ
diff --git a/dial_lzma/192/HappyNewYear.png b/dial_lzma/192/HappyNewYear.png
new file mode 100755 (executable)
index 0000000..5e3cc9f
Binary files /dev/null and b/dial_lzma/192/HappyNewYear.png differ
diff --git a/dial_lzma/192/说明.txt b/dial_lzma/192/说明.txt
new file mode 100755 (executable)
index 0000000..c5ce2d8
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:新年快乐\r
+英文名:Happy New Year\r
+标签:数码表盘;节日活动;新年表盘\r
diff --git a/dial_lzma/193/SnakeYearLuck.lzma b/dial_lzma/193/SnakeYearLuck.lzma
new file mode 100755 (executable)
index 0000000..ee1a111
Binary files /dev/null and b/dial_lzma/193/SnakeYearLuck.lzma differ
diff --git a/dial_lzma/193/SnakeYearLuck.png b/dial_lzma/193/SnakeYearLuck.png
new file mode 100755 (executable)
index 0000000..fb461a3
Binary files /dev/null and b/dial_lzma/193/SnakeYearLuck.png differ
diff --git a/dial_lzma/193/说明.txt b/dial_lzma/193/说明.txt
new file mode 100755 (executable)
index 0000000..78d22e3
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:蛇年大吉\r
+英文名:Snake Year Luck\r
+标签:数码表盘;新年表盘\r
diff --git a/dial_lzma/194/LuckyDollNew.lzma b/dial_lzma/194/LuckyDollNew.lzma
new file mode 100755 (executable)
index 0000000..d054755
Binary files /dev/null and b/dial_lzma/194/LuckyDollNew.lzma differ
diff --git a/dial_lzma/194/LuckyDollNew.png b/dial_lzma/194/LuckyDollNew.png
new file mode 100755 (executable)
index 0000000..18bed06
Binary files /dev/null and b/dial_lzma/194/LuckyDollNew.png differ
diff --git a/dial_lzma/194/说明.txt b/dial_lzma/194/说明.txt
new file mode 100755 (executable)
index 0000000..6e5119c
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:福娃贺岁\r
+英文名:Lucky Doll New\r
+标签:数码表盘;新年表盘\r
diff --git a/dial_lzma/195/WishYouWealth.lzma b/dial_lzma/195/WishYouWealth.lzma
new file mode 100755 (executable)
index 0000000..c0e5e78
Binary files /dev/null and b/dial_lzma/195/WishYouWealth.lzma differ
diff --git a/dial_lzma/195/WishYouWealth.png b/dial_lzma/195/WishYouWealth.png
new file mode 100755 (executable)
index 0000000..defa13d
Binary files /dev/null and b/dial_lzma/195/WishYouWealth.png differ
diff --git a/dial_lzma/195/说明.txt b/dial_lzma/195/说明.txt
new file mode 100755 (executable)
index 0000000..ac7f430
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:恭喜发财\r
+英文名:Wish You Wealth\r
+标签:数码表盘;节日活动;新年表盘\r
diff --git a/dial_lzma/196/GoodLuckForever.lzma b/dial_lzma/196/GoodLuckForever.lzma
new file mode 100755 (executable)
index 0000000..71aaba3
Binary files /dev/null and b/dial_lzma/196/GoodLuckForever.lzma differ
diff --git a/dial_lzma/196/GoodLuckForever.png b/dial_lzma/196/GoodLuckForever.png
new file mode 100755 (executable)
index 0000000..0831429
Binary files /dev/null and b/dial_lzma/196/GoodLuckForever.png differ
diff --git a/dial_lzma/196/说明.txt b/dial_lzma/196/说明.txt
new file mode 100755 (executable)
index 0000000..e64389b
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:好运连连\r
+英文名:Good Luck Forever\r
+标签:数码表盘;新年表盘\r
diff --git a/dial_lzma/197/WealthfromAll.lzma b/dial_lzma/197/WealthfromAll.lzma
new file mode 100755 (executable)
index 0000000..f37b042
Binary files /dev/null and b/dial_lzma/197/WealthfromAll.lzma differ
diff --git a/dial_lzma/197/WealthfromAll.png b/dial_lzma/197/WealthfromAll.png
new file mode 100755 (executable)
index 0000000..8c4d48a
Binary files /dev/null and b/dial_lzma/197/WealthfromAll.png differ
diff --git a/dial_lzma/197/说明.txt b/dial_lzma/197/说明.txt
new file mode 100755 (executable)
index 0000000..fc99448
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:八方来财\r
+英文名:Wealth from All\r
+标签:数码表盘;节日活动;新年表盘\r
diff --git a/dial_lzma/198/Welcome2025.lzma b/dial_lzma/198/Welcome2025.lzma
new file mode 100755 (executable)
index 0000000..601b2da
Binary files /dev/null and b/dial_lzma/198/Welcome2025.lzma differ
diff --git a/dial_lzma/198/Welcome2025.png b/dial_lzma/198/Welcome2025.png
new file mode 100755 (executable)
index 0000000..4d63449
Binary files /dev/null and b/dial_lzma/198/Welcome2025.png differ
diff --git a/dial_lzma/198/说明.txt b/dial_lzma/198/说明.txt
new file mode 100755 (executable)
index 0000000..51eb495
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:喜迎2025\r
+英文名:Welcome 2025\r
+标签:数码表盘;新年表盘\r
diff --git a/dial_lzma/199/NewYearsDay.lzma b/dial_lzma/199/NewYearsDay.lzma
new file mode 100755 (executable)
index 0000000..1603491
Binary files /dev/null and b/dial_lzma/199/NewYearsDay.lzma differ
diff --git a/dial_lzma/199/NewYearsDay.png b/dial_lzma/199/NewYearsDay.png
new file mode 100755 (executable)
index 0000000..4a317fb
Binary files /dev/null and b/dial_lzma/199/NewYearsDay.png differ
diff --git a/dial_lzma/199/说明.txt b/dial_lzma/199/说明.txt
new file mode 100755 (executable)
index 0000000..e751829
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:元旦快乐\r
+英文名:New Year's Day\r
+标签:数码表盘;节日活动;新年表盘\r
diff --git a/dial_lzma/200/HappySpring.lzma b/dial_lzma/200/HappySpring.lzma
new file mode 100755 (executable)
index 0000000..d382b87
Binary files /dev/null and b/dial_lzma/200/HappySpring.lzma differ
diff --git a/dial_lzma/200/HappySpring.png b/dial_lzma/200/HappySpring.png
new file mode 100755 (executable)
index 0000000..69ddb7b
Binary files /dev/null and b/dial_lzma/200/HappySpring.png differ
diff --git a/dial_lzma/200/说明.txt b/dial_lzma/200/说明.txt
new file mode 100755 (executable)
index 0000000..13b8c8e
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:新春快乐\r
+英文名:Happy Spring\r
+标签:数码表盘;节日活动;新年表盘\r
diff --git a/dial_lzma/201/2025.lzma b/dial_lzma/201/2025.lzma
new file mode 100755 (executable)
index 0000000..ae92512
Binary files /dev/null and b/dial_lzma/201/2025.lzma differ
diff --git a/dial_lzma/201/2025.png b/dial_lzma/201/2025.png
new file mode 100755 (executable)
index 0000000..18fe654
Binary files /dev/null and b/dial_lzma/201/2025.png differ
diff --git a/dial_lzma/201/说明.txt b/dial_lzma/201/说明.txt
new file mode 100755 (executable)
index 0000000..4ef3adc
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:2025\r
+英文名:2025\r
+标签:数码表盘;新年表盘\r
diff --git a/dial_lzma/202/LuckwithSnake.lzma b/dial_lzma/202/LuckwithSnake.lzma
new file mode 100755 (executable)
index 0000000..c6d23e1
Binary files /dev/null and b/dial_lzma/202/LuckwithSnake.lzma differ
diff --git a/dial_lzma/202/LuckwithSnake.png b/dial_lzma/202/LuckwithSnake.png
new file mode 100755 (executable)
index 0000000..70ecebf
Binary files /dev/null and b/dial_lzma/202/LuckwithSnake.png differ
diff --git a/dial_lzma/202/说明.txt b/dial_lzma/202/说明.txt
new file mode 100755 (executable)
index 0000000..303431a
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:蛇来运转\r
+英文名:Luck with Snake\r
+标签:数码表盘;新年表盘\r
diff --git a/dial_lzma/203/GoodSnakeYear.lzma b/dial_lzma/203/GoodSnakeYear.lzma
new file mode 100755 (executable)
index 0000000..72fdb3e
Binary files /dev/null and b/dial_lzma/203/GoodSnakeYear.lzma differ
diff --git a/dial_lzma/203/GoodSnakeYear.png b/dial_lzma/203/GoodSnakeYear.png
new file mode 100755 (executable)
index 0000000..b0bba52
Binary files /dev/null and b/dial_lzma/203/GoodSnakeYear.png differ
diff --git a/dial_lzma/203/说明.txt b/dial_lzma/203/说明.txt
new file mode 100755 (executable)
index 0000000..4d9f3a1
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:蛇年吉祥\r
+英文名:Good Snake Year\r
+标签:数码表盘;新年表盘\r
diff --git a/dial_lzma/204/LighWisdom.lzma b/dial_lzma/204/LighWisdom.lzma
new file mode 100755 (executable)
index 0000000..e551f02
Binary files /dev/null and b/dial_lzma/204/LighWisdom.lzma differ
diff --git a/dial_lzma/204/LighWisdom.png b/dial_lzma/204/LighWisdom.png
new file mode 100755 (executable)
index 0000000..8231d67
Binary files /dev/null and b/dial_lzma/204/LighWisdom.png differ
diff --git a/dial_lzma/204/说明.txt b/dial_lzma/204/说明.txt
new file mode 100755 (executable)
index 0000000..cfac1dc
--- /dev/null
@@ -0,0 +1,3 @@
+中文名:灯塔慧\r
+英文名:LighWisdom\r
+标签:数码表盘;\r
diff --git a/lzma_tool/lzma_tool b/lzma_tool/lzma_tool
new file mode 100755 (executable)
index 0000000..711d0dc
Binary files /dev/null and b/lzma_tool/lzma_tool differ
diff --git a/lzma_tool/lzma_tool.exe b/lzma_tool/lzma_tool.exe
new file mode 100755 (executable)
index 0000000..300ea2f
Binary files /dev/null and b/lzma_tool/lzma_tool.exe differ
diff --git a/lzma_tool/readme.txt b/lzma_tool/readme.txt
new file mode 100755 (executable)
index 0000000..36c4b06
--- /dev/null
@@ -0,0 +1,9 @@
+LZMA SDK 21.07
+--------------
+
+UNIX/Linux version
+------------------
+To compile C++ version of file->file LZMA encoding, go to directory
+CPP/7zip/Bundles/LzmaCon
+and call make to recompile it:
+  make -f makefile.gcc clean all
diff --git a/make_tools/gen_dial_bin.sh b/make_tools/gen_dial_bin.sh
new file mode 100755 (executable)
index 0000000..3f84676
--- /dev/null
@@ -0,0 +1,112 @@
+#!/bin/bash
+###
+# @Date: 2024-06-07 09:44:50
+# @LastEditors: Caisking 3449750381@qq.com
+# @LastEditTime: 2024-08-30 15:00:54
+# @FilePath: /FD230/tools/dial_converter_tool/make_tools/gen_dial_bin.sh
+###
+
+# 定义颜色常量,用于彩色输出
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[0;33m'
+NC='\033[0m'
+
+# 返回上一级目录
+cd .. || { echo -e "${RED}Error: Failed to change directory.${NC}"; exit 1; }
+
+# 检查并创建 out 和 dial_lzma 目录
+mkdir -p out dial_lzma || { echo -e "${RED}Error: Failed to create directories.${NC}"; exit 1; }
+
+# 定义 main.py 的路径
+MAIN_PY_PATH="dial_converter_tool/main.py"
+
+# 检查 main.py 文件是否存在
+if [ ! -f "$MAIN_PY_PATH" ]; then
+    echo -e "${RED}Error: main.py not found at $MAIN_PY_PATH.${NC}"
+    exit 1
+fi
+
+# 检查参数数量
+case $# in
+    0)
+        # 没有参数,制作所有表盘
+        subdirs=(instance/*/)
+        ;;
+    1)
+        # 一个参数,制作单个表盘
+        subdirs=("instance/${1#instance/}")
+        if [ ! -d "${subdirs[0]}" ]; then
+            echo -e "${RED}Error: Specified directory '${subdirs[0]}' does not exist.${NC}"
+            exit 1
+        fi
+        ;;
+    2)
+        # 两个参数,制作指定范围的表盘
+        start_dir=$(basename "$1")
+        end_dir=$(basename "$2")
+        subdirs=()
+        for dir in instance/*/; do
+            dir_name=$(basename "$dir")
+            if [[ "$dir_name" =~ ^[0-9]+$ ]] && [ "$dir_name" -gt "$start_dir" ] && [ "$dir_name" -lt "$end_dir" ]; then
+                subdirs+=("$dir")
+            fi
+        done
+        if [ ${#subdirs[@]} -eq 0 ]; then
+            echo -e "${RED}Error: No directories found in the specified range.${NC}"
+            exit 1
+        fi
+        ;;
+    *)
+        # 参数数量超过2个,输出使用说明并退出
+        echo -e "${YELLOW}Usage: $0 [dial_folder] or $0 [start_dir] [end_dir]${NC}"
+        exit 1
+        ;;
+esac
+
+# 获取脚本所在目录
+# SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
+# LZMA_TOOL_PATH="$SCRIPT_DIR/../lzma_tool/lzma_tool"
+
+# 遍历子目录处理表盘
+for subdir in "${subdirs[@]}"; do
+    # 提取子目录名称
+    dial=$(basename "$subdir")
+
+    # 查找子目录中的 XML 文件
+    xml_file=$(find "$subdir" -maxdepth 1 -type f -name "*.xml" -print -quit)
+    if [ -z "$xml_file" ]; then
+        echo -e "${RED}Error: XML file not found in $subdir${NC}"
+        continue
+    fi
+
+    # 计算文件数量和大小
+    dialfilecount=$(find "$subdir" -maxdepth 1 -type f | wc -l)
+    dialfilesize=$(du -sh "$subdir" | awk '{print $1}')
+
+    # 输出统计信息
+    echo -e "${YELLOW}Processing $dial [$dialfilecount files, $dialfilesize size]${NC}"
+
+    # 调用 main.py 处理子目录中的文件
+    if ! python "$MAIN_PY_PATH" -dir "$subdir" -output out/; then
+        echo -e "${RED}Error processing directory $dial${NC}"
+        continue
+    fi
+
+    # 压缩 .bin 文件到 .lzma 文件 
+    bin_file="out/${xml_file##*/}"
+    bin_file="${bin_file%.xml}.bin"
+    lzma_file="dial_lzma/$dial/${xml_file##*/}"
+    lzma_file="${lzma_file%.xml}.lzma"
+
+
+    # 创建必要的目录 
+    mkdir -p "$(dirname "$lzma_file")"
+
+    # 调用 lzma_tool(当前目录在dial)
+    if ! ./lzma_tool/lzma_tool -d12 -lc0 -lp0 e "$bin_file" "$lzma_file"; then
+        echo -e "${RED}lzma_tool directory $dial error${NC}"
+    else
+        echo -e "${GREEN}lzma_tool directory $dial ok${NC}"
+    fi
+done
\ No newline at end of file
diff --git a/make_tools/表盘制作脚本使用说明.md b/make_tools/表盘制作脚本使用说明.md
new file mode 100755 (executable)
index 0000000..62e5170
--- /dev/null
@@ -0,0 +1,46 @@
+## 在liunx环境运行表盘脚本\r
+\r
+# 1.下载对应模块\r
+\r
+pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Pillow\r
+\r
+pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python\r
+\r
+pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib\r
+\r
+## 2.对表盘工具进行赋权限\r
+\r
+chmod +x gen_dial_bin.sh\r
+./gen_dial_bin.sh\r
+\r
+## 3.制作运行单个表盘\r
+\r
+python ./main.py -dir ./instance/1028/ -output ./out/\r
+\r
+#使用lzma_tool工具需要赋权限\r
+ chmod +x ../lzma_tool/lzma_tool\r
+\r
+### 更新版本 0830\r
+\r
+- 制作单个表盘以及lzma文件   **./gen_dial_bin.sh + 表盘文件夹路径**\r
+\r
+  ```\r
+     示例  ./gen_dial_bin.sh ../instance/114/\r
+  ```\r
+- 制作所有的表盘以及lzma文件\r
+\r
+  ```\r
+      ./gen_dial_bin.sh\r
+  ```\r
+\r
+\r
+\r
+### 更新版本0110\r
+\r
+制作指定段表盘 : start ->end 根据表盘Id 进行依次制作表盘\r
+\r
+```c\r
+ 示例  ./gen_dial_bin.sh ../instance/114/ ../instance/124/ \r
+```\r
+\r
+- 效果会生成 114->124 一共11个表盘\r
old mode 100644 (file)
new mode 100755 (executable)