| | |
| | | "tauri": "tauri" |
| | | }, |
| | | "dependencies": { |
| | | "@tauri-apps/api": "^2", |
| | | "@tauri-apps/api": "^2.5.0", |
| | | "@tauri-apps/plugin-opener": "^2", |
| | | "echarts": "^5.6.0", |
| | | "pinia": "^3.0.3", |
| | | "three": "^0.176.0", |
| | | "vue": "^3.5.13" |
| | | "vue": "^3.5.13", |
| | | "mathjs": "^12.4.1" |
| | | }, |
| | | |
| | | "devDependencies": { |
| | | "@tauri-apps/cli": "^2", |
| | | "@types/echarts": "^5.0.0", |
| | |
| | | |
| | | [[package]] |
| | | name = "adler2" |
| | | version = "2.0.0" |
| | | version = "2.0.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" |
| | | checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" |
| | | |
| | | [[package]] |
| | | name = "aho-corasick" |
| | |
| | | |
| | | [[package]] |
| | | name = "async-channel" |
| | | version = "2.3.1" |
| | | version = "2.5.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" |
| | | checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" |
| | | dependencies = [ |
| | | "concurrent-queue", |
| | | "event-listener-strategy", |
| | |
| | | |
| | | [[package]] |
| | | name = "async-io" |
| | | version = "2.4.0" |
| | | version = "2.4.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" |
| | | checksum = "1237c0ae75a0f3765f58910ff9cdd0a12eeb39ab2f4c7de23262f337f0aacbb3" |
| | | dependencies = [ |
| | | "async-lock", |
| | | "cfg-if", |
| | |
| | | "futures-lite", |
| | | "parking", |
| | | "polling", |
| | | "rustix 0.38.44", |
| | | "rustix", |
| | | "slab", |
| | | "tracing", |
| | | "windows-sys 0.59.0", |
| | |
| | | |
| | | [[package]] |
| | | name = "async-process" |
| | | version = "2.3.0" |
| | | version = "2.3.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" |
| | | checksum = "cde3f4e40e6021d7acffc90095cbd6dc54cb593903d1de5832f435eb274b85dc" |
| | | dependencies = [ |
| | | "async-channel", |
| | | "async-io", |
| | |
| | | "cfg-if", |
| | | "event-listener", |
| | | "futures-lite", |
| | | "rustix 0.38.44", |
| | | "rustix", |
| | | "tracing", |
| | | ] |
| | | |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "async-signal" |
| | | version = "0.2.10" |
| | | version = "0.2.11" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" |
| | | checksum = "d7605a4e50d4b06df3898d5a70bf5fde51ed9059b0434b73105193bc27acce0d" |
| | | dependencies = [ |
| | | "async-io", |
| | | "async-lock", |
| | |
| | | "cfg-if", |
| | | "futures-core", |
| | | "futures-io", |
| | | "rustix 0.38.44", |
| | | "rustix", |
| | | "signal-hook-registry", |
| | | "slab", |
| | | "windows-sys 0.59.0", |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "autocfg" |
| | | version = "1.4.0" |
| | | version = "1.5.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" |
| | | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" |
| | | |
| | | [[package]] |
| | | name = "backtrace" |
| | |
| | | |
| | | [[package]] |
| | | name = "blocking" |
| | | version = "1.6.1" |
| | | version = "1.6.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" |
| | | checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" |
| | | dependencies = [ |
| | | "async-channel", |
| | | "async-task", |
| | |
| | | |
| | | [[package]] |
| | | name = "brotli" |
| | | version = "7.0.0" |
| | | version = "8.0.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" |
| | | checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" |
| | | dependencies = [ |
| | | "alloc-no-stdlib", |
| | | "alloc-stdlib", |
| | |
| | | |
| | | [[package]] |
| | | name = "brotli-decompressor" |
| | | version = "4.0.3" |
| | | version = "5.0.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "a334ef7c9e23abf0ce748e8cd309037da93e606ad52eb372e4ce327a0dcfbdfd" |
| | | checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" |
| | | dependencies = [ |
| | | "alloc-no-stdlib", |
| | | "alloc-stdlib", |
| | |
| | | |
| | | [[package]] |
| | | name = "bumpalo" |
| | | version = "3.17.0" |
| | | version = "3.19.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" |
| | | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" |
| | | |
| | | [[package]] |
| | | name = "bytemuck" |
| | | version = "1.23.0" |
| | | version = "1.23.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" |
| | | checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" |
| | | |
| | | [[package]] |
| | | name = "byteorder" |
| | |
| | | |
| | | [[package]] |
| | | name = "camino" |
| | | version = "1.1.9" |
| | | version = "1.1.10" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" |
| | | checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" |
| | | dependencies = [ |
| | | "serde", |
| | | ] |
| | |
| | | checksum = "02260d489095346e5cafd04dea8e8cb54d1d74fcd759022a9b72986ebe9a1257" |
| | | dependencies = [ |
| | | "serde", |
| | | "toml", |
| | | "toml 0.8.23", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "cc" |
| | | version = "1.2.22" |
| | | version = "1.2.29" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" |
| | | checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" |
| | | dependencies = [ |
| | | "shlex", |
| | | ] |
| | |
| | | |
| | | [[package]] |
| | | name = "cfg-if" |
| | | version = "1.0.0" |
| | | version = "1.0.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" |
| | | checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" |
| | | |
| | | [[package]] |
| | | name = "cfg_aliases" |
| | |
| | | dependencies = [ |
| | | "android-tzdata", |
| | | "iana-time-zone", |
| | | "js-sys", |
| | | "num-traits", |
| | | "serde", |
| | | "wasm-bindgen", |
| | | "windows-link", |
| | | ] |
| | | |
| | |
| | | |
| | | [[package]] |
| | | name = "core-foundation" |
| | | version = "0.10.0" |
| | | version = "0.9.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" |
| | | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" |
| | | dependencies = [ |
| | | "core-foundation-sys", |
| | | "libc", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "core-foundation" |
| | | version = "0.10.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" |
| | | dependencies = [ |
| | | "core-foundation-sys", |
| | | "libc", |
| | |
| | | checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "core-foundation", |
| | | "core-foundation 0.10.1", |
| | | "core-graphics-types", |
| | | "foreign-types", |
| | | "foreign-types 0.5.0", |
| | | "libc", |
| | | ] |
| | | |
| | |
| | | checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "core-foundation", |
| | | "core-foundation 0.10.1", |
| | | "libc", |
| | | ] |
| | | |
| | |
| | | |
| | | [[package]] |
| | | name = "crc32fast" |
| | | version = "1.4.2" |
| | | version = "1.5.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" |
| | | checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" |
| | | dependencies = [ |
| | | "cfg-if", |
| | | ] |
| | |
| | | |
| | | [[package]] |
| | | name = "cssparser" |
| | | version = "0.27.2" |
| | | version = "0.29.6" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" |
| | | checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" |
| | | dependencies = [ |
| | | "cssparser-macros", |
| | | "dtoa-short", |
| | | "itoa 0.4.8", |
| | | "itoa", |
| | | "matches", |
| | | "phf 0.8.0", |
| | | "phf 0.10.1", |
| | | "proc-macro2", |
| | | "quote", |
| | | "smallvec", |
| | |
| | | checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" |
| | | dependencies = [ |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" |
| | | dependencies = [ |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | "proc-macro2", |
| | | "quote", |
| | | "strsim", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "darling_core", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "data-encoding" |
| | | version = "2.9.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" |
| | | |
| | | [[package]] |
| | | name = "deranged" |
| | |
| | | "proc-macro2", |
| | | "quote", |
| | | "rustc_version", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | "libc", |
| | | "option-ext", |
| | | "redox_users", |
| | | "windows-sys 0.59.0", |
| | | "windows-sys 0.60.2", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "dlopen2_derive" |
| | | version = "0.4.0" |
| | | version = "0.4.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" |
| | | checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "embed-resource" |
| | | version = "3.0.2" |
| | | version = "3.0.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "7fbc6e0d8e0c03a655b53ca813f0463d2c956bc4db8138dbc89f120b066551e3" |
| | | checksum = "4c6d81016d6c977deefb2ef8d8290da019e27cc26167e102185da528e6c0ab38" |
| | | dependencies = [ |
| | | "cc", |
| | | "memchr", |
| | | "rustc_version", |
| | | "toml", |
| | | "toml 0.9.2", |
| | | "vswhom", |
| | | "winreg", |
| | | ] |
| | |
| | | |
| | | [[package]] |
| | | name = "enumflags2" |
| | | version = "0.7.11" |
| | | version = "0.7.12" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" |
| | | checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" |
| | | dependencies = [ |
| | | "enumflags2_derive", |
| | | "serde", |
| | |
| | | |
| | | [[package]] |
| | | name = "enumflags2_derive" |
| | | version = "0.7.11" |
| | | version = "0.7.12" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" |
| | | checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "errno" |
| | | version = "0.3.12" |
| | | version = "0.3.13" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" |
| | | checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" |
| | | dependencies = [ |
| | | "libc", |
| | | "windows-sys 0.59.0", |
| | | "windows-sys 0.60.2", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "flate2" |
| | | version = "1.1.1" |
| | | version = "1.1.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" |
| | | checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" |
| | | dependencies = [ |
| | | "crc32fast", |
| | | "miniz_oxide", |
| | |
| | | |
| | | [[package]] |
| | | name = "foreign-types" |
| | | version = "0.3.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" |
| | | dependencies = [ |
| | | "foreign-types-shared 0.1.1", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "foreign-types" |
| | | version = "0.5.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" |
| | | dependencies = [ |
| | | "foreign-types-macros", |
| | | "foreign-types-shared", |
| | | "foreign-types-shared 0.3.1", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "foreign-types-shared" |
| | | version = "0.1.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" |
| | | |
| | | [[package]] |
| | | name = "foreign-types-shared" |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "cfg-if", |
| | | "libc", |
| | | "wasi 0.11.0+wasi-snapshot-preview1", |
| | | "wasi 0.11.1+wasi-snapshot-preview1", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | "proc-macro-error", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | "proc-macro-error", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "hashbrown" |
| | | version = "0.15.3" |
| | | version = "0.15.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" |
| | | checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" |
| | | |
| | | [[package]] |
| | | name = "heck" |
| | |
| | | |
| | | [[package]] |
| | | name = "hermit-abi" |
| | | version = "0.4.0" |
| | | version = "0.5.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" |
| | | checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" |
| | | |
| | | [[package]] |
| | | name = "hex" |
| | |
| | | |
| | | [[package]] |
| | | name = "html5ever" |
| | | version = "0.26.0" |
| | | version = "0.29.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" |
| | | checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" |
| | | dependencies = [ |
| | | "log", |
| | | "mac", |
| | | "markup5ever", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 1.0.109", |
| | | "match_token", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "bytes", |
| | | "fnv", |
| | | "itoa 1.0.15", |
| | | "itoa", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | "http", |
| | | "http-body", |
| | | "httparse", |
| | | "itoa 1.0.15", |
| | | "itoa", |
| | | "pin-project-lite", |
| | | "smallvec", |
| | | "tokio", |
| | |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "hyper-util" |
| | | version = "0.1.11" |
| | | name = "hyper-tls" |
| | | version = "0.6.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" |
| | | checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" |
| | | dependencies = [ |
| | | "bytes", |
| | | "http-body-util", |
| | | "hyper", |
| | | "hyper-util", |
| | | "native-tls", |
| | | "tokio", |
| | | "tokio-native-tls", |
| | | "tower-service", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "hyper-util" |
| | | version = "0.1.15" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" |
| | | dependencies = [ |
| | | "base64 0.22.1", |
| | | "bytes", |
| | | "futures-channel", |
| | | "futures-core", |
| | | "futures-util", |
| | | "http", |
| | | "http-body", |
| | | "hyper", |
| | | "ipnet", |
| | | "libc", |
| | | "percent-encoding", |
| | | "pin-project-lite", |
| | | "socket2", |
| | | "tokio", |
| | |
| | | "js-sys", |
| | | "log", |
| | | "wasm-bindgen", |
| | | "windows-core 0.61.1", |
| | | "windows-core", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "icu_properties" |
| | | version = "2.0.0" |
| | | version = "2.0.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" |
| | | checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" |
| | | dependencies = [ |
| | | "displaydoc", |
| | | "icu_collections", |
| | |
| | | |
| | | [[package]] |
| | | name = "icu_properties_data" |
| | | version = "2.0.0" |
| | | version = "2.0.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" |
| | | checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" |
| | | |
| | | [[package]] |
| | | name = "icu_provider" |
| | |
| | | |
| | | [[package]] |
| | | name = "indexmap" |
| | | version = "2.9.0" |
| | | version = "2.10.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" |
| | | checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" |
| | | dependencies = [ |
| | | "equivalent", |
| | | "hashbrown 0.15.3", |
| | | "hashbrown 0.15.4", |
| | | "serde", |
| | | ] |
| | | |
| | |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "io-kit-sys" |
| | | version = "0.4.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" |
| | | dependencies = [ |
| | | "core-foundation-sys", |
| | | "mach2", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "io-uring" |
| | | version = "0.7.8" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "cfg-if", |
| | | "libc", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "ipnet" |
| | | version = "2.11.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" |
| | | |
| | | [[package]] |
| | | name = "iri-string" |
| | | version = "0.7.8" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" |
| | | dependencies = [ |
| | | "memchr", |
| | | "serde", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "is-docker" |
| | |
| | | "is-docker", |
| | | "once_cell", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "itoa" |
| | | version = "0.4.8" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" |
| | | |
| | | [[package]] |
| | | name = "itoa" |
| | |
| | | |
| | | [[package]] |
| | | name = "kuchikiki" |
| | | version = "0.8.2" |
| | | version = "0.8.8-speedreader" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" |
| | | checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" |
| | | dependencies = [ |
| | | "cssparser", |
| | | "html5ever", |
| | | "indexmap 1.9.3", |
| | | "matches", |
| | | "indexmap 2.10.0", |
| | | "selectors", |
| | | ] |
| | | |
| | |
| | | |
| | | [[package]] |
| | | name = "libc" |
| | | version = "0.2.172" |
| | | version = "0.2.174" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" |
| | | checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" |
| | | |
| | | [[package]] |
| | | name = "libloading" |
| | |
| | | |
| | | [[package]] |
| | | name = "libredox" |
| | | version = "0.1.3" |
| | | version = "0.1.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" |
| | | checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "libc", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "linux-raw-sys" |
| | | version = "0.4.15" |
| | | name = "libudev" |
| | | version = "0.3.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" |
| | | checksum = "78b324152da65df7bb95acfcaab55e3097ceaab02fb19b228a9eb74d55f135e0" |
| | | dependencies = [ |
| | | "libc", |
| | | "libudev-sys", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "libudev-sys" |
| | | version = "0.1.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" |
| | | dependencies = [ |
| | | "libc", |
| | | "pkg-config", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "linux-raw-sys" |
| | |
| | | |
| | | [[package]] |
| | | name = "lock_api" |
| | | version = "0.4.12" |
| | | version = "0.4.13" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" |
| | | checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" |
| | | dependencies = [ |
| | | "autocfg", |
| | | "scopeguard", |
| | |
| | | checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" |
| | | |
| | | [[package]] |
| | | name = "markup5ever" |
| | | version = "0.11.0" |
| | | name = "mach2" |
| | | version = "0.4.3" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" |
| | | checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" |
| | | dependencies = [ |
| | | "libc", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "markup5ever" |
| | | version = "0.14.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" |
| | | dependencies = [ |
| | | "log", |
| | | "phf 0.10.1", |
| | | "phf_codegen 0.10.0", |
| | | "phf 0.11.3", |
| | | "phf_codegen 0.11.3", |
| | | "string_cache", |
| | | "string_cache_codegen", |
| | | "tendril", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "match_token" |
| | | version = "0.1.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "memchr" |
| | | version = "2.7.4" |
| | | version = "2.7.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" |
| | | checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" |
| | | |
| | | [[package]] |
| | | name = "memoffset" |
| | |
| | | |
| | | [[package]] |
| | | name = "miniz_oxide" |
| | | version = "0.8.8" |
| | | version = "0.8.9" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" |
| | | checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" |
| | | dependencies = [ |
| | | "adler2", |
| | | "simd-adler32", |
| | |
| | | |
| | | [[package]] |
| | | name = "mio" |
| | | version = "1.0.3" |
| | | version = "1.0.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" |
| | | checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" |
| | | dependencies = [ |
| | | "libc", |
| | | "wasi 0.11.0+wasi-snapshot-preview1", |
| | | "windows-sys 0.52.0", |
| | | "wasi 0.11.1+wasi-snapshot-preview1", |
| | | "windows-sys 0.59.0", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "muda" |
| | | version = "0.16.1" |
| | | version = "0.17.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "4de14a9b5d569ca68d7c891d613b390cf5ab4f851c77aaa2f9e435555d3d9492" |
| | | checksum = "58b89bf91c19bf036347f1ab85a81c560f08c0667c8601bece664d860a600988" |
| | | dependencies = [ |
| | | "crossbeam-channel", |
| | | "dpi", |
| | |
| | | "serde", |
| | | "thiserror 2.0.12", |
| | | "windows-sys 0.59.0", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "native-tls" |
| | | version = "0.2.14" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" |
| | | dependencies = [ |
| | | "libc", |
| | | "log", |
| | | "openssl", |
| | | "openssl-probe", |
| | | "openssl-sys", |
| | | "schannel", |
| | | "security-framework", |
| | | "security-framework-sys", |
| | | "tempfile", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "nix" |
| | | version = "0.26.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" |
| | | dependencies = [ |
| | | "bitflags 1.3.2", |
| | | "cfg-if", |
| | | "libc", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "nix" |
| | | version = "0.30.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" |
| | |
| | | |
| | | [[package]] |
| | | name = "num_enum" |
| | | version = "0.7.3" |
| | | version = "0.7.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" |
| | | checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" |
| | | dependencies = [ |
| | | "num_enum_derive", |
| | | "rustversion", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "num_enum_derive" |
| | | version = "0.7.3" |
| | | version = "0.7.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" |
| | | checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" |
| | | dependencies = [ |
| | | "proc-macro-crate 3.3.0", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "openssl" |
| | | version = "0.10.73" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "cfg-if", |
| | | "foreign-types 0.3.2", |
| | | "libc", |
| | | "once_cell", |
| | | "openssl-macros", |
| | | "openssl-sys", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "openssl-macros" |
| | | version = "0.1.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "openssl-probe" |
| | | version = "0.1.6" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" |
| | | |
| | | [[package]] |
| | | name = "openssl-src" |
| | | version = "300.5.1+3.5.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "735230c832b28c000e3bc117119e6466a663ec73506bc0a9907ea4187508e42a" |
| | | dependencies = [ |
| | | "cc", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "openssl-sys" |
| | | version = "0.9.109" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" |
| | | dependencies = [ |
| | | "cc", |
| | | "libc", |
| | | "openssl-src", |
| | | "pkg-config", |
| | | "vcpkg", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "option-ext" |
| | | version = "0.2.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | |
| | | |
| | | [[package]] |
| | | name = "parking_lot" |
| | | version = "0.12.3" |
| | | version = "0.12.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" |
| | | checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" |
| | | dependencies = [ |
| | | "lock_api", |
| | | "parking_lot_core", |
| | |
| | | |
| | | [[package]] |
| | | name = "parking_lot_core" |
| | | version = "0.9.10" |
| | | version = "0.9.11" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" |
| | | checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" |
| | | dependencies = [ |
| | | "cfg-if", |
| | | "libc", |
| | |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" |
| | | dependencies = [ |
| | | "phf_macros 0.8.0", |
| | | "phf_shared 0.8.0", |
| | | "proc-macro-hack", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" |
| | | dependencies = [ |
| | | "phf_macros 0.10.0", |
| | | "phf_shared 0.10.0", |
| | | "proc-macro-hack", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "phf_codegen" |
| | | version = "0.10.0" |
| | | version = "0.11.3" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" |
| | | checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" |
| | | dependencies = [ |
| | | "phf_generator 0.10.0", |
| | | "phf_shared 0.10.0", |
| | | "phf_generator 0.11.3", |
| | | "phf_shared 0.11.3", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "phf_macros" |
| | | version = "0.8.0" |
| | | version = "0.10.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" |
| | | checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" |
| | | dependencies = [ |
| | | "phf_generator 0.8.0", |
| | | "phf_shared 0.8.0", |
| | | "phf_generator 0.10.0", |
| | | "phf_shared 0.10.0", |
| | | "proc-macro-hack", |
| | | "proc-macro2", |
| | | "quote", |
| | |
| | | "phf_shared 0.11.3", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "plist" |
| | | version = "1.7.1" |
| | | version = "1.7.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "eac26e981c03a6e53e0aee43c113e3202f5581d5360dae7bd2c70e800dd0451d" |
| | | checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1" |
| | | dependencies = [ |
| | | "base64 0.22.1", |
| | | "indexmap 2.9.0", |
| | | "indexmap 2.10.0", |
| | | "quick-xml", |
| | | "serde", |
| | | "time", |
| | |
| | | |
| | | [[package]] |
| | | name = "polling" |
| | | version = "3.7.4" |
| | | version = "3.8.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" |
| | | checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" |
| | | dependencies = [ |
| | | "cfg-if", |
| | | "concurrent-queue", |
| | | "hermit-abi", |
| | | "pin-project-lite", |
| | | "rustix 0.38.44", |
| | | "rustix", |
| | | "tracing", |
| | | "windows-sys 0.59.0", |
| | | ] |
| | |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" |
| | | dependencies = [ |
| | | "toml_edit 0.22.26", |
| | | "toml_edit 0.22.27", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "quick-xml" |
| | | version = "0.32.0" |
| | | version = "0.38.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" |
| | | checksum = "8927b0664f5c5a98265138b7e3f90aa19a6b21353182469ace36d4ac527b7b1b" |
| | | dependencies = [ |
| | | "memchr", |
| | | ] |
| | |
| | | |
| | | [[package]] |
| | | name = "r-efi" |
| | | version = "5.2.0" |
| | | version = "5.3.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" |
| | | checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" |
| | | |
| | | [[package]] |
| | | name = "rand" |
| | |
| | | |
| | | [[package]] |
| | | name = "redox_syscall" |
| | | version = "0.5.12" |
| | | version = "0.5.13" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" |
| | | checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | ] |
| | |
| | | "getrandom 0.2.16", |
| | | "libredox", |
| | | "thiserror 2.0.12", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "ref-cast" |
| | | version = "1.0.24" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" |
| | | dependencies = [ |
| | | "ref-cast-impl", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "ref-cast-impl" |
| | | version = "1.0.24" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "reqwest" |
| | | version = "0.12.15" |
| | | version = "0.12.22" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" |
| | | checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" |
| | | dependencies = [ |
| | | "base64 0.22.1", |
| | | "bytes", |
| | |
| | | "http-body", |
| | | "http-body-util", |
| | | "hyper", |
| | | "hyper-tls", |
| | | "hyper-util", |
| | | "ipnet", |
| | | "js-sys", |
| | | "log", |
| | | "mime", |
| | | "once_cell", |
| | | "native-tls", |
| | | "percent-encoding", |
| | | "pin-project-lite", |
| | | "rustls-pki-types", |
| | | "serde", |
| | | "serde_json", |
| | | "serde_urlencoded", |
| | | "sync_wrapper", |
| | | "tokio", |
| | | "tokio-native-tls", |
| | | "tokio-util", |
| | | "tower", |
| | | "tower-http", |
| | | "tower-service", |
| | | "url", |
| | | "wasm-bindgen", |
| | | "wasm-bindgen-futures", |
| | | "wasm-streams", |
| | | "web-sys", |
| | | "windows-registry", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "rustc-demangle" |
| | | version = "0.1.24" |
| | | version = "0.1.25" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" |
| | | checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" |
| | | |
| | | [[package]] |
| | | name = "rustc_version" |
| | |
| | | |
| | | [[package]] |
| | | name = "rustix" |
| | | version = "0.38.44" |
| | | version = "1.0.8" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" |
| | | checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "errno", |
| | | "libc", |
| | | "linux-raw-sys 0.4.15", |
| | | "windows-sys 0.59.0", |
| | | "linux-raw-sys", |
| | | "windows-sys 0.60.2", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "rustix" |
| | | version = "1.0.7" |
| | | name = "rustls-pki-types" |
| | | version = "1.12.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" |
| | | checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "errno", |
| | | "libc", |
| | | "linux-raw-sys 0.9.4", |
| | | "windows-sys 0.59.0", |
| | | "zeroize", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "rustversion" |
| | | version = "1.0.20" |
| | | version = "1.0.21" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" |
| | | checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" |
| | | |
| | | [[package]] |
| | | name = "ryu" |
| | |
| | | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" |
| | | dependencies = [ |
| | | "winapi-util", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "schannel" |
| | | version = "0.1.27" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" |
| | | dependencies = [ |
| | | "windows-sys 0.59.0", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "schemars" |
| | | version = "0.9.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" |
| | | dependencies = [ |
| | | "dyn-clone", |
| | | "ref-cast", |
| | | "serde", |
| | | "serde_json", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "schemars" |
| | | version = "1.0.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" |
| | | dependencies = [ |
| | | "dyn-clone", |
| | | "ref-cast", |
| | | "serde", |
| | | "serde_json", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "schemars_derive" |
| | | version = "0.8.22" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | |
| | | "proc-macro2", |
| | | "quote", |
| | | "serde_derive_internals", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" |
| | | |
| | | [[package]] |
| | | name = "selectors" |
| | | version = "0.22.0" |
| | | name = "security-framework" |
| | | version = "2.11.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" |
| | | checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "core-foundation 0.9.4", |
| | | "core-foundation-sys", |
| | | "libc", |
| | | "security-framework-sys", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "security-framework-sys" |
| | | version = "2.14.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" |
| | | dependencies = [ |
| | | "core-foundation-sys", |
| | | "libc", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "selectors" |
| | | version = "0.24.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" |
| | | dependencies = [ |
| | | "bitflags 1.3.2", |
| | | "cssparser", |
| | | "derive_more", |
| | | "fxhash", |
| | | "log", |
| | | "matches", |
| | | "phf 0.8.0", |
| | | "phf_codegen 0.8.0", |
| | | "precomputed-hash", |
| | | "servo_arc", |
| | | "smallvec", |
| | | "thin-slice", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" |
| | | dependencies = [ |
| | | "itoa 1.0.15", |
| | | "itoa", |
| | | "memchr", |
| | | "ryu", |
| | | "serde", |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "serde_spanned" |
| | | version = "0.6.8" |
| | | version = "0.6.9" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" |
| | | checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" |
| | | dependencies = [ |
| | | "serde", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "serde_spanned" |
| | | version = "1.0.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" |
| | | dependencies = [ |
| | | "serde", |
| | | ] |
| | |
| | | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" |
| | | dependencies = [ |
| | | "form_urlencoded", |
| | | "itoa 1.0.15", |
| | | "itoa", |
| | | "ryu", |
| | | "serde", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "serde_with" |
| | | version = "3.12.0" |
| | | version = "3.14.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" |
| | | checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" |
| | | dependencies = [ |
| | | "base64 0.22.1", |
| | | "chrono", |
| | | "hex", |
| | | "indexmap 1.9.3", |
| | | "indexmap 2.9.0", |
| | | "indexmap 2.10.0", |
| | | "schemars 0.9.0", |
| | | "schemars 1.0.4", |
| | | "serde", |
| | | "serde_derive", |
| | | "serde_json", |
| | |
| | | |
| | | [[package]] |
| | | name = "serde_with_macros" |
| | | version = "3.12.0" |
| | | version = "3.14.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" |
| | | checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" |
| | | dependencies = [ |
| | | "darling", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "servo_arc" |
| | | version = "0.1.1" |
| | | name = "serialport" |
| | | version = "4.7.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" |
| | | checksum = "cdb0bc984f6af6ef8bab54e6cf2071579ee75b9286aa9f2319a0d220c28b0a2b" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "cfg-if", |
| | | "core-foundation 0.10.1", |
| | | "core-foundation-sys", |
| | | "io-kit-sys", |
| | | "libudev", |
| | | "mach2", |
| | | "nix 0.26.4", |
| | | "scopeguard", |
| | | "unescaper", |
| | | "winapi", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "servo_arc" |
| | | version = "0.2.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" |
| | | dependencies = [ |
| | | "nodrop", |
| | | "stable_deref_trait", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "sha1" |
| | | version = "0.10.6" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" |
| | | dependencies = [ |
| | | "cfg-if", |
| | | "cpufeatures", |
| | | "digest", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | name = "six-axis-force" |
| | | version = "0.1.0" |
| | | dependencies = [ |
| | | "anyhow", |
| | | "chrono", |
| | | "futures-util", |
| | | "once_cell", |
| | | "rand 0.8.5", |
| | | "serde", |
| | | "serde_json", |
| | | "serialport", |
| | | "tauri", |
| | | "tauri-build", |
| | | "tauri-plugin-opener", |
| | | "tokio", |
| | | "tokio-tungstenite", |
| | | "tungstenite", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "slab" |
| | | version = "0.4.9" |
| | | version = "0.4.10" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" |
| | | dependencies = [ |
| | | "autocfg", |
| | | ] |
| | | checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" |
| | | |
| | | [[package]] |
| | | name = "smallvec" |
| | | version = "1.15.0" |
| | | version = "1.15.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" |
| | | checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" |
| | | |
| | | [[package]] |
| | | name = "socket2" |
| | | version = "0.5.9" |
| | | version = "0.5.10" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" |
| | | checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" |
| | | dependencies = [ |
| | | "libc", |
| | | "windows-sys 0.52.0", |
| | |
| | | "bytemuck", |
| | | "cfg_aliases", |
| | | "core-graphics", |
| | | "foreign-types", |
| | | "foreign-types 0.5.0", |
| | | "js-sys", |
| | | "log", |
| | | "objc2 0.5.2", |
| | |
| | | |
| | | [[package]] |
| | | name = "syn" |
| | | version = "2.0.101" |
| | | version = "2.0.104" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" |
| | | checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | "cfg-expr", |
| | | "heck 0.5.0", |
| | | "pkg-config", |
| | | "toml", |
| | | "toml 0.8.23", |
| | | "version-compare", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tao" |
| | | version = "0.33.0" |
| | | version = "0.34.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "1e59c1f38e657351a2e822eadf40d6a2ad4627b9c25557bc1180ec1b3295ef82" |
| | | checksum = "49c380ca75a231b87b6c9dd86948f035012e7171d1a7c40a9c2890489a7ffd8a" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "core-foundation", |
| | | "core-foundation 0.10.1", |
| | | "core-graphics", |
| | | "crossbeam-channel", |
| | | "dispatch", |
| | |
| | | "tao-macros", |
| | | "unicode-segmentation", |
| | | "url", |
| | | "windows 0.61.1", |
| | | "windows-core 0.61.1", |
| | | "windows", |
| | | "windows-core", |
| | | "windows-version", |
| | | "x11-dl", |
| | | ] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "tauri" |
| | | version = "2.5.1" |
| | | version = "2.6.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "e7b0bc1aec81bda6bc455ea98fcaed26b3c98c1648c627ad6ff1c704e8bf8cbc" |
| | | checksum = "124e129c9c0faa6bec792c5948c89e86c90094133b0b9044df0ce5f0a8efaa0d" |
| | | dependencies = [ |
| | | "anyhow", |
| | | "bytes", |
| | | "dirs", |
| | | "dunce", |
| | | "embed_plist", |
| | | "futures-util", |
| | | "getrandom 0.2.16", |
| | | "getrandom 0.3.3", |
| | | "glob", |
| | | "gtk", |
| | | "heck 0.5.0", |
| | |
| | | "webkit2gtk", |
| | | "webview2-com", |
| | | "window-vibrancy", |
| | | "windows 0.61.1", |
| | | "windows", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tauri-build" |
| | | version = "2.2.0" |
| | | version = "2.3.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "d7a0350f0df1db385ca5c02888a83e0e66655c245b7443db8b78a70da7d7f8fc" |
| | | checksum = "12f025c389d3adb83114bec704da973142e82fc6ec799c7c750c5e21cefaec83" |
| | | dependencies = [ |
| | | "anyhow", |
| | | "cargo_toml", |
| | |
| | | "glob", |
| | | "heck 0.5.0", |
| | | "json-patch", |
| | | "schemars", |
| | | "schemars 0.8.22", |
| | | "semver", |
| | | "serde", |
| | | "serde_json", |
| | | "tauri-utils", |
| | | "tauri-winres", |
| | | "toml", |
| | | "toml 0.8.23", |
| | | "walkdir", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tauri-codegen" |
| | | version = "2.2.0" |
| | | version = "2.3.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "f93f035551bf7b11b3f51ad9bc231ebbe5e085565527991c16cf326aa38cdf47" |
| | | checksum = "f5df493a1075a241065bc865ed5ef8d0fbc1e76c7afdc0bf0eccfaa7d4f0e406" |
| | | dependencies = [ |
| | | "base64 0.22.1", |
| | | "brotli", |
| | |
| | | "serde", |
| | | "serde_json", |
| | | "sha2", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | "tauri-utils", |
| | | "thiserror 2.0.12", |
| | | "time", |
| | |
| | | |
| | | [[package]] |
| | | name = "tauri-macros" |
| | | version = "2.2.0" |
| | | version = "2.3.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8db4df25e2d9d45de0c4c910da61cd5500190da14ae4830749fee3466dddd112" |
| | | checksum = "f237fbea5866fa5f2a60a21bea807a2d6e0379db070d89c3a10ac0f2d4649bbc" |
| | | dependencies = [ |
| | | "heck 0.5.0", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | "tauri-codegen", |
| | | "tauri-utils", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tauri-plugin" |
| | | version = "2.2.0" |
| | | version = "2.3.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "37a5ebe6a610d1b78a94650896e6f7c9796323f408800cef436e0fa0539de601" |
| | | checksum = "1d9a0bd00bf1930ad1a604d08b0eb6b2a9c1822686d65d7f4731a7723b8901d3" |
| | | dependencies = [ |
| | | "anyhow", |
| | | "glob", |
| | | "plist", |
| | | "schemars", |
| | | "schemars 0.8.22", |
| | | "serde", |
| | | "serde_json", |
| | | "tauri-utils", |
| | | "toml", |
| | | "toml 0.8.23", |
| | | "walkdir", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tauri-plugin-opener" |
| | | version = "2.2.6" |
| | | version = "2.4.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "2fdc6cb608e04b7d2b6d1f21e9444ad49245f6d03465ba53323d692d1ceb1a30" |
| | | checksum = "ecee219f11cdac713ab32959db5d0cceec4810ba4f4458da992292ecf9660321" |
| | | dependencies = [ |
| | | "dunce", |
| | | "glob", |
| | | "objc2-app-kit", |
| | | "objc2-foundation 0.3.1", |
| | | "open", |
| | | "schemars", |
| | | "schemars 0.8.22", |
| | | "serde", |
| | | "serde_json", |
| | | "tauri", |
| | | "tauri-plugin", |
| | | "thiserror 2.0.12", |
| | | "url", |
| | | "windows 0.60.0", |
| | | "windows", |
| | | "zbus", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tauri-runtime" |
| | | version = "2.6.0" |
| | | version = "2.7.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "00f004905d549854069e6774533d742b03cacfd6f03deb08940a8677586cbe39" |
| | | checksum = "9e7bb73d1bceac06c20b3f755b2c8a2cb13b20b50083084a8cf3700daf397ba4" |
| | | dependencies = [ |
| | | "cookie", |
| | | "dpi", |
| | |
| | | "tauri-utils", |
| | | "thiserror 2.0.12", |
| | | "url", |
| | | "windows 0.61.1", |
| | | "windows", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tauri-runtime-wry" |
| | | version = "2.6.0" |
| | | version = "2.7.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "f85d056f4d4b014fe874814034f3416d57114b617a493a4fe552580851a3f3a2" |
| | | checksum = "902b5aa9035e16f342eb64f8bf06ccdc2808e411a2525ed1d07672fa4e780bad" |
| | | dependencies = [ |
| | | "gtk", |
| | | "http", |
| | |
| | | "url", |
| | | "webkit2gtk", |
| | | "webview2-com", |
| | | "windows 0.61.1", |
| | | "windows", |
| | | "wry", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tauri-utils" |
| | | version = "2.4.0" |
| | | version = "2.5.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "b2900399c239a471bcff7f15c4399eb1a8c4fe511ba2853e07c996d771a5e0a4" |
| | | checksum = "41743bbbeb96c3a100d234e5a0b60a46d5aa068f266160862c7afdbf828ca02e" |
| | | dependencies = [ |
| | | "anyhow", |
| | | "brotli", |
| | |
| | | "proc-macro2", |
| | | "quote", |
| | | "regex", |
| | | "schemars", |
| | | "schemars 0.8.22", |
| | | "semver", |
| | | "serde", |
| | | "serde-untagged", |
| | |
| | | "serde_with", |
| | | "swift-rs", |
| | | "thiserror 2.0.12", |
| | | "toml", |
| | | "toml 0.8.23", |
| | | "url", |
| | | "urlpattern", |
| | | "uuid", |
| | |
| | | checksum = "e8d321dbc6f998d825ab3f0d62673e810c861aac2d0de2cc2c395328f1d113b4" |
| | | dependencies = [ |
| | | "embed-resource", |
| | | "indexmap 2.9.0", |
| | | "toml", |
| | | "indexmap 2.10.0", |
| | | "toml 0.8.23", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | "fastrand", |
| | | "getrandom 0.3.3", |
| | | "once_cell", |
| | | "rustix 1.0.7", |
| | | "rustix", |
| | | "windows-sys 0.59.0", |
| | | ] |
| | | |
| | |
| | | "mac", |
| | | "utf-8", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "thin-slice" |
| | | version = "0.1.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" |
| | | |
| | | [[package]] |
| | | name = "thiserror" |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" |
| | | dependencies = [ |
| | | "deranged", |
| | | "itoa 1.0.15", |
| | | "itoa", |
| | | "num-conv", |
| | | "powerfmt", |
| | | "serde", |
| | |
| | | |
| | | [[package]] |
| | | name = "tokio" |
| | | version = "1.45.0" |
| | | version = "1.46.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" |
| | | checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" |
| | | dependencies = [ |
| | | "backtrace", |
| | | "bytes", |
| | | "io-uring", |
| | | "libc", |
| | | "mio", |
| | | "pin-project-lite", |
| | | "slab", |
| | | "socket2", |
| | | "tokio-macros", |
| | | "windows-sys 0.52.0", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tokio-macros" |
| | | version = "2.5.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tokio-native-tls" |
| | | version = "0.3.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" |
| | | dependencies = [ |
| | | "native-tls", |
| | | "tokio", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tokio-tungstenite" |
| | | version = "0.21.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" |
| | | dependencies = [ |
| | | "futures-util", |
| | | "log", |
| | | "tokio", |
| | | "tungstenite", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "toml" |
| | | version = "0.8.22" |
| | | version = "0.8.23" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" |
| | | checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" |
| | | dependencies = [ |
| | | "serde", |
| | | "serde_spanned", |
| | | "toml_datetime", |
| | | "toml_edit 0.22.26", |
| | | "serde_spanned 0.6.9", |
| | | "toml_datetime 0.6.11", |
| | | "toml_edit 0.22.27", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "toml" |
| | | version = "0.9.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "ed0aee96c12fa71097902e0bb061a5e1ebd766a6636bb605ba401c45c1650eac" |
| | | dependencies = [ |
| | | "indexmap 2.10.0", |
| | | "serde", |
| | | "serde_spanned 1.0.0", |
| | | "toml_datetime 0.7.0", |
| | | "toml_parser", |
| | | "toml_writer", |
| | | "winnow 0.7.12", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "toml_datetime" |
| | | version = "0.6.9" |
| | | version = "0.6.11" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" |
| | | checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" |
| | | dependencies = [ |
| | | "serde", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "toml_datetime" |
| | | version = "0.7.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" |
| | | dependencies = [ |
| | | "serde", |
| | | ] |
| | |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" |
| | | dependencies = [ |
| | | "indexmap 2.9.0", |
| | | "toml_datetime", |
| | | "indexmap 2.10.0", |
| | | "toml_datetime 0.6.11", |
| | | "winnow 0.5.40", |
| | | ] |
| | | |
| | |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" |
| | | dependencies = [ |
| | | "indexmap 2.9.0", |
| | | "toml_datetime", |
| | | "indexmap 2.10.0", |
| | | "toml_datetime 0.6.11", |
| | | "winnow 0.5.40", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "toml_edit" |
| | | version = "0.22.26" |
| | | version = "0.22.27" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" |
| | | checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" |
| | | dependencies = [ |
| | | "indexmap 2.9.0", |
| | | "indexmap 2.10.0", |
| | | "serde", |
| | | "serde_spanned", |
| | | "toml_datetime", |
| | | "serde_spanned 0.6.9", |
| | | "toml_datetime 0.6.11", |
| | | "toml_write", |
| | | "winnow 0.7.10", |
| | | "winnow 0.7.12", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "toml_parser" |
| | | version = "1.0.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30" |
| | | dependencies = [ |
| | | "winnow 0.7.12", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "toml_write" |
| | | version = "0.1.1" |
| | | version = "0.1.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" |
| | | checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" |
| | | |
| | | [[package]] |
| | | name = "toml_writer" |
| | | version = "1.0.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" |
| | | |
| | | [[package]] |
| | | name = "tower" |
| | |
| | | "pin-project-lite", |
| | | "sync_wrapper", |
| | | "tokio", |
| | | "tower-layer", |
| | | "tower-service", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tower-http" |
| | | version = "0.6.6" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" |
| | | dependencies = [ |
| | | "bitflags 2.9.1", |
| | | "bytes", |
| | | "futures-util", |
| | | "http", |
| | | "http-body", |
| | | "iri-string", |
| | | "pin-project-lite", |
| | | "tower", |
| | | "tower-layer", |
| | | "tower-service", |
| | | ] |
| | |
| | | |
| | | [[package]] |
| | | name = "tracing-attributes" |
| | | version = "0.1.28" |
| | | version = "0.1.30" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" |
| | | checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tracing-core" |
| | | version = "0.1.33" |
| | | version = "0.1.34" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" |
| | | checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" |
| | | dependencies = [ |
| | | "once_cell", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "tray-icon" |
| | | version = "0.20.1" |
| | | version = "0.21.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "9f7eee98ec5c90daf179d55c20a49d8c0d043054ce7c26336c09a24d31f14fa0" |
| | | checksum = "2da75ec677957aa21f6e0b361df0daab972f13a5bee3606de0638fd4ee1c666a" |
| | | dependencies = [ |
| | | "crossbeam-channel", |
| | | "dirs", |
| | |
| | | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" |
| | | |
| | | [[package]] |
| | | name = "tungstenite" |
| | | version = "0.21.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" |
| | | dependencies = [ |
| | | "byteorder", |
| | | "bytes", |
| | | "data-encoding", |
| | | "http", |
| | | "httparse", |
| | | "log", |
| | | "rand 0.8.5", |
| | | "sha1", |
| | | "thiserror 1.0.69", |
| | | "url", |
| | | "utf-8", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "typeid" |
| | | version = "1.0.3" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | |
| | | "memoffset", |
| | | "tempfile", |
| | | "winapi", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "unescaper" |
| | | version = "0.1.6" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "c01d12e3a56a4432a8b436f293c25f4808bdf9e9f9f98f9260bba1f1bc5a1f26" |
| | | dependencies = [ |
| | | "thiserror 2.0.12", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "uuid" |
| | | version = "1.16.0" |
| | | version = "1.17.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" |
| | | checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" |
| | | dependencies = [ |
| | | "getrandom 0.3.3", |
| | | "js-sys", |
| | | "serde", |
| | | "wasm-bindgen", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "vcpkg" |
| | | version = "0.2.15" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" |
| | | |
| | | [[package]] |
| | | name = "version-compare" |
| | |
| | | |
| | | [[package]] |
| | | name = "wasi" |
| | | version = "0.11.0+wasi-snapshot-preview1" |
| | | version = "0.11.1+wasi-snapshot-preview1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" |
| | | checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" |
| | | |
| | | [[package]] |
| | | name = "wasi" |
| | |
| | | "log", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | "wasm-bindgen-shared", |
| | | ] |
| | | |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | "wasm-bindgen-backend", |
| | | "wasm-bindgen-shared", |
| | | ] |
| | |
| | | |
| | | [[package]] |
| | | name = "webview2-com" |
| | | version = "0.37.0" |
| | | version = "0.38.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "b542b5cfbd9618c46c2784e4d41ba218c336ac70d44c55e47b251033e7d85601" |
| | | checksum = "d4ba622a989277ef3886dd5afb3e280e3dd6d974b766118950a08f8f678ad6a4" |
| | | dependencies = [ |
| | | "webview2-com-macros", |
| | | "webview2-com-sys", |
| | | "windows 0.61.1", |
| | | "windows-core 0.61.1", |
| | | "windows-implement 0.60.0", |
| | | "windows", |
| | | "windows-core", |
| | | "windows-implement", |
| | | "windows-interface", |
| | | ] |
| | | |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "webview2-com-sys" |
| | | version = "0.37.0" |
| | | version = "0.38.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8ae2d11c4a686e4409659d7891791254cf9286d3cfe0eef54df1523533d22295" |
| | | checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" |
| | | dependencies = [ |
| | | "thiserror 2.0.12", |
| | | "windows 0.61.1", |
| | | "windows-core 0.61.1", |
| | | "windows", |
| | | "windows-core", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "windows" |
| | | version = "0.60.0" |
| | | version = "0.61.3" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "ddf874e74c7a99773e62b1c671427abf01a425e77c3d3fb9fb1e4883ea934529" |
| | | checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" |
| | | dependencies = [ |
| | | "windows-collections 0.1.1", |
| | | "windows-core 0.60.1", |
| | | "windows-future 0.1.1", |
| | | "windows-collections", |
| | | "windows-core", |
| | | "windows-future", |
| | | "windows-link", |
| | | "windows-numerics 0.1.1", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows" |
| | | version = "0.61.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" |
| | | dependencies = [ |
| | | "windows-collections 0.2.0", |
| | | "windows-core 0.61.1", |
| | | "windows-future 0.2.1", |
| | | "windows-link", |
| | | "windows-numerics 0.2.0", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-collections" |
| | | version = "0.1.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "5467f79cc1ba3f52ebb2ed41dbb459b8e7db636cc3429458d9a852e15bc24dec" |
| | | dependencies = [ |
| | | "windows-core 0.60.1", |
| | | "windows-numerics", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" |
| | | dependencies = [ |
| | | "windows-core 0.61.1", |
| | | "windows-core", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-core" |
| | | version = "0.60.1" |
| | | version = "0.61.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "ca21a92a9cae9bf4ccae5cf8368dce0837100ddf6e6d57936749e85f152f6247" |
| | | checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" |
| | | dependencies = [ |
| | | "windows-implement 0.59.0", |
| | | "windows-implement", |
| | | "windows-interface", |
| | | "windows-link", |
| | | "windows-result", |
| | | "windows-strings 0.3.1", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-core" |
| | | version = "0.61.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "46ec44dc15085cea82cf9c78f85a9114c463a369786585ad2882d1ff0b0acf40" |
| | | dependencies = [ |
| | | "windows-implement 0.60.0", |
| | | "windows-interface", |
| | | "windows-link", |
| | | "windows-result", |
| | | "windows-strings 0.4.1", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-future" |
| | | version = "0.1.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "a787db4595e7eb80239b74ce8babfb1363d8e343ab072f2ffe901400c03349f0" |
| | | dependencies = [ |
| | | "windows-core 0.60.1", |
| | | "windows-link", |
| | | "windows-strings", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" |
| | | dependencies = [ |
| | | "windows-core 0.61.1", |
| | | "windows-core", |
| | | "windows-link", |
| | | "windows-threading", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-implement" |
| | | version = "0.59.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-link" |
| | | version = "0.1.1" |
| | | version = "0.1.3" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" |
| | | |
| | | [[package]] |
| | | name = "windows-numerics" |
| | | version = "0.1.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "005dea54e2f6499f2cee279b8f703b3cf3b5734a2d8d21867c8f44003182eeed" |
| | | dependencies = [ |
| | | "windows-core 0.60.1", |
| | | "windows-link", |
| | | ] |
| | | checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" |
| | | |
| | | [[package]] |
| | | name = "windows-numerics" |
| | |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" |
| | | dependencies = [ |
| | | "windows-core 0.61.1", |
| | | "windows-core", |
| | | "windows-link", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-registry" |
| | | version = "0.4.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" |
| | | dependencies = [ |
| | | "windows-result", |
| | | "windows-strings 0.3.1", |
| | | "windows-targets 0.53.0", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-result" |
| | | version = "0.3.3" |
| | | version = "0.3.4" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "4b895b5356fc36103d0f64dd1e94dfa7ac5633f1c9dd6e80fe9ec4adef69e09d" |
| | | checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" |
| | | dependencies = [ |
| | | "windows-link", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-strings" |
| | | version = "0.3.1" |
| | | version = "0.4.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" |
| | | dependencies = [ |
| | | "windows-link", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-strings" |
| | | version = "0.4.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "2a7ab927b2637c19b3dbe0965e75d8f2d30bdd697a1516191cad2ec4df8fb28a" |
| | | checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" |
| | | dependencies = [ |
| | | "windows-link", |
| | | ] |
| | |
| | | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" |
| | | dependencies = [ |
| | | "windows-targets 0.42.2", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-sys" |
| | | version = "0.48.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" |
| | | dependencies = [ |
| | | "windows-targets 0.48.5", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-sys" |
| | | version = "0.60.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" |
| | | dependencies = [ |
| | | "windows-targets 0.53.2", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-targets" |
| | | version = "0.42.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | |
| | | "windows_x86_64_gnu 0.42.2", |
| | | "windows_x86_64_gnullvm 0.42.2", |
| | | "windows_x86_64_msvc 0.42.2", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "windows-targets" |
| | | version = "0.48.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" |
| | | dependencies = [ |
| | | "windows_aarch64_gnullvm 0.48.5", |
| | | "windows_aarch64_msvc 0.48.5", |
| | | "windows_i686_gnu 0.48.5", |
| | | "windows_i686_msvc 0.48.5", |
| | | "windows_x86_64_gnu 0.48.5", |
| | | "windows_x86_64_gnullvm 0.48.5", |
| | | "windows_x86_64_msvc 0.48.5", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "windows-targets" |
| | | version = "0.53.0" |
| | | version = "0.53.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" |
| | | checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" |
| | | dependencies = [ |
| | | "windows_aarch64_gnullvm 0.53.0", |
| | | "windows_aarch64_msvc 0.53.0", |
| | |
| | | |
| | | [[package]] |
| | | name = "windows_aarch64_gnullvm" |
| | | version = "0.48.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" |
| | | |
| | | [[package]] |
| | | name = "windows_aarch64_gnullvm" |
| | | version = "0.52.6" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" |
| | |
| | | |
| | | [[package]] |
| | | name = "windows_aarch64_msvc" |
| | | version = "0.48.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" |
| | | |
| | | [[package]] |
| | | name = "windows_aarch64_msvc" |
| | | version = "0.52.6" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" |
| | |
| | | version = "0.42.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" |
| | | |
| | | [[package]] |
| | | name = "windows_i686_gnu" |
| | | version = "0.48.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" |
| | | |
| | | [[package]] |
| | | name = "windows_i686_gnu" |
| | |
| | | |
| | | [[package]] |
| | | name = "windows_i686_msvc" |
| | | version = "0.48.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" |
| | | |
| | | [[package]] |
| | | name = "windows_i686_msvc" |
| | | version = "0.52.6" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" |
| | |
| | | version = "0.42.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" |
| | | |
| | | [[package]] |
| | | name = "windows_x86_64_gnu" |
| | | version = "0.48.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" |
| | | |
| | | [[package]] |
| | | name = "windows_x86_64_gnu" |
| | |
| | | |
| | | [[package]] |
| | | name = "windows_x86_64_gnullvm" |
| | | version = "0.48.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" |
| | | |
| | | [[package]] |
| | | name = "windows_x86_64_gnullvm" |
| | | version = "0.52.6" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" |
| | |
| | | version = "0.42.2" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" |
| | | |
| | | [[package]] |
| | | name = "windows_x86_64_msvc" |
| | | version = "0.48.5" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" |
| | | |
| | | [[package]] |
| | | name = "windows_x86_64_msvc" |
| | |
| | | |
| | | [[package]] |
| | | name = "winnow" |
| | | version = "0.7.10" |
| | | version = "0.7.12" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" |
| | | checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" |
| | | dependencies = [ |
| | | "memchr", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "winreg" |
| | | version = "0.52.0" |
| | | version = "0.55.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" |
| | | checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" |
| | | dependencies = [ |
| | | "cfg-if", |
| | | "windows-sys 0.48.0", |
| | | "windows-sys 0.59.0", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | |
| | | [[package]] |
| | | name = "wry" |
| | | version = "0.51.2" |
| | | version = "0.52.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "c886a0a9d2a94fd90cfa1d929629b79cfefb1546e2c7430c63a47f0664c0e4e2" |
| | | checksum = "12a714d9ba7075aae04a6e50229d6109e3d584774b99a6a8c60de1698ca111b9" |
| | | dependencies = [ |
| | | "base64 0.22.1", |
| | | "block2 0.6.1", |
| | |
| | | "webkit2gtk", |
| | | "webkit2gtk-sys", |
| | | "webview2-com", |
| | | "windows 0.61.1", |
| | | "windows-core 0.61.1", |
| | | "windows", |
| | | "windows-core", |
| | | "windows-version", |
| | | "x11-dl", |
| | | ] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | "synstructure", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "zbus" |
| | | version = "5.7.0" |
| | | version = "5.9.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "88232b74ba057a0c85472ec1bae8a17569960be17da2d5e5ad30d5efe7ea6719" |
| | | checksum = "4bb4f9a464286d42851d18a605f7193b8febaf5b0919d71c6399b7b26e5b0aad" |
| | | dependencies = [ |
| | | "async-broadcast", |
| | | "async-executor", |
| | |
| | | "futures-core", |
| | | "futures-lite", |
| | | "hex", |
| | | "nix", |
| | | "nix 0.30.1", |
| | | "ordered-stream", |
| | | "serde", |
| | | "serde_repr", |
| | | "tracing", |
| | | "uds_windows", |
| | | "windows-sys 0.59.0", |
| | | "winnow 0.7.10", |
| | | "winnow 0.7.12", |
| | | "zbus_macros", |
| | | "zbus_names", |
| | | "zvariant", |
| | |
| | | |
| | | [[package]] |
| | | name = "zbus_macros" |
| | | version = "5.7.0" |
| | | version = "5.9.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "6969c06899233334676e60da1675740539cf034ee472a6c5b5c54e50a0a554c9" |
| | | checksum = "ef9859f68ee0c4ee2e8cde84737c78e3f4c54f946f2a38645d0d4c7a95327659" |
| | | dependencies = [ |
| | | "proc-macro-crate 3.3.0", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | "zbus_names", |
| | | "zvariant", |
| | | "zvariant_utils", |
| | |
| | | dependencies = [ |
| | | "serde", |
| | | "static_assertions", |
| | | "winnow 0.7.10", |
| | | "winnow 0.7.12", |
| | | "zvariant", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "zerocopy" |
| | | version = "0.8.25" |
| | | version = "0.8.26" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" |
| | | checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" |
| | | dependencies = [ |
| | | "zerocopy-derive", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "zerocopy-derive" |
| | | version = "0.8.25" |
| | | version = "0.8.26" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" |
| | | checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | "synstructure", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "zeroize" |
| | | version = "1.8.1" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" |
| | | |
| | | [[package]] |
| | | name = "zerotrie" |
| | |
| | | dependencies = [ |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "zvariant" |
| | | version = "5.5.3" |
| | | version = "5.6.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "9d30786f75e393ee63a21de4f9074d4c038d52c5b1bb4471f955db249f9dffb1" |
| | | checksum = "d91b3680bb339216abd84714172b5138a4edac677e641ef17e1d8cb1b3ca6e6f" |
| | | dependencies = [ |
| | | "endi", |
| | | "enumflags2", |
| | | "serde", |
| | | "winnow 0.7.10", |
| | | "winnow 0.7.12", |
| | | "zvariant_derive", |
| | | "zvariant_utils", |
| | | ] |
| | | |
| | | [[package]] |
| | | name = "zvariant_derive" |
| | | version = "5.5.3" |
| | | version = "5.6.0" |
| | | source = "registry+https://github.com/rust-lang/crates.io-index" |
| | | checksum = "75fda702cd42d735ccd48117b1630432219c0e9616bf6cb0f8350844ee4d9580" |
| | | checksum = "3a8c68501be459a8dbfffbe5d792acdd23b4959940fc87785fb013b32edbc208" |
| | | dependencies = [ |
| | | "proc-macro-crate 3.3.0", |
| | | "proc-macro2", |
| | | "quote", |
| | | "syn 2.0.101", |
| | | "syn 2.0.104", |
| | | "zvariant_utils", |
| | | ] |
| | | |
| | |
| | | "quote", |
| | | "serde", |
| | | "static_assertions", |
| | | "syn 2.0.101", |
| | | "winnow 0.7.10", |
| | | "syn 2.0.104", |
| | | "winnow 0.7.12", |
| | | ] |
| | |
| | | tauri-build = { version = "2", features = [] } |
| | | |
| | | [dependencies] |
| | | tauri = { version = "2", features = [] } |
| | | tauri = { version = "2", features = [ "tray-icon", "devtools", "native-tls-vendored" ] } |
| | | chrono = "0.4" |
| | | tauri-plugin-opener = "2" |
| | | serde = { version = "1", features = ["derive"] } |
| | | serde_json = "1" |
| | | tokio = { version = "1.45.0", features = ["rt", "net", "time"] } |
| | | tokio = { version = "1.45.0", features = ["rt", "net", "time", "macros"] } |
| | | rand = "0.8.5" |
| | | |
| | | once_cell = "1.19" |
| | |
| | | futures-util = "0.3" |
| | | tungstenite = "0.21" |
| | | anyhow = "1.0" |
| | | serialport = "4.3.0" |
| | | |
| | |
| | | mod tokio_utils; |
| | | mod pipe_server; |
| | | mod ws_client; |
| | | use crate::ws_client::LATEST_WS_DATA; |
| | | mod serial_port; |
| | | |
| | | |
| | | |
| | | use std::sync::Mutex; |
| | | use tauri::async_runtime::spawn; |
| | | use tokio::io::{AsyncReadExt, AsyncWriteExt}; |
| | | use tauri::Manager; |
| | | use tokio_utils::{set_complete,setup,SetupState}; |
| | | use std::fs::OpenOptions; |
| | | use std::io::Write; |
| | | use chrono::Local; |
| | | |
| | | |
| | | // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ |
| | | use crate::pipe_server::start_pipe_server; |
| | | |
| | | #[tauri::command] |
| | | fn get_latest_ws_data() -> Option<String> { |
| | | LATEST_WS_DATA.lock().unwrap().clone() |
| | | } |
| | | |
| | | |
| | | #[tauri::command] |
| | | fn greet(name: &str) -> String { |
| | | format!("Hello, {}! You've been greeted from Rust!", name) |
| | | } |
| | | |
| | | #[tauri::command] |
| | | async fn start_pipe_server_command(pipe_name: String) -> Result<(), String> { |
| | | start_pipe_server(&pipe_name) |
| | | .await |
| | | .map_err(|e| e.to_string()) |
| | | fn log_data(app_handle: tauri::AppHandle, data: String) -> Result<(), String> { |
| | | let app_data_path = app_handle.path().app_data_dir() |
| | | .or_else(|_| Err("Could not get app data directory".to_string()))?; |
| | | |
| | | let log_dir = app_data_path.join("logs"); |
| | | if !log_dir.exists() { |
| | | std::fs::create_dir_all(&log_dir) |
| | | .map_err(|e| format!("Failed to create log directory: {}", e))?; |
| | | } |
| | | |
| | | let current_date = Local::now().format("%Y-%m-%d").to_string(); |
| | | let log_file_path = log_dir.join(format!("log_{}.txt", current_date)); |
| | | |
| | | println!("log_file_path: {:?}", log_file_path); |
| | | let mut file = OpenOptions::new() |
| | | .create(true) |
| | | .append(true) |
| | | .open(&log_file_path) |
| | | .map_err(|e| format!("Failed to open log file: {}", e))?; |
| | | |
| | | let timestamp = Local::now().format("[%Y-%m-%d %H:%M:%S]").to_string(); |
| | | writeln!(file, "{} {}", timestamp, data) |
| | | .map_err(|e| format!("Failed to write to log file: {}", e))?; |
| | | |
| | | Ok(()) |
| | | } |
| | | |
| | | #[tauri::command] |
| | | async fn send_pipe_message(pipe_name: String, message: String) -> Result<String, String> { |
| | | let pipe_path: String = format!(r"\\.\pipe\{}", pipe_name); |
| | | |
| | | let mut client = tokio::net::windows::named_pipe::ClientOptions::new() |
| | | .open(&pipe_path) |
| | | .map_err(|e| e.to_string())?; |
| | | |
| | | client.write_all(message.as_bytes()).await.map_err(|e| e.to_string())?; |
| | | |
| | | let mut buf = [0u8; 1024]; |
| | | let n = client.read(&mut buf).await.map_err(|e| e.to_string())?; |
| | | |
| | | String::from_utf8(buf[..n].to_vec()) |
| | | .map_err(|e| e.to_string()) |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | backend_task: false, |
| | | })) |
| | | // Add a command we can use to check |
| | | .invoke_handler(tauri::generate_handler![greet, set_complete, start_pipe_server_command, send_pipe_message, get_latest_ws_data]) |
| | | .invoke_handler(tauri::generate_handler![ |
| | | greet, |
| | | set_complete, |
| | | serial_port::open_serial_port, |
| | | serial_port::close_serial_port, |
| | | serial_port::write_serial_data, |
| | | serial_port::list_serial_ports, |
| | | log_data |
| | | ]) |
| | | // Use the setup hook to execute setup related tasks |
| | | // Runs before the main loop, so no windows are yet created |
| | | .setup(|app| { |
| | | // å¯å¨ WebSocket 客æ·ç«¯ï¼å¼æ¥ä»»å¡ï¼ |
| | | ws_client::start_ws_client(); |
| | | // Spawn setup as a non-blocking task so the windows can be |
| | | // created and ran while it executes |
| | | spawn(setup(app.handle().clone())); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | use std::io::{Write, ErrorKind}; |
| | | use tauri::Emitter; |
| | | use std::time::Duration; |
| | | use serialport::{self, SerialPort}; |
| | | |
| | | use once_cell::sync::Lazy; |
| | | use tokio::sync::{Mutex, broadcast}; |
| | | |
| | | |
| | | // ç¨äºåéåæ¢ä¿¡å·çéé |
| | | static STOP_SIGNAL_SENDER: Lazy<Mutex<Option<broadcast::Sender<()>>>> = Lazy::new(|| Mutex::new(None)); |
| | | |
| | | // 使ç¨LazyåMutexæ¥å®å
¨å°å
±äº«ä¸²å£å®ä¾ |
| | | static SERIAL_PORT: Lazy<Mutex<Option<Box<dyn SerialPort>>>> = Lazy::new(|| Mutex::new(None)); |
| | | |
| | | #[tauri::command] |
| | | pub async fn open_serial_port(app_handle: tauri::AppHandle, port_name: String, baud_rate: u32) -> Result<String, String> { |
| | | // è¾åº 串å£åç§° |
| | | println!("æå¼ä¸²å£: {}", port_name); |
| | | // è¾åº æ³¢ç¹ç |
| | | println!("æ³¢ç¹ç: {}", baud_rate); |
| | | let mut serial_port_guard = SERIAL_PORT.lock().await; |
| | | if serial_port_guard.is_some() { |
| | | return Err("串å£å·²æå¼".into()); |
| | | } |
| | | |
| | | match serialport::new(&port_name, baud_rate) |
| | | .timeout(Duration::from_millis(10)) |
| | | .open() |
| | | { |
| | | Ok(port) => { |
| | | *serial_port_guard = Some(port); |
| | | |
| | | // åå»ºåæ¢ä¿¡å·éé |
| | | let (tx, _rx) = broadcast::channel(1); |
| | | *STOP_SIGNAL_SENDER.lock().await = Some(tx.clone()); |
| | | |
| | | let app_handle_clone = app_handle.clone(); |
| | | let mut rx_stop = tx.subscribe(); |
| | | |
| | | tokio::spawn(async move { |
| | | let mut buffer: Vec<u8> = vec![0; 1024]; |
| | | let mut data_buffer: Vec<u8> = Vec::new(); // Buffer to accumulate incoming data |
| | | loop { |
| | | tokio::select! { |
| | | _ = rx_stop.recv() => { |
| | | println!("忢䏲壿°æ®è¯»åä»»å¡"); |
| | | break; |
| | | } |
| | | _ = tokio::time::sleep(Duration::from_millis(100)) => { |
| | | // 宿å°è¯è¯»åï¼é¿å
é¿æ¶é´é»å¡ |
| | | let mut serial_port_guard = SERIAL_PORT.lock().await; |
| | | if let Some(port) = serial_port_guard.as_mut() { |
| | | match port.read(buffer.as_mut_slice()) { |
| | | Ok(bytes_read) => { |
| | | if bytes_read > 0 { |
| | | data_buffer.extend_from_slice(&buffer[..bytes_read]); |
| | | |
| | | // Process data_buffer to extract complete 22-byte packets |
| | | while data_buffer.len() >= 22 { |
| | | let data = data_buffer.drain(..22).collect::<Vec<u8>>(); |
| | | if let Err(e) = app_handle_clone.emit("serial_data", data) { |
| | | eprintln!("åå°äºä»¶å¤±è´¥: {}", e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | Err(ref e) if e.kind() == ErrorKind::TimedOut => { /* è¶
æ¶ï¼ç»§ç» */ } |
| | | Err(e) => { |
| | | eprintln!("读å䏲壿°æ®å¤±è´¥: {}", e); |
| | | break; // 读å失败ï¼éåºå¾ªç¯ |
| | | } |
| | | } |
| | | } else { |
| | | eprintln!("䏲壿ªæå¼ï¼åæ¢è¯»åä»»å¡"); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | let log_message = format!("æåæå¼ä¸²å£: {}", port_name); |
| | | crate::log_data(app_handle, log_message.clone()).map_err(|e| e.to_string())?; |
| | | Ok(log_message) |
| | | } |
| | | Err(e) => Err(format!("æå¼ä¸²å£å¤±è´¥: {}", e)), |
| | | } |
| | | } |
| | | |
| | | #[tauri::command] |
| | | pub async fn close_serial_port() -> Result<String, String> { |
| | | let mut serial_port_guard = SERIAL_PORT.lock().await; |
| | | if serial_port_guard.is_none() { |
| | | return Err("䏲壿ªæå¼".into()); |
| | | } |
| | | |
| | | // åéåæ¢ä¿¡å· |
| | | if let Some(tx) = STOP_SIGNAL_SENDER.lock().await.take() { |
| | | if let Err(e) = tx.send(()) { |
| | | eprintln!("åéåæ¢ä¿¡å·å¤±è´¥: {}", e); |
| | | } |
| | | } |
| | | |
| | | *serial_port_guard = None; |
| | | Ok("串å£å·²å
³é".into()) |
| | | } |
| | | |
| | | // ç§»é¤ read_serial_data å½ä»¤ï¼å 为读åé»è¾å·²éæå° open_serial_port ä¸ |
| | | // #[tauri::command] |
| | | // pub async fn read_serial_data(app_handle: tauri::AppHandle) -> Result<Vec<u8>, String> { |
| | | // let mut serial_port_guard = SERIAL_PORT.lock().await; |
| | | // if let Some(port) = serial_port_guard.as_mut() { |
| | | // let mut buffer: Vec<u8> = vec![0; 128]; // åè®¾æ¯æ¬¡æå¤è¯»å128åè |
| | | // match port.read(buffer.as_mut_slice()) { |
| | | // Ok(bytes_read) => { |
| | | // let data = buffer[..bytes_read].to_vec(); |
| | | // // å¯ä»¥å¨è¿éåå°äºä»¶å°å端ï¼å¦æéè¦å®æ¶æ¾ç¤º |
| | | // // app_handle.emit_all("serial_data", &data).unwrap(); |
| | | // Ok(data) |
| | | // } |
| | | // Err(ref e) if e.kind() == ErrorKind::TimedOut => Ok(vec![]), // è¶
æ¶ä¸æ¯é误 |
| | | // Err(e) => Err(format!("读å䏲壿°æ®å¤±è´¥: {}", e)), |
| | | // } |
| | | // } else { |
| | | // Err("䏲壿ªæå¼".into()) |
| | | // } |
| | | // } |
| | | |
| | | #[tauri::command] |
| | | pub async fn write_serial_data(data: Vec<u8>) -> Result<usize, String> { |
| | | let mut serial_port_guard = SERIAL_PORT.lock().await; |
| | | if let Some(port) = serial_port_guard.as_mut() { |
| | | match port.write_all(&data) { |
| | | Ok(_) => Ok(data.len()), |
| | | Err(e) => Err(format!("åå
¥ä¸²å£æ°æ®å¤±è´¥: {}", e)), |
| | | } |
| | | } else { |
| | | Err("䏲壿ªæå¼".into()) |
| | | } |
| | | } |
| | | |
| | | #[tauri::command] |
| | | pub fn list_serial_ports() -> Result<Vec<String>, String> { |
| | | match serialport::available_ports() { |
| | | Ok(ports) => { |
| | | let port_names = ports.into_iter().map(|p| p.port_name).collect(); |
| | | Ok(port_names) |
| | | } |
| | | Err(e) => Err(format!("ååºä¸²å£å¤±è´¥: {}", e)), |
| | | } |
| | | } |
| | |
| | | "$schema": "https://schema.tauri.app/config/2", |
| | | "productName": "six-axis-force", |
| | | "version": "0.1.0", |
| | | "identifier": "com.lanbao.saf", |
| | | "identifier": "six-axis-force", |
| | | "build": { |
| | | "beforeDevCommand": "pnpm dev", |
| | | "devUrl": "http://localhost:1420", |
| | |
| | | <script setup lang="ts"> |
| | | import { ref } from "vue"; |
| | | import { invoke } from "@tauri-apps/api/core"; |
| | | import ForceChart from "./components/ForceChart.vue"; |
| | | import GaugeDisplay from "./components/GaugeDisplay.vue"; |
| | | import TableDisplay from "./components/TableDisplay.vue"; |
| | | import ThreeDDisplay from "./components/ThreeDDisplay.vue"; |
| | | import TitleBar from "./components/TitleBar.vue"; |
| | | import SerialPortConfig from "./components/SerialPortConfig.vue"; |
| | | |
| | | // const message = ref(''); |
| | | const logs = ref<string[]>([]); |
| | | const showChart = ref(false); |
| | | const pipeName = 'tauri-pipe-server'; |
| | | const currentDisplay = ref('line'); // é»è®¤æ¾ç¤ºæ²çº¿å¾ |
| | | const dataSource = ref<'pipe' | 'ws'>('ws'); // é»è®¤æ°æ®æºä¸ºç®¡é |
| | | // const isSerialPortConnected = ref(false); // æ°å¢ï¼è·è¸ªä¸²å£è¿æ¥ç¶æ |
| | | |
| | | async function startPipeServer() { |
| | | try { |
| | | const res = await invoke('start_pipe_server_command', {pipeName}); |
| | | console.log(res); |
| | | logs.value.push('[ç³»ç»] æ°æ®æ¥æ¶æå¡å·²å¯å¨'); |
| | | console.log('[ç³»ç»] 管éæå¡ç«¯å·²å¯å¨'); |
| | | showChart.value = true; |
| | | } catch (err) { |
| | | logs.value.push(`[é误] å¯å¨å¤±è´¥: ${err}`); |
| | | } |
| | | } |
| | | const currentDisplay = ref('setting'); // é»è®¤æ¾ç¤ºæ²çº¿å¾ |
| | | |
| | | |
| | | // async function startPipeServer() { |
| | | // try { |
| | | // const res = await invoke('start_pipe_server_command', {pipeName}); |
| | | // console.log(res); |
| | | // logs.value.push('[ç³»ç»] æ°æ®æ¥æ¶æå¡å·²å¯å¨'); |
| | | // console.log('[ç³»ç»] 管éæå¡ç«¯å·²å¯å¨'); |
| | | // showChart.value = true; |
| | | // } catch (err) { |
| | | // logs.value.push(`[é误] å¯å¨å¤±è´¥: ${err}`); |
| | | // } |
| | | // } |
| | | |
| | | // async function sendToPipe() { |
| | | // if (!message.value) return; |
| | |
| | | // logs.value.push(`[é误] é信失败: ${err}`); |
| | | // } |
| | | // } |
| | | startPipeServer(); |
| | | // startPipeServer(); |
| | | |
| | | const handleConnectionChange = (connected: boolean) => { |
| | | if (connected) { |
| | | currentDisplay.value = 'line'; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <TitleBar :currentDisplay="currentDisplay" @start-service="startPipeServer" @select-display="(mode) => currentDisplay = mode" /> |
| | | <TitleBar :currentDisplay="currentDisplay" @select-display="(mode) => currentDisplay = mode" /> |
| | | <main class="container"> |
| | | <!-- <div class="data-source-switch"> |
| | | <label>æ°æ®æºï¼</label> |
| | | <select v-model="dataSource"> |
| | | <option value="pipe">管é</option> |
| | | <option value="ws">WebSocket</option> |
| | | </select> |
| | | </div> --> |
| | | |
| | | <div class="display-mode-icons"> |
| | | |
| | | |
| | | <div class="display-mode-icons"> |
| | | <button :class="['icon-button', { active: currentDisplay === 'setting' }]" @click="currentDisplay = 'setting'" title="串å£è®¾ç½®"> |
| | | <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> |
| | | <path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/> |
| | | <circle cx="12" cy="12" r="3"/> |
| | | </svg> |
| | | </button> |
| | | <button :class="['icon-button', { active: currentDisplay === 'line' }]" @click="currentDisplay = 'line'" title="æ²çº¿å¾"> |
| | | <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 13L8.5 6L13.5 12L19 7L22 10"/><path d="M18 13a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"/></svg> |
| | | </button> |
| | |
| | | <h2>Force Sensor Data Visualization</h2> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <!-- æ¾ç¤ºåä¼ æå¨æ°æ® --> |
| | | <div v-if="showChart" class="chart-wrapper"> |
| | | <ForceChart v-if="currentDisplay === 'line'" :pipeName="pipeName" :dataSource="dataSource" /> |
| | | <GaugeDisplay v-else-if="currentDisplay === 'gauge'" :pipeName="pipeName" :dataSource="dataSource" /> |
| | | <TableDisplay v-else-if="currentDisplay === 'table'" :pipeName="pipeName" :dataSource="dataSource" /> |
| | | <ThreeDDisplay v-else-if="currentDisplay === '3d'" :pipeName="pipeName" :dataSource="dataSource" /> |
| | | <div class="chart-wrapper"> |
| | | |
| | | <ForceChart v-if="currentDisplay === 'line'" /> |
| | | <GaugeDisplay v-else-if="currentDisplay === 'gauge'" /> |
| | | <TableDisplay v-else-if="currentDisplay === 'table'"/> |
| | | <ThreeDDisplay v-else-if="currentDisplay === '3d'" /> |
| | | <SerialPortConfig v-else-if="currentDisplay === 'setting'" @connection-change="handleConnectionChange" /> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <!-- <div class="input-group"> |
| | | <input |
| | |
| | | .log-container { |
| | | |
| | | border-radius: 8px; |
| | | max-height: 300px; |
| | | height: 34px; |
| | | overflow-y: auto; |
| | | |
| | | } |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 8px; |
| | | } |
| | | |
| | | /* Modal Styles */ |
| | | .modal-overlay { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | background-color: rgba(0, 0, 0, 0.5); |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | z-index: 1000; |
| | | } |
| | | |
| | | .modal-content { |
| | | background-color: #fff; |
| | | padding: 20px; |
| | | border-radius: 8px; |
| | | box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
| | | position: relative; |
| | | min-width: 300px; |
| | | max-width: 90%; |
| | | } |
| | | |
| | | .close-button { |
| | | position: absolute; |
| | | top: 10px; |
| | | right: 10px; |
| | | background: none; |
| | | border: none; |
| | | font-size: 1.2em; |
| | | cursor: pointer; |
| | | color: #555; |
| | | } |
| | | </style> |
| | | |
| | |
| | | justify-content: center; |
| | | gap: 4px; /* Smaller gap for icons */ |
| | | margin-top: -27px; /* Space between icons and window controls */ |
| | | width: 100px; |
| | | width: 150px; |
| | | z-index: 9999; |
| | | } |
| | | |
| | |
| | | import * as echarts from 'echarts'; |
| | | import { createDataReceiver } from '../utils/dataFetcher'; |
| | | |
| | | |
| | | const chartContainer = ref<HTMLElement | null>(null); |
| | | let chart: echarts.ECharts | null = null; |
| | | |
| | |
| | | chart?.resize(); |
| | | } |
| | | |
| | | // 宿¶è·åæ°æ® |
| | | let dataTimer: number | null = null; |
| | | |
| | | |
| | | onMounted(() => { |
| | | initChart(); |
| | | |
| | | const receiveData = createDataReceiver( (forceData) => { |
| | | createDataReceiver( (forceData) => { |
| | | console.log('forceData', forceData); |
| | | updateChart(forceData); |
| | | }); |
| | | |
| | | // æ¯100msè·å䏿¬¡æ°æ® |
| | | dataTimer = window.setInterval(receiveData, 100); |
| | | }); // ä¼ é isSerialPortConnected 彿° |
| | | |
| | | // çå¬çªå£å¤§å°ååï¼è°æ´å¾è¡¨å¤§å° |
| | | window.addEventListener('resize', handleResize); |
| | | }); |
| | | |
| | | onUnmounted(() => { |
| | | // æ¸
ç宿¶å¨åäºä»¶çå¬ |
| | | if (dataTimer !== null) { |
| | | clearInterval(dataTimer); |
| | | } |
| | | |
| | | window.removeEventListener('resize', handleResize); |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | let dataInterval: number | null = null; |
| | | |
| | | onMounted(() => { |
| | | initChart(); |
| | | |
| | | const receiveData = createDataReceiver((forceData) => { |
| | | createDataReceiver( (forceData) => { |
| | | updateChart(forceData); |
| | | }); |
| | | |
| | | // æ¯200msè·å䏿¬¡æ°æ® |
| | | dataInterval = window.setInterval(receiveData, 200); |
| | | }); // ä¼ é isSerialPortConnected 彿° |
| | | |
| | | // çå¬çªå£å¤§å°ååï¼è°æ´å¾è¡¨å¤§å° |
| | | window.addEventListener('resize', handleResize); |
| | | }); |
| | | |
| | | onUnmounted(() => { |
| | | if (dataInterval !== null) { |
| | | clearInterval(dataInterval); |
| | | } |
| | | |
| | | if (chart) { |
| | | chart.dispose(); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div style="width: 100%; height: 100%; display: flex; justify-content: center;align-items: center;" > |
| | | <div class="serial-port-config"> |
| | | <h3>串å£é
ç½®</h3> |
| | | <div class="control-group"> |
| | | <label for="port-select">鿩䏲å£:</label> |
| | | <select id="port-select" v-model="serialPortStore.selectedPort" @focus="listPorts"> |
| | | <option v-for="port in availablePorts" :key="port" :value="port">{{ port }}</option> |
| | | </select> |
| | | <button @click="listPorts">å·æ°</button> |
| | | </div> |
| | | <div class="control-group"> |
| | | <label for="baud-rate-select">æ³¢ç¹ç:</label> |
| | | <select id="baud-rate-select" v-model="serialPortStore.baudRate"> |
| | | <option v-for="rate in baudRates" :key="rate" :value="rate">{{ rate }}</option> |
| | | </select> |
| | | </div> |
| | | <div class="control-group"> |
| | | <button @click="togglePortConnection">{{ serialPortStore.isConnected ? 'å
³é串å£' : 'æå¼ä¸²å£' }}</button> |
| | | </div> |
| | | <p v-if="connectionStatus">ç¶æ: {{ connectionStatus }}</p> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref, onMounted, watch } from 'vue'; |
| | | import { invoke } from '@tauri-apps/api/core'; |
| | | import { useSerialPortStore } from '../store/serialPort'; |
| | | |
| | | const emit = defineEmits(['connection-change']); |
| | | |
| | | const serialPortStore = useSerialPortStore(); |
| | | |
| | | const availablePorts = ref<string[]>([]); |
| | | // const selectedPort = ref<string | null>(null); |
| | | const baudRates = ref<number[]>([9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600]); |
| | | // const baudRate = ref<number>(115200); // Default baud rate |
| | | // const isConnected = ref<boolean>(false); |
| | | const connectionStatus = ref<string>(''); |
| | | |
| | | // List available serial ports |
| | | async function listPorts() { |
| | | try { |
| | | const ports: string[] = await invoke('list_serial_ports'); |
| | | availablePorts.value = ports; |
| | | if (!serialPortStore.selectedPort && ports.length > 0) { |
| | | serialPortStore.setSelectedPort(ports[0]); |
| | | } |
| | | } catch (error) { |
| | | console.error('Error listing serial ports:', error); |
| | | connectionStatus.value = `é误: ${error}`; |
| | | } |
| | | } |
| | | |
| | | // Open or close the serial port |
| | | async function togglePortConnection() { |
| | | if (serialPortStore.isConnected) { |
| | | // Close port |
| | | try { |
| | | await invoke('close_serial_port'); |
| | | serialPortStore.setConnectionStatus(false); |
| | | connectionStatus.value = '串å£å·²å
³é'; |
| | | console.log('Serial port closed'); |
| | | emit('connection-change', false); |
| | | } catch (error) { |
| | | console.error('Error closing serial port:', error); |
| | | connectionStatus.value = `é误: ${error}`; |
| | | } |
| | | } else { |
| | | // Open port |
| | | if (!serialPortStore.selectedPort) { |
| | | connectionStatus.value = 'è¯·éæ©ä¸ä¸ªä¸²å£'; |
| | | return; |
| | | } |
| | | try { |
| | | const result:string = await invoke('open_serial_port', { appHandle: null, portName: serialPortStore.selectedPort, baudRate: serialPortStore.baudRate }); // appHandle å¨ Tauri 䏿¯éå¼ä¼ éçï¼è¿éåªæ¯ä¸ºäºå¹é
Rust 彿°ç¾å |
| | | console.log("æå¼ä¸²å£:",result); |
| | | serialPortStore.setConnectionStatus(true); |
| | | connectionStatus.value = `å·²è¿æ¥å° ${serialPortStore.selectedPort} @ ${serialPortStore.baudRate} bps`; |
| | | console.log(`Connected to ${serialPortStore.selectedPort} @ ${serialPortStore.baudRate} bps`); |
| | | emit('connection-change', true); |
| | | } catch (error) { |
| | | console.error('Error opening serial port:', error); |
| | | serialPortStore.setConnectionStatus(false); |
| | | connectionStatus.value = `é误: ${error}`; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // Automatically list ports when the component mounts |
| | | onMounted(() => { |
| | | listPorts(); |
| | | }); |
| | | |
| | | // Watch for changes in selectedPort or baudRate and emit them |
| | | watch([() => serialPortStore.selectedPort, () => serialPortStore.baudRate, () => serialPortStore.isConnected], () => { |
| | | // You might want to emit these values to a parent component or a global state manager |
| | | // For now, we'll just log them. |
| | | console.log('Selected Port:', serialPortStore.selectedPort); |
| | | console.log('Baud Rate:', serialPortStore.baudRate); |
| | | console.log('Is Connected:', serialPortStore.isConnected); |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .serial-port-config { |
| | | padding: 20px; |
| | | border: 1px solid #ccc; |
| | | border-radius: 8px; |
| | | margin-bottom: 20px; |
| | | width:300px; |
| | | height: 260px; |
| | | background-color: #f9f9f9; |
| | | } |
| | | |
| | | .control-group { |
| | | margin-bottom: 15px; |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 10px; |
| | | } |
| | | |
| | | .control-group label { |
| | | font-weight: bold; |
| | | min-width: 80px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .control-group select, |
| | | .control-group input[type="number"] { |
| | | padding: 8px; |
| | | border: 1px solid #ddd; |
| | | border-radius: 4px; |
| | | flex-grow: 1; |
| | | } |
| | | |
| | | .control-group button { |
| | | padding: 8px 15px; |
| | | background-color: #007bff; |
| | | color: white; |
| | | border: none; |
| | | border-radius: 4px; |
| | | cursor: pointer; |
| | | transition: background-color 0.3s ease; |
| | | } |
| | | |
| | | .control-group button:hover { |
| | | background-color: #0056b3; |
| | | } |
| | | |
| | | p { |
| | | margin-top: 10px; |
| | | font-size: 0.9em; |
| | | color: #555; |
| | | } |
| | | </style> |
| | |
| | | <script setup lang="ts"> |
| | | import { ref, onMounted, onUnmounted } from 'vue'; |
| | | import { ref, onMounted, onUnmounted} from 'vue'; |
| | | import { createDataReceiver } from '../utils/dataFetcher'; |
| | | |
| | | interface ForceData { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | let dataInterval: number | null = null; |
| | | |
| | | onMounted(() => { |
| | | const receiveData = createDataReceiver( (forceData) => { |
| | | createDataReceiver((forceData) => { |
| | | updateTable(forceData); |
| | | }); |
| | | // æ¯500msè·å䏿¬¡æ°æ® |
| | | dataInterval = window.setInterval(receiveData, 500); |
| | | }); |
| | | |
| | | onUnmounted(() => { |
| | | if (dataInterval !== null) { |
| | | clearInterval(dataInterval); |
| | | } |
| | | |
| | | }); |
| | | </script> |
| | | |
| | |
| | | import * as THREE from 'three'; |
| | | import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'; |
| | | import { createDataReceiver } from '../utils/dataFetcher'; |
| | | |
| | | |
| | | const containerRef = ref<HTMLElement | null>(null); |
| | | let scene: THREE.Scene | null = null; |
| | | let camera: THREE.PerspectiveCamera | null = null; |
| | |
| | | |
| | | |
| | | |
| | | // 宿¶è·åæ°æ® |
| | | let dataTimer: number | null = null; |
| | | |
| | | onMounted(() => { |
| | | initScene(); |
| | | animate(); |
| | | |
| | | const receiveData = createDataReceiver( (forceData) => { |
| | | // createDataReceiver ç°å¨ç´æ¥æ³¨ååè°å¹¶è¿åä¸ä¸ªæ¸
ç彿° |
| | | createDataReceiver((forceData) => { |
| | | updateVisualization(forceData); |
| | | }); |
| | | |
| | | // æ¯100msè·å䏿¬¡æ°æ® |
| | | dataTimer = window.setInterval(receiveData, 100); |
| | | }); // ä¼ é isSerialPortConnected 彿° |
| | | |
| | | // çå¬çªå£å¤§å°åå |
| | | window.addEventListener('resize', handleResize); |
| | | }); |
| | | |
| | | onUnmounted(() => { |
| | | // æ¸
ç宿¶å¨åäºä»¶çå¬ |
| | | if (dataTimer !== null) { |
| | | clearInterval(dataTimer); |
| | | } |
| | | |
| | | |
| | | window.removeEventListener('resize', handleResize); |
| | | |
| | |
| | | import { createApp } from "vue"; |
| | | import { createApp } from 'vue'; |
| | | import { createPinia } from 'pinia'; |
| | | import App from "./App.vue"; |
| | | |
| | | import { invoke } from "@tauri-apps/api/core"; |
| | | import { listen } from '@tauri-apps/api/event'; |
| | | import { processSerialData } from './utils/dataFetcher'; |
| | | |
| | | createApp(App).mount("#app"); |
| | | |
| | | const app = createApp(App); |
| | | const pinia = createPinia(); |
| | | app.use(pinia); |
| | | app.mount("#app"); |
| | | |
| | | function sleep(seconds: number): Promise<void> { |
| | | return new Promise((resolve) => setTimeout(resolve, seconds * 1000)); |
| | |
| | | console.log("å端åºç¨å¯å¨å®æ111"); |
| | | // è°ç¨å端åºç¨ |
| | | invoke("set_complete", { task: "frontend" }); |
| | | } |
| | | |
| | | // ç嬿¥èªRustå端ç䏲壿°æ®äºä»¶ |
| | | await listen('serial_data', (event) => { |
| | | console.log('serial_data', event); |
| | | // event.payload æ¯ä»Ruståéè¿æ¥çæ°æ® |
| | | const data = event.payload as number[]; // åè®¾æ°æ®æ¯åèæ°ç» |
| | | processSerialData(data); |
| | | }); |
| | | } |
| | | |
| | | window.addEventListener("DOMContentLoaded", () => { |
| | | console.log("å端åºç¨å¯å¨222"); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { defineStore } from 'pinia'; |
| | | |
| | | export const useSerialPortStore = defineStore('serialPort', { |
| | | state: () => ({ |
| | | isConnected: false, |
| | | selectedPort: null as string | null, |
| | | baudRate: 115200 as number, |
| | | }), |
| | | actions: { |
| | | setConnectionStatus(status: boolean) { |
| | | this.isConnected = status; |
| | | }, |
| | | setSelectedPort(port: string | null) { |
| | | this.selectedPort = port; |
| | | }, |
| | | setBaudRate(rate: number) { |
| | | this.baudRate = rate; |
| | | }, |
| | | }, |
| | | }); |
| | |
| | | import { getLatestWsData } from '../pipe_client'; |
| | | import { invoke } from '@tauri-apps/api/core'; |
| | | |
| | | // const pipeName = 'tauri-pipe-server'; |
| | | import * as math from 'mathjs'; |
| | | |
| | | // const dataSource = 'ws'; // pipe|ws |
| | | // å®ä¹ä¸ä¸ªç±»åï¼ç¨äºåå¨æææ³¨åçåè°å½æ° |
| | | type DataCallback = (data: number[]) => void; |
| | | const dataCallbacks: DataCallback[] = []; |
| | | |
| | | export async function fetchForceData() { |
| | | try { |
| | | let response: string | null = null; |
| | | |
| | | // if (dataSource === 'pipe') { |
| | | // if (!pipeName) throw new Error('Pipe name is required for pipe data source'); |
| | | // response = await sendToPipe(pipeName, 'GET_FORCE_DATA'); |
| | | // } else if (dataSource === 'ws') { |
| | | response = await getLatestWsData(); |
| | | if (!response) return null; |
| | | // } |
| | | |
| | | if (!response) return null; |
| | | |
| | | const jsonData = JSON.parse(response); |
| | | const forceData = jsonData[0]; |
| | | if (Array.isArray(forceData) && forceData.length === 6) { |
| | | // å°æ°ç»ä¸çæ¯ä¸ªæ°åå«*4000/4194303 |
| | | for (let i = 0; i < forceData.length; i++) { |
| | | forceData[i] = forceData[i] * 4000 / 4194303; |
| | | } |
| | | return forceData; |
| | | } |
| | | |
| | | return null; |
| | | } catch (error) { |
| | | console.error('Error fetching force data:', error); |
| | | return null; |
| | | // æ³¨åæ°æ®æ¥æ¶åè°å½æ° |
| | | export function registerDataCallback(callback: DataCallback) { |
| | | dataCallbacks.push(callback); |
| | | } |
| | | |
| | | // ç§»é¤æ°æ®æ¥æ¶åè°å½æ° |
| | | export function unregisterDataCallback(callback: DataCallback) { |
| | | const index = dataCallbacks.indexOf(callback); |
| | | if (index > -1) { |
| | | dataCallbacks.splice(index, 1); |
| | | } |
| | | } |
| | | |
| | | export function createDataReceiver( callback: (data: number[]) => void) { |
| | | let errorCount = 0; |
| | | const maxConsecutiveErrors = 5; |
| | | let showingError = false; |
| | | |
| | | return async () => { |
| | | try { |
| | | const forceData = await fetchForceData(); |
| | | console.log('forceData111', forceData); |
| | | if (forceData) { |
| | | // éç½®éè¯¯è®¡æ° |
| | | errorCount = 0; |
| | | if (showingError) { |
| | | showingError = false; |
| | | console.log('æ°æ®éä¿¡å·²æ¢å¤'); |
| | | } |
| | | console.log('forceData222', forceData); |
| | | callback(forceData); |
| | | } |
| | | } catch (err) { |
| | | // å¢å éè¯¯è®¡æ° |
| | | errorCount++; |
| | | |
| | | // åªå¨è¿ç»é误达å°é弿¶æ¾ç¤ºé误信æ¯ï¼é¿å
æ¥å¿å·å± |
| | | if (errorCount >= maxConsecutiveErrors && !showingError) { |
| | | showingError = true; |
| | | console.error('æ°æ®éä¿¡æç»å¤±è´¥ï¼è¯·æ£æ¥æå¡ç«¯ç¶æ:', err); |
| | | } |
| | | // å¤çä»Ruståç«¯æ¥æ¶å°ç䏲壿°æ® |
| | | export function processSerialData(data: number[]): number[] | undefined { |
| | | // å¯¹æ¥æ¶å°çæ°æ®è¿è¡crcæ ¡éª,å两个åèæ¯å¸§å¤´ï¼å两个åèæ¯æ ¡éªå¼ |
| | | // æ ¡éªæ°æ®æ¯å¦æ£ç¡® |
| | | // å»é¤å两个åèåå两个åè |
| | | const dataWithoutHeaderAndCRC = data.slice(0, -2); |
| | | const crc16 = crc16modbus(dataWithoutHeaderAndCRC); |
| | | // æ ¡éªæ°æ®æ¯å¦æ£ç¡® |
| | | if (crc16[0] === data[data.length - 2] && crc16[1] === data[data.length - 1]) { |
| | | console.log('æ ¡éªæ°æ®æ£ç¡®'); |
| | | } |
| | | |
| | | const dataWithoutHeader = data.slice(2, -2); |
| | | // dataWithoutHeader 䏿¯ä¸ä¸ªåèè½¬æ¢æä¸ä¸ªæ° |
| | | const dataArray: number[] = []; |
| | | for (let i = 0; i < dataWithoutHeader.length; i += 3) { |
| | | const num = dataWithoutHeader[i] * 256 * 256 + dataWithoutHeader[i + 1] * 256 + dataWithoutHeader[i + 2]; |
| | | dataArray.push(num); |
| | | } |
| | | console.log('dataArray', dataArray); |
| | | invoke('log_data', { data: JSON.stringify(dataArray) }) |
| | | .then(() => console.log('Data logged successfully')) |
| | | .catch((e: any) => console.error('Failed to log data:', e)); |
| | | // å¯¹æ¥æ¶å°çæ°æ®è¿è¡å¤ç |
| | | if (Array.isArray(dataArray) && dataArray.length === 6) { |
| | | // å°æ°ç»ä¸çæ¯ä¸ªæ°åå«*4000/4194303 |
| | | for (let i = 0; i < dataArray.length; i++) { |
| | | dataArray[i] = dataArray[i] * 4000 / 4194303; |
| | | } |
| | | |
| | | // å®ä¹Bç©éµï¼ä»Excelæä»¶ä¸è·åï¼ |
| | | const B = [ |
| | | [-6.501014986, 49.89944483, -47.37512707, 3.306871125, -730.3864937, 731.892412], |
| | | [39.02334352, -20.01844412, -28.31245682, -846.7104044, 422.5886114, 423.8930456], |
| | | [1323.394066, 1311.347472, 1318.438012, -6.141452446, -5.309142718, -17.72182533], |
| | | [-0.461934807, 38.31359845, -37.51342676, -10.30786014, 5.431648347, -4.552001119], |
| | | [44.06827786, -21.49540034, -22.28032529, -0.447302394, -8.60890465, 9.325018254], |
| | | [1.125851578, 1.306669827, 1.532290446, -23.04749193, -23.05906062, -23.19316741] |
| | | ]; |
| | | |
| | | // 计ç®çå®çåå¼ï¼F = B * dataArray |
| | | const realForces = math.multiply(B, dataArray); |
| | | |
| | | // å°å¤çåçæ°æ®ååç»æææ³¨åçåè°å½æ° |
| | | dataCallbacks.forEach(callback => callback(realForces as number[])); |
| | | // è¿åçå®çå弿°ç» |
| | | return realForces as number[]; |
| | | } else { |
| | | console.error("Data array must contain 6 elements."); |
| | | return undefined; |
| | | } |
| | | } |
| | | |
| | | export function createDataReceiver(callback: (data: number[]) => void) { |
| | | // ç´æ¥æ³¨ååè°å½æ°ï¼ä¸åéè¦è½®è¯¢æéè¯¯è®¡æ° |
| | | registerDataCallback(callback); |
| | | |
| | | // è¿åä¸ä¸ªæ¸
ç彿°ï¼ç¨äºå¨ç»ä»¶å¸è½½æ¶ç§»é¤åè° |
| | | return () => { |
| | | unregisterDataCallback(callback); |
| | | }; |
| | | } |
| | | } |
| | | |
| | | // CRC-16/Modbus æ¥è¡¨æ³é¢çæ 256 个 CRC å¼ |
| | | function makeCRCTable() { |
| | | const table = new Array(256); |
| | | const polynomial = 0xA001; |
| | | |
| | | for (let i = 0; i < 256; i++) { |
| | | let crc = i; |
| | | for (let j = 0; j < 8; j++) { |
| | | if (crc & 0x0001) { |
| | | crc = (crc >>> 1) ^ polynomial; |
| | | } else { |
| | | crc >>>= 1; |
| | | } |
| | | } |
| | | table[i] = crc; |
| | | } |
| | | return table; |
| | | } |
| | | |
| | | const crcTable = makeCRCTable(); |
| | | |
| | | // CRC-16/Modbus 计ç®å½æ° |
| | | function crc16modbus(buffer: number[]) { |
| | | let crc = 0xFFFF; |
| | | |
| | | for (let i = 0; i < buffer.length; i++) { |
| | | let tableIndex = (crc ^ buffer[i]) & 0xFF; |
| | | crc = (crc >>> 8) ^ crcTable[tableIndex]; |
| | | } |
| | | |
| | | // è¿åå°ç«¯æ ¼å¼ï¼Modbus è¦æ±ä½ä½å¨åï¼ï¼ä»¥åèæ°ç»çå½¢å¼è¿å |
| | | const crcBytes = [crc & 0xFF, crc >>> 8]; |
| | | return crcBytes; |
| | | } |