This commit is contained in:
xin
2025-05-07 11:13:56 +08:00
parent fb037dbf6f
commit 94336c9ba1
23 changed files with 215 additions and 382 deletions

View File

@ -1,9 +1,7 @@
use super::mydefine::*;
pub mod spectralserver;
pub mod spectralbase;
use std::fmt::format;
use std::fs;
use std::fs::File;
use super::mylog::*;
use serde_json::json;
use spectralserver::calibrate_file;

View File

@ -1,5 +1,4 @@
use libc::{c_uchar,c_char,c_long,c_float, size_t};
use std::ffi::CStr;
use libc::{c_uchar, size_t};
use std::slice;
use crate::serport::serport::*;

View File

@ -1,5 +1,4 @@
use libc::{c_uchar,c_char,c_long,c_float, size_t};
use std::ffi::CStr;
use libc::{c_uchar, size_t};
use std::slice;
use crate::serport::serport::*;

View File

@ -7,7 +7,6 @@ use std::{
};
mod IS3_sensor;
mod IS11_sensor;
// 定义emun 不同光谱仪
#[derive(Copy, Clone)]
pub enum Senortype {
@ -204,11 +203,12 @@ pub fn sensor_get_data(shuttertime: i32) -> Vec<u16> {
unsafe {
let len = sensor_get_data_base(outdata.as_mut_ptr(), shuttertime);
outdata.truncate(len as usize);
outdata.truncate(len as usize);
}
// polynomial_smooth_u16( outdata ,7)
outdata
}

View File

@ -2,16 +2,12 @@ use super::spectralbase;
use super::spectralbase::*;
use super::super::mydefine::*;
use lazy_static::lazy_static;
use chrono::{self, format, Datelike, Timelike};
use serde::de;
use tauri::http::header::UPGRADE;
use chrono::{self, Datelike, Timelike};
use std::thread;
use std::fs;
use std::fs::File;
use std::mem;
use std::path::Path;
use std::io::Read;
use super::super::algorithm::*;
#[derive(PartialEq)]
enum WorkStat {
IDLE,
@ -132,7 +128,7 @@ pub fn opt_sensor(percent: i32) -> i32 {
pub fn get_now_stat()->(String,String,i32){
let mut dev_stat=DEV_STAT.lock().unwrap();
let dev_stat=DEV_STAT.lock().unwrap();
match dev_stat.stat {
WorkStat::IDLE => {
return ("finish".to_string(),dev_stat.workname.clone(),100);
@ -415,12 +411,12 @@ pub fn calibrate_file(orgdata: &IS11DataStruct) -> IS11DataStruct {
let cali_gaindb = calidata.temprature[0];
let cali_shutter = calidata.shutter_time;
//db 转系数
let mut collect_gain = 10.0_f32.powf(collect_gaindb / 20.0);
let mut cali_gain = 10.0_f32.powf(cali_gaindb / 20.0);
let collect_gain = 10.0_f32.powf(collect_gaindb / 20.0);
let cali_gain = 10.0_f32.powf(cali_gaindb / 20.0);
//计算增益
let mut Scale_gain = cali_gain / collect_gain;
let mut Scale_shutter = cali_shutter as f32/ collect_shutter as f32;
let mut SCale = Scale_gain * Scale_shutter as f32;
let Scale_gain = cali_gain / collect_gain;
let Scale_shutter = cali_shutter as f32/ collect_shutter as f32;
let SCale = Scale_gain * Scale_shutter as f32;
let len = orgdata.data.len();
for i in 0..len {
data.data[i] = orgdata.data[i] * SCale * calidata.data[i]+offsetdata.data[i];