@ -10,14 +10,22 @@ export async function getBalance(obj) {
originalValue : '1000' ,
originalUnit : 'g' ,
value : '1000' ,
value : convertUnit ( '1000' , 'g' , obj . dw || 'g' ) ,
unit : obj . dw || 'g' ,
message : ''
}
let yq = obj . yq
let dw = obj . dw
let val = { }
let val = {
success : false ,
originalValue : '' ,
originalUnit : '' ,
value : '' ,
unit : '' ,
message : '未获取到天平数据'
}
let url = ` /tpphurl/api/v1/balance/value?cmd=12&format=hex&comPort=COM1&baudRate=9600&byteSize=8&parity=N `
// let url = `http://127.0.0.1:${localStorage.getItem('sb_port')}/api/v1/balance/value?cmd=${yq.cmd}&format=${yq.format}&comPort=${yq.comPort}&baudRate=${yq.baudRate}&byteSize=${yq.byteSize}&parity=${yq.parity}`
await axios
@ -33,15 +41,17 @@ export async function getBalance(obj) {
. then ( ( res ) => {
if ( res . status !== 200 ) {
Message . error ( '获取天平失败' )
return
}
let data = res . data
if ( data . code !== 200 ) {
Message . error ( data . msg || '获取天平数据失败' )
return
val . message = '获取天平失败'
} else {
let data = res . data
if ( data . code !== 200 ) {
Message . error ( data . msg || '获取天平数据失败' )
val . message = data . msg || '获取天平数据失败'
} else {
val = parseBalanceData ( data . data , dw )
debugger
}
}
val = parseBalanceData ( data . data )
debugger
} )
debugger
return await val
@ -55,7 +65,7 @@ export async function getPh(obj) {
}
let yq = obj . yq
let val = { }
let val = { success : false , value : '' , message : '未获取到PH数据' }
let url = ` /tpphurl/api/v1/ph/value?cmd=12&format=hex&comPort=COM1&baudRate=9600&byteSize=8&parity=N `
// let url = `http://127.0.0.1:${localStorage.getItem('sb_port')}/api/v1/ph/value?cmd=${yq.cmd}&format=${yq.format}&comPort=${yq.comPort}&baudRate=${yq.baudRate}&byteSize=${yq.byteSize}&parity=${yq.parity}`
await axios
@ -72,28 +82,30 @@ export async function getPh(obj) {
debugger
if ( res . status !== 200 ) {
Message . error ( '获取PH失败' )
return
}
let data = res . data
if ( data . code !== 200 ) {
Message . error ( data . msg || '获取PH数据失败' )
return
val . message = '获取PH失败'
} else {
let data = res . data
if ( data . code !== 200 ) {
Message . error ( data . msg || '获取PH数据失败' )
val . message = data . msg || '获取PH数据失败'
} else {
val = extractPHValue ( data . data )
debugger
}
}
val = extractPHValue ( data . data )
debugger
} )
debugger
return await val
}
export function parseBalanceData ( rawData , targetUnit = 'g' , precision ) {
export function parseBalanceData ( rawData , unit , precision ) {
// 初始化返回结果,固定字段结构
const result = {
success : false ,
value : '' ,
originalValue : '' ,
originalUnit : '' ,
targetUnit : targetUnit . toLowerCase ( ) ,
value : '' ,
unit : '' ,
message : ''
}
@ -157,6 +169,7 @@ export function parseBalanceData(rawData, targetUnit = 'g', precision) {
// 赋值到结果对象
result . originalValue = originalValue
result . originalUnit = originalUnit
result . unit = unit || originalUnit
result . message = ` 【解析成功】匹配到 ${ matchedFormat . desc } ,提取数值: ${ originalValue } ,单位: ${ originalUnit } `
// 7. 数值有效性校验
@ -167,10 +180,8 @@ export function parseBalanceData(rawData, targetUnit = 'g', precision) {
}
// 8. 单位换算核心逻辑
const unitToGram = { g : 1 , kg : 1000 }
const originalCoeff = unitToGram [ result . originalUnit ] || 1
const targetCoeff = unitToGram [ result . targetUnit ] || 1
let convertedValue = ( num * originalCoeff ) / targetCoeff
let convertedValue =
unit === originalUnit ? num : convertUnit ( num , originalUnit , unit )
// 9. 数值格式化:保留原始精度(仅当传入precision时,按指定位数截取,不四舍五入)
if ( typeof precision === 'number' && precision >= 0 ) {
@ -192,10 +203,10 @@ export function parseBalanceData(rawData, targetUnit = 'g', precision) {
// 11. 优化提示信息
const baseMsg = result . message . replace ( '【解析成功】' , '【成功】' )
if ( result . originalUnit === result . targetU nit) {
result . message = ` ${ baseMsg } → 最终值: ${ result . value } ${ result . targetU nit} `
if ( result . originalUnit === result . u nit) {
result . message = ` ${ baseMsg } → 最终值: ${ result . value } ${ result . u nit} `
} else {
result . message = ` ${ baseMsg } → 换算至 ${ result . targetU nit} : ${ result . value } ${ result . targetU nit} `
result . message = ` ${ baseMsg } → 换算至 ${ result . u nit} : ${ result . value } ${ result . u nit} `
}
} catch ( error ) {
result . message = ` 【系统错误】解析换算失败: ${ error . message } `
@ -205,6 +216,21 @@ export function parseBalanceData(rawData, targetUnit = 'g', precision) {
return result
}
export function convertUnit ( num , originalUnit , targetUnit ) {
// 8. 单位换算核心逻辑
const unitToGram = {
pg : 1 ,
ug : 1000 ,
ng : 1000000 ,
mg : 1000000000 ,
g : 1000000000000 ,
kg : 1000000000000000
}
const originalCoeff = unitToGram [ originalUnit ] || 1
const targetCoeff = unitToGram [ targetUnit ] || 1
return ( num * originalCoeff ) / targetCoeff
}
export function extractPHValue ( rawData ) {
const result = {
success : false ,