This commit is contained in:
xin
2025-05-07 11:10:44 +08:00
parent 8820b28ab8
commit fb037dbf6f
56 changed files with 2679 additions and 470 deletions

38
src-tauri/Cargo.lock generated
View File

@ -491,7 +491,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -522,7 +522,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
dependencies = [
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -570,7 +570,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim 0.11.1",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -592,7 +592,7 @@ checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178"
dependencies = [
"darling_core 0.20.9",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -860,7 +860,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -1774,7 +1774,7 @@ checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -2212,7 +2212,7 @@ dependencies = [
"phf_shared 0.11.2",
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -2356,9 +2356,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]]
name = "proc-macro2"
version = "1.0.82"
version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
dependencies = [
"unicode-ident",
]
@ -2698,7 +2698,7 @@ checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -2721,7 +2721,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -2782,7 +2782,7 @@ dependencies = [
"darling 0.20.9",
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -3041,9 +3041,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.64"
version = "2.0.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f"
checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
dependencies = [
"proc-macro2",
"quote",
@ -3386,7 +3386,7 @@ checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -3487,7 +3487,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -3577,7 +3577,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
]
[[package]]
@ -3775,7 +3775,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
"wasm-bindgen-shared",
]
@ -3809,7 +3809,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.64",
"syn 2.0.100",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]

View File

@ -34,6 +34,7 @@ nalgebra = "0.33.2"
[features]
# This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!!
custom-protocol = ["tauri/custom-protocol"]

View File

@ -1 +1 @@
{"pathofsave":"C:\\Users\\xin\\Desktop\\test\\123","Filename":"testaa","caijiavgNumber":"1","useSG":false,"usehighpass":false,"Dispatcher":{"isenable":true,"begin":"06:25","end":"23:59"},"sensor_typeforset":"IS3"}
{"pathofsave":null,"Filename":"testaa","caijiavgNumber":"1","useSG":false,"usehighpass":false,"Dispatcher":{"isenable":true,"begin":"06:25","end":"23:59"},"sensor_typeforset":"IS3"}

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,5 @@
extern crate savgol_rs;
use savgol_rs::savgol_filter;
pub fn savgol(data: Vec<f64>, window: usize, order: usize) -> Vec<f64> {
let svinput= savgol_rs::SavGolInput{data:&data,window_length:window,poly_order:order,derivative:0};
@ -20,4 +19,4 @@ fn test_savgol() {
let smoothed_data = savgol(data.clone(), window, order);
println!("Smoothed data: {:?}", smoothed_data);
}
}

View File

@ -62,6 +62,7 @@ pub fn sendtoport_andgetreturn(
"sensor_type":"IRIS-Sensor",
"fiber_type":"Single",
"shutter_time":shuttertime,
"has_shutter":true,
});

View File

@ -5,7 +5,7 @@ use std::slice;
use crate::serport::serport::*;
use super::STRSensorInfo;
//void IS3SetShutterOpen(int isopen);
type SerialWrite = Option<unsafe extern "C" fn(data: *mut c_uchar, length: size_t) -> size_t>;
#[link(
name = "D:\\06Learn\\rust\\tarui\\myfirst_tauri\\myis11\\project\\is3\\cmake-build-debug-visual-studio/iris_is3lib",
@ -18,6 +18,7 @@ extern "C" {
pub fn IS3OptSnenser(percent:i32) -> i32;
pub fn IS3GetData(outdata: *mut u16, shuttertime: i32) -> i32;
pub fn IS3SetWeaveLenthCoeff(a:*mut f64,length:i32) -> i32;
pub fn IS3SetShutterOpen(isopen: i32) ;
}
@ -78,6 +79,9 @@ pub fn is3_get_data(shuttertime: i32) -> Vec<u16> {
outdata
}
pub fn is3_set_shutter_open(isopen: i32) {
unsafe { IS3SetShutterOpen(isopen) }
}
pub fn is3_set_weave_length_coeff(a: Vec<f64>) -> i32 {
let mut a = a.clone();

View File

@ -230,4 +230,26 @@ pub fn set_sensor_weave_length_coeff(a: Vec<f64>) -> i32 {
return 0;
},
}
}
pub fn sensor_set_shutter_open(isopen:i32) {
let senortype = SENSORTYPE.lock().unwrap();
match *senortype {
Senortype::IS11 => {
unsafe {
}
},
Senortype::IS3 => {
unsafe {
IS3_sensor::IS3SetShutterOpen(isopen);
}
},
_ => {
},
}
}

View File

@ -11,6 +11,7 @@ use std::fs::File;
use std::mem;
use std::path::Path;
use std::io::Read;
use super::super::algorithm::*;
#[derive(PartialEq)]
enum WorkStat {
IDLE,
@ -54,8 +55,8 @@ lazy_static! {
removedark: false,
computeflat: true,
average_number_data: 1,
average_number_dark: 1,
average_number_flat: 1,
average_number_dark: 10,
average_number_flat: 10,
has_CalidataUP: false,
}));
@ -260,7 +261,9 @@ pub fn collcect_dark(shuttertime:u32)
drop(dev_stat); //释放锁
thread::spawn(move || {
let mut datasum:Vec<u32>=vec![0;bandsunm];
sensor_set_shutter_open(0);
for _i in 0..averagenumber {
let data=super::spectralbase::sensor_get_data(shuttertime as i32);
for i in 0..bandsunm {
datasum[i]=datasum[i]+data[i] as u32;
@ -271,6 +274,7 @@ pub fn collcect_dark(shuttertime:u32)
dev_stat.percent=((_i+1) as f32/averagenumber as f32*100 as f32*0.9) as i32;
drop(dev_stat); //释放锁
}
sensor_set_shutter_open(1);
let data=datasum.iter().map(|x| *x as f32/averagenumber as f32).collect::<Vec<f32>>();

View File

@ -10,7 +10,7 @@
"package": {
"productName": "SpectralPlot",
"version": "0.6.59"
"version": "0.6.62"
},
"tauri": {