包含服务器端 ,桌面端两个分支
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
awrams/awrams.py

392 lines
197 KiB

2 years ago
from dataclasses import dataclass,field
from pathlib import Path
from typing import Any,List
from enum import Enum
import numpy as np
import struct
import time
from myRamses import RamsesFactoryHandle
from tools.mylogger import log
@dataclass
class InfoFrame(object):
infoBytes:bytes = None
time_str:str= None
time_stamp:int= None
year:str= None
month:str= None
day:str= None
hour:str= None
minute:str= None
second:str= None
Roll: int= None
Pitch:int= None
Yaw:int= None
Hx:int= None
Hy:int= None
lon:int= None
lat:int= None
satelite_num:int= None
PDOP:int= None
HDOP:int= None
VDOP:int= None
Temperature:int= None
Humidity:int = None
Battery:int= None
ErrorCode:int= None
Azimuth:int= None
RunAngle:int= None
MeasureGroupNum:int= None
Tiltx:int= None
Tilty:int= None
Depth:int= None
SN1:str= None
SN2:str= None
SN3:str= None
MeasureInterval :int= None
MeasureRepeat: int= None
def output_info_frame(self, ):
pass
def get_year(self, ):
return self.year
def set_info_frame(self, info:bytes):
try:
temp = struct.unpack("<BBBBBBHHHHHHIIHHHHHBBBHHIfff \
HHHBHBHHHHH",
info)
except Exception as e:
return
temp = list(temp) # tuple to list
# print(f" ==========={temp} {temp[0]}")
time_ = "20" + f"{str(temp[0])}" + "-" + f"{str(temp[1])}" + "-" + f"{str(temp[2])}" + " " \
+ f"{str(temp[3])}" + ":" + f"{str(temp[4])}" + ":" + f"{str(temp[5])}"
# print(f" ==========={time_}")
self.time_str = time_
self.time_stamp = 0
self.year:str = str(temp[0])
self.month:str = str(temp[1])
self.day:str = str(temp[2])
self.hour:str = str(temp[3])
self.minute:str = str(temp[4])
self.second:str = str(temp[5])
self.Roll: int = temp[6]
self.Pitch:int = temp[7]
self.Yaw:int = temp[8]
self.Hx:int = temp[9]
self.Hy:int = temp[10]
self.Hz:int = temp[11]
self.lon:int = temp[12]
self.lat:int = temp[13]
self.satelite_num:int = temp[14]
self.PDOP:int = temp[15]
self.HDOP:int = temp[16]
self.VDOP:int = temp[17]
self.Temperature:int = temp[18]
self.Humidity:int = temp[19]
self.Battery:int = temp[20]
self.ErrorCode:int = temp[21]
self.Azimuth:int = temp[22]
self.RunAngle:int = temp[23]
self.MeasureGroupNum:int = temp[24]
self.Tiltx:int = temp[25]
self.Tilty:int = temp[26]
self.Depth:int = temp[27]
self.SN1:str = hex(temp[28])[2:].upper()
self.SN2:str = hex(temp[29])[2:].upper()
self.SN3:str = hex(temp[30])[2:].upper()
self.MeasureInterval :int = temp[31]
self.MeasureRepeat: int = temp[32]
# print( self)
pass
@dataclass
class DataFrame(object):
''' AWRAMS 数据无需 remove_mask
多组 : 每组类似 15 + 26 + 576*3
数据接收方式 AWRAMS格式, 从文件读取
'''
deviceID:int = None
measureId: int = None
dataBytes:List[bytes] = None
groupNUm: int = 1
data_group:List[bytes] = None # 多组 每组三个传感器 [ Group1, group2, group3 group4 group5 ]
data_group_senor_bytes:List[List[bytes]] = None# [ [IP_byte, Sennsor1_byte,sensor2_byte,sensor3_byte], ] 先分测量组再传感器
data_sensor_group_bytes:List[List[bytes]] = None# [ [sensor1_grp1,sensor1_grp2,sensor1_grp3,sensor1_grp4,sensor1_grp5], ] 先传感器,再测量组
data_ip: List[List[bytes]] =None # IP数据
wavelength: List = None
spectrum: List = None
def set_data_bytes_list(self, data_frame:List[bytes]):
self.dataBytes = []
self.dataBytes = data_frame
pass
def set_data_bytes(self, byt:bytes):
''' 不含 15个 AA...头 , 26(*) +576(*) '''
self.dataBytes = []
# 判断是否包含IP部分数据
self.dataBytes = [byt]
pass
def set_data_group(self,groups:list):
self.data_group = groups
self.groupNum = len(self.data_group)
pass
def split_by_sensor(self,):
''' 兼容需求,需将 26个Ip信息帧传出去 '''
self.groupNum = len(self.dataBytes)
self.data_sensor_group_bytes =[]
self.data_ip = []
for i in range(3):
sensor = [] # 每组开始,赋予空值
for j in range(self.groupNum):
self.data_ip.append( self.dataBytes[j][:26] )
buf = self.dataBytes[j][26:]
sensor.append ( buf[i*576 : 576+i*576] )
pass
self.data_sensor_group_bytes.append(sensor)
pass
def split_by_measure(self,):
for i in range(self.groupNUm):
buf = self.data_group[i][41:]
measureGroup = [ ]
measureGroup.append( buf[0:576] )
measureGroup.append( buf[576:576+576] )
measureGroup.append( buf[576+576:576+576+576] )
self.data_group_senor_bytes.append(measureGroup)
pass
@dataclass
class AWRAMSData(object):
deviceid:int =None
configSensor:List[str] = None # 序列号 Lsky Esky Lwater
configFunc:List[str] = None
info_frame:InfoFrame = None
data_frame:DataFrame = None # 数据只到分组成byte结束
ramsesFactoryHandle:List[RamsesFactoryHandle] = None # 多个工厂,每个工厂有自己的 标定文件及参数,工厂标记序列哈,只处理相同序列号的产品数据
data_after_avg:List[int] =None
wavelength:List[int] =None
spectrum:List[int] =None
pass
def __post_init__(self):
assert self.deviceid != None , ">>>> AWRAMSData deviceid is empty"
pass
def build_datafactory_by_configSensor(self,calcfg:dict):
"""
@description : 调用工厂得到整数值
@param : 576字节数据, 数据id(第几个传感器,还是序列号)
@Returns : List[int]
"""
assert self.configSensor != None, ">>>> AWRAMSData configSensor is None"
self.ramsesFactoryHandle = [None,None,None]
for i in range(0, len( self.configSensor)):
cfg = calcfg[self.configFunc[i]]
tmp_ramses_factory_handle = RamsesFactoryHandle( sn= self.configSensor[i], cfg=cfg )
self.ramsesFactoryHandle[i] = tmp_ramses_factory_handle
def set_data_frame( self, data_frame:List[bytes], func ):
"""
@description : data_frame
"""
log.info(f" 处理 data_frame:List[bytes] ",__name__,"set_data_frame")
self.data_frame = DataFrame()
self.data_frame.set_data_bytes_list(data_frame )
# 对数据进行分组 split_by_sensor(self,)
self.data_frame.split_by_sensor()
self.spectrum =[]
self.wavelength =[]
# 分组后的数据 传给RamsesFactory 的 deal_raw_data_list, 返回平均值
for i in range( len(self.data_frame.data_sensor_group_bytes) ):
log.info( f" {i} ......... {len(self.data_frame.data_sensor_group_bytes[i])}",__name__, "set_data_frame ")
# log.info( f" {i} ......... ",__name__, "set_data_frame ")
self.ramsesFactoryHandle[i].deal_raw_data_list( self.data_frame.data_sensor_group_bytes[i] )
self.ramsesFactoryHandle[i].rf.get_wavelenth()
self.spectrum.append (self.ramsesFactoryHandle[i].rf.data_after_cal)
self.wavelength.append (self.ramsesFactoryHandle[i].rf.Wavelength)
# 补充IP解析数据
# 回调函数
func( self.wavelength, self.spectrum )
def set_info_frame(self, info_frame:bytes):
self.info_frame = InfoFrame()
self.info_frame.set_info_frame(info_frame) #已经解析
pass
# def deal_data_frame(self,):
# """
# 对数据进行分组 split_by_sensor(self,)
# 分组后的数据 传给RamseFactory 的 deal_raw_data_list, 返回平均值
# """
# # self.data_frame
# pass
class mycfg(object):
sensor_cfg = { 2: {1: {'FUNC': 'Lsky', 'SN': '85B5'}, 2: {'FUNC': 'Esky', 'SN': '50ED'}, 3: {'FUNC': 'Lwater', 'SN': '852F'}} }
cal_cfg={2:
{'Lsky': {'SN': '85B5', 'FUNC': 'Lsky', 'TYPE': 'SAM', 'samsn': '85B5', 'inifile': 'SAM_85B5.ini', 'calfile': 'Cal_SAM_85B5.dat', 'calaqfile': 'CalAQ_SAM_85B5.dat', 'backfile': 'Back_SAM_85B5.dat', 'cal': ['+NAN', '+NAN', '+NAN', '0.380824258865919', '0.480956813156357', '0.57671205380196', '0.643896236957154', '0.711054782209677', '0.758265752350778', '0.808854255795615', '0.869466331079482', '0.925321324749243', '1.00927399148091', '1.08699883630787', '1.18347377446848', '1.29079925777138', '1.39953731633192', '1.49536024576308', '1.57053962346542', '1.61051680455964', '1.60891142181803', '1.58014917632373', '1.54292073894688', '1.49782795775685', '1.46270054563491', '1.43754722159869', '1.42339247548624', '1.42249669690879', '1.43289834559721', '1.45081833970432', '1.48383024473758', '1.53350351710437', '1.59283171118034', '1.66682243068085', '1.75523084376357', '1.8490542829721', '1.94827772413977', '2.05297044933559', '2.15300125225733', '2.24489521732098', '2.32484518002751', '2.37710624055378', '2.41032149129472', '2.41401311078449', '2.39196623346607', '2.35386541795861', '2.30358502851024', '2.24350994611066', '2.18566570348128', '2.13007635400607', '2.08048312730197', '2.03943635277338', '1.9990019487276', '1.9542919602901', '1.90697476815729', '1.86132580586718', '1.81936966943287', '1.78948757961567', '1.77036444175303', '1.76067051308416', '1.76079151769139', '1.76865840458355', '1.78533977613825', '1.81054315659671', '1.84219534093402', '1.88262260694772', '1.92633682221336', '1.96919363361994', '2.00638558730966', '2.03543177536163', '2.05645335730185', '2.06889953924594', '2.07668786673546', '2.07746404954558', '2.07708946852551', '2.07239270419962', '2.06329693588947', '2.05235510505223', '2.03788342455449', '2.01750123705209', '1.99316265318269', '1.96344779927853', '1.92810068074762', '1.89032139564187', '1.84840056738145', '1.80188008685176', '1.7531429855323', '1.70184883503381', '1.64693756964496', '1.59639297188055', '1.55743828612696', '1.53081670223502', '1.509066853406', '1.48974595694359', '1.47286758281018', '1.45660325947575', '1.43667408186819', '1.40947906533906', '1.37746325817173', '1.3399910234164', '1.29987620320872', '1.26173586555032', '1.22580130202006', '1.19650560480134', '1.17258287879559', '1.15326969493003', '1.13448708666807', '1.11395465030131', '1.08753684763482', '1.06275254011917', '1.0408908566722', '1.02045255259373', '1.00192289281247', '0.987093337695555', '0.973433543184599', '0.961454156421677', '0.949336048850277', '0.937190359719721', '0.925018119816345', '0.911316167695048', '0.897751565127677', '0.885763756400802', '0.875253674622747', '0.866439225407856', '0.859594015285511', '0.856442344648432', '0.854520610650332', '0.853095084706978', '0.851996897997662', '0.849373999218705', '0.845008414644852', '0.837447706997702', '0.828042280687475', '0.816973957953628', '0.804392597259629', '0.790971383923797', '0.777350907812577', '0.764886212005326', '0.753124860834896', '0.74238339492221', '0.731621293455726', '0.720137856580817', '0.707681887074656', '0.692857487682284', '0.676149155140644', '0.657691286728854', '0.637091724889135', '0.615841105000382', '0.593277961352052', '0.571635565839856', '0.550558744253774', '0.529727893337181', '0.50958610090654', '0.490923786532866', '0.472942835508178', '0.455966760194577', '0.439389399108222', '0.42326262400571', '0.408064966451864', '0.392531100434587', '0.376760145430696', '0.361340837642809', '0.345797349215964', '0.330538900755072', '0.315423852713651', '0.300655326757946', '0.286125136929255', '0.27220666979537', '0.258963801456755', '0.246515726736969', '0.23471243489257', '0.223963260764627', '0.213811227531161', '0.204848303945938', '0.196342813423038', '0.188347519381911', '0.180847277367304', '0.173574321958823', '0.166782572540461', '0.159983659268987', '0.153496471427164', '0.146983276179518', '0.140664487031456', '0.134679615950644', '0.128426075217298', '0.122768803469292', '0.116973531179931', '0.111227699506044', '0.10561644888568', '0.0999165260100575', '0.09399466356358', '0.0884689961099718', '0.
'Esky': {'SN': '50ED', 'FUNC': 'Esky', 'TYPE': 'SAMIP', 'samsn': '859F', 'inifile': 'SAMIP_50ED_ALL.ini', 'calfile': 'Cal_SAM_859F.dat', 'calaqfile': 'CalAQ_SAM_859F.dat', 'backfile': 'Back_SAM_859F.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.549282530081406', '0.621825635483575', '0.705214779700439', '0.782494923890489', '0.848306874043027', '0.952625287085828', '1.06364941208026', '1.17099618224932', '1.27964867192574', '1.37878597375063', '1.42771820575638', '1.4380590385421', '1.41583530083466', '1.35751030831315', '1.28801896577964', '1.23773169248486', '1.19003370359023', '1.16911032524399', '1.16789019991587', '1.17908641221467', '1.20561721452238', '1.24993325867368', '1.3042108426727', '1.37841324495146', '1.46663415660191', '1.55813913029349', '1.66686169700722', '1.78274771118438', '1.89315285694338', '2.00609300108623', '2.10386062632617', '2.18077321675475', '2.23620955735442', '2.266135432154', '2.26878990322214', '2.25797663538301', '2.22685859649013', '2.17776313289299', '2.1222752364519', '2.06098344374156', '1.99948809108821', '1.94462577242816', '1.8989381397134', '1.8637403074385', '1.84137175128878', '1.82996842025894', '1.82735603324287', '1.82819560800875', '1.82831225824908', '1.82476779554239', '1.82142520789599', '1.82469614734563', '1.83514598035505', '1.85423698694933', '1.88102853388183', '1.91679111910883', '1.95713305118927', '2.0033013266641', '2.05191276620812', '2.10100127704333', '2.15116215495783', '2.19982933350689', '2.24341508467426', '2.28026480621138', '2.30634686430023', '2.31796219508283', '2.31589695847203', '2.29809543158409', '2.2668387918562', '2.22596956700897', '2.17822422289454', '2.1262484698939', '2.07154274835781', '2.01784816285075', '1.9635850159156', '1.90957838150673', '1.85662335754133', '1.80118393109592', '1.74752896056537', '1.69458207285898', '1.64238998731142', '1.59255947952261', '1.55042463825823', '1.52145095482736', '1.50182839545807', '1.48602912306116', '1.47501182897849', '1.46801797625318', '1.46252443118698', '1.4571840542778', '1.44881752975571', '1.433373570625', '1.4106211402034', '1.38310053980989', '1.35343439202405', '1.32469024445085', '1.29921323938482', '1.2757042981125', '1.25356245928469', '1.23230080447944', '1.20776661327865', '1.18172190161938', '1.16211138784545', '1.14836490545677', '1.13698033747357', '1.12673020620722', '1.115430409999', '1.10428562795353', '1.0934141739792', '1.0851095103506', '1.08102444265095', '1.08007408967758', '1.08238869164072', '1.08781099449618', '1.09202496629142', '1.09279743926351', '1.08928198225434', '1.08099296127192', '1.06779395728469', '1.05125732218958', '1.03307124483462', '1.01642561672595', '1.0017478853335', '0.98877464388953', '0.978591382441999', '0.970432000434175', '0.962460675619692', '0.953651636148435', '0.943103023421902', '0.930554197290447', '0.915976069829803', '0.89827602173614', '0.878650755188226', '0.859108524352699', '0.840122962860222', '0.820853477964574', '0.803547895709764', '0.786651104537257', '0.769194844035412', '0.751217544779413', '0.731862968408631', '0.710478767970412', '0.687207420135085', '0.662469528888512', '0.636358233772055', '0.609121332586544', '0.580838486227566', '0.552767035926316', '0.525876935395925', '0.499896413074609', '0.475284681533185', '0.452387885405863', '0.431848904268036', '0.413013739466993', '0.395710805209202', '0.380181587532903', '0.365591896979342', '0.352105459639395', '0.339276260510366', '0.32616389487977', '0.313880254968568', '0.301213081346406', '0.28867892621412', '0.276332017077307', '0.263867205519659', '0.251559483539307', '0.239917175566115', '0.228872841726392', '0.218348838385983', '0.208663588155861', '0.199488791575245', '0.191252859631973', '0.183364916996847', '0.175877803627425', '0.169219899131997', '0.162866423884395', '0.156727192611269', '0.151124000714184', '0.145138407523578', '0.13971586046093', '0.134506608902369', '0.129059486722317', '0.124203168251957', '0.119075347065844', '0.113513221481262', '0.107843336832916', '0.101790305051534', '0.0961960826886135', '0.0914035900672732', '0.0868727278
'Lwater': {'SN': '852F', 'FUNC': 'Lwater', 'TYPE': 'SAM', 'samsn': '852F', 'inifile': 'SAM_852F.ini', 'calfile': 'Cal_SAM_852F.dat', 'calaqfile': 'CalAQ_SAM_852F.dat', 'backfile': 'Back_SAM_852F.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.099081925071204', '0.107353085872454', '0.113070264290883', '0.114376499819276', '0.116544285861757', '0.1185169696214', '0.121561138979849', '0.126964155564462', '0.134364254054539', '0.144053858633949', '0.154882735476408', '0.16719673162462', '0.181437615712041', '0.194237970806716', '0.20386154720656', '0.211556336359081', '0.211417859085921', '0.208790218500257', '0.20437467341685', '0.198246352046376', '0.192966396099738', '0.18897229193584', '0.186243043953596', '0.18578727224224', '0.187114583931684', '0.189090911319999', '0.193600418301244', '0.200054490546523', '0.208072057884887', '0.218285958582262', '0.230634876630779', '0.243459214546046', '0.257752719558026', '0.272580246630834', '0.286712281491418', '0.300342726342385', '0.312249154496702', '0.321331680226083', '0.327112591435919', '0.329469692698771', '0.327542874308678', '0.322985767437387', '0.316224456423823', '0.308782990589082', '0.301183418606427', '0.293575702556702', '0.286696408065096', '0.280798842600295', '0.275808444038661', '0.271299340181449', '0.266225534078626', '0.260785177597799', '0.255342424416527', '0.250947812402455', '0.24777514930692', '0.246247860756574', '0.246092032695547', '0.247219177075727', '0.249675195006791', '0.253195744885965', '0.257788026175471', '0.26369589320837', '0.270555680751329', '0.277823002163503', '0.284937579021833', '0.291097253127256', '0.296043211270752', '0.299540235735164', '0.301795150475552', '0.303069111244916', '0.30355995799167', '0.303606664702465', '0.303007474849756', '0.302001653949665', '0.300361927400822', '0.297986890885497', '0.295325565249305', '0.291656567474701', '0.287335862742648', '0.282306131698578', '0.276702242286357', '0.270280607979823', '0.263050805729498', '0.255009286552014', '0.247098798503932', '0.2398191835424', '0.23466817932016', '0.230585310303585', '0.227279061892254', '0.224693206022759', '0.222993136629962', '0.221791418806722', '0.220695274517678', '0.219442816624831', '0.217000405185694', '0.213283732282521', '0.208384750595562', '0.202985389753009', '0.197924660371165', '0.193409646692029', '0.189628652821804', '0.186318519164064', '0.183315563032657', '0.180098687261504', '0.176492614557115', '0.172650422408531', '0.168979191040057', '0.166106531649937', '0.163622827054655', '0.161570328667133', '0.159693607722301', '0.157690305409947', '0.15544650006387', '0.153185383511044', '0.150954772341381', '0.148960802743881', '0.147350785081686', '0.146182367433256', '0.145312879880878', '0.144781245193999', '0.14473607505965', '0.144976432177203', '0.145464936657928', '0.145889790468872', '0.146174517595681', '0.14615421098877', '0.145743119998859', '0.144922809795091', '0.143805231938307', '0.142492952453543', '0.141053445832183', '0.139720571628269', '0.138186469198598', '0.136919534961634', '0.135732624874463', '0.134597268963386', '0.133432724955799', '0.13211501546202', '0.130478475600008', '0.128290801143951', '0.125726707508103', '0.122634784100445', '0.119472073398083', '0.116199128230447', '0.112813911251756', '0.109547291781198', '0.106268392530964', '0.10313443150471', '0.100113578226984', '0.097073834113113', '0.0941199411272616', '0.0911853891891621', '0.0882319764053268', '0.085267274530049', '0.0822333903307463', '0.0792187073154596', '0.0760907077820793', '0.0728848234132589', '0.0697048920692252', '0.0665600438164166', '0.0635411651500916', '0.0606319242880778', '0.0578670530064308', '0.0553155735461356', '0.0529193006810867', '0.050722718025932', '0.0486788470977319', '0.0467747209472673', '0.0450423813898501', '0.0434307741189043', '0.041915712424757', '0.0405250313895705', '0.0390895391040532', '0.0377897158697839', '0.0365016922380464', '0.0351788001916396', '0.0338645937424847', '0.0325302009051183', '0.0312848146149282', '0.0300375958148976', '0.0288302935207691', '0.027652203865544', '0.0264621566
## 封装该类的 处理buf hex2int函数
@dataclass
class AWRAMS(object):
deviceid:int = None
configSensor:List[str] =None # 序列号
configFunc:List[str] =None # 功能 Lsky Esky Lwater
calibrationCfg:dict =None
data : AWRAMSData =None
Lsky:List[float] =None # 无需记录原始波长,记录插值后的波长
Esky:List[float] =None
Lwater:List[float] =None
beginWavelength: float =None
endWavelength: float =None
wvInterval: float =None
Lw:np.ndarray =None
Rs:np.ndarray =None
def __post_init__(self):
assert self.deviceid != None
self.data = AWRAMSData(deviceid=self.deviceid )
pass
def set_cfg_calibration(self,calcfg:dict):
assert self.deviceid != None
# assert self.deviceid in calcfg.keys(), f">>>> No calibrations data for the current id {self.deviceid}"
self.calibrationCfg = calcfg
pass
def config_awrams(self, cfg:dict):
assert self.deviceid in cfg.keys(), f'>>>> Cannot get the configuration of device id {self.deviceid}'
self.configSensor = [None,None,None]
self.configFunc = [None,None,None]
# Lsky Esky Lwater
# {1: {'FUNC': 'Lsky', 'SN': '85B5'}, 2: {'FUNC': 'Esky', 'SN': '50ED'}, 3: {'FUNC': 'Lwater', 'SN': '852F'}}
for k,v in cfg.items() :
if v["FUNC"] == "Lsky":
self.configSensor[0] = v["SN"]
self.configFunc[0] = v["FUNC"]
if v["FUNC"] == "Esky":
self.configSensor[1] = v["SN"]
self.configFunc[1] = v["FUNC"]
if v["FUNC"] == "Lwater":
self.configSensor[2] = v["SN"]
self.configFunc[2] = v["FUNC"]
# 将传感器配置传给 AWRAMSDATA
self.data = AWRAMSData( deviceid=self.deviceid, configSensor=self.configSensor, configFunc=self.configFunc )
# 将标定配置传给 AWRAMSData 建立工厂
self.data.build_datafactory_by_configSensor( self.calibrationCfg)
pass
def callback(self, wavelength:list, spectrum:list):
''' 处理返回的数据, 生成Lsky Esky Lwater Lw Rs '''
print( " call back for Lw Rs .................. " )
# for w in wavelength:
# print(w)
print("=================================")
for s in spectrum:
print(s)
pass
class AwramsHandle(object):
def __init__(self, deviceid=2, cfg=None, calcfg=None):
self.sensor_cfg = cfg
self.calcfg = calcfg
self.device_id = deviceid
self.aw = AWRAMS( deviceid=self.device_id)
self.aw.set_cfg_calibration(self.calcfg)
self.aw.config_awrams(self.sensor_cfg)
pass
def read_one_folder_awrams_online(self, pth:Path):
''' self.data 传数据 info_frame, data_frame'''
log.info(f" 读一个文件夹进行处理 {pth}" ,__name__,"read_one_folder_awrams_online")
bytes_list = []
bin_files = pth.glob('*.bin')
for bf in bin_files:
if bf.name != "info.bin":
bytes_list.append( self.read_bin(bf) )
# print(f"++++++++++ {bytes_list}" )
self.aw.data.set_data_frame( bytes_list, self.aw.callback )
pass
def read_bin(self,fpath: Path):
assert fpath.exists(), f">>>> not find {fpath} "
ret = b''
with open(fpath, 'rb') as file:
ret = file.read()
return ret
pass
pass
class Acfg:
cfg= {1: {'FUNC': 'Lsky', 'SN': '85C2'}, 2: {'FUNC': 'Esky', 'SN': '50ED'}, 3: {'FUNC': 'Lwater', 'SN': '852F'}}
calcfg= {'Lsky': {'SN': '85C2', 'FUNC': 'Lsky', 'TYPE': 'SAM', 'samsn': '85C2', 'inifile': 'SAM_85C2.ini', 'calfile': 'Cal_SAM_85C2.dat', 'calaqfile': 'CalAQ_SAM_85C2.dat', 'backfile': 'Back_SAM_85C2.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.63607834406219', '0.718127096538326', '0.812216798598817', '0.914442457893824', '1.03343454996493', '1.15933885373154', '1.29479643420084', '1.43677001665361', '1.56848190839848', '1.67447970580786', '1.73889146263122', '1.73244260903254', '1.69192414835577', '1.61622082709111', '1.5270353751059', '1.46047364317447', '1.41296265347303', '1.39311700938614', '1.39852760194912', '1.42554260762195', '1.4700968507055', '1.53635620441153', '1.62082921439482', '1.7237742274692', '1.84755749123585', '1.98432162640748', '2.12689147788928', '2.27366206436985', '2.41515311346652', '2.54267625633242', '2.65248757975216', '2.73468816910085', '2.77942967914337', '2.79565522877852', '2.77806955157777', '2.73891358506136', '2.69063680629234', '2.6282750012231', '2.56338981635672', '2.49687123158122', '2.4309933291301', '2.36993023507549', '2.32161558853422', '2.28314087424895', '2.25846162084215', '2.24994522727437', '2.25549954861938', '2.27668712518828', '2.30493256690767', '2.33255656715114', '2.35720768052834', '2.37757260164886', '2.40002374613635', '2.42905705371268', '2.4673307146952', '2.51294806887351', '2.56575613007937', '2.62193109349514', '2.67842958533042', '2.73753357518048', '2.7913329207665', '2.8423865946084', '2.89027340109411', '2.93157202353872', '2.96274906831744', '2.98346548286676', '2.98798866816702', '2.97297872291037', '2.93559195933884', '2.87662286787444', '2.80380712732453', '2.72275302648293', '2.6373282860483', '2.55448424591999', '2.47778601018081', '2.40377038673745', '2.33484934711808', '2.2698793292122', '2.20651375086021', '2.14704740380438', '2.08988763493926', '2.0346458333411', '1.98224825426305', '1.93452491480363', '1.89146397238956', '1.8653548650058', '1.84879059497611', '1.8371693859594', '1.83197484046632', '1.83105981302589', '1.83169544364263', '1.83369029033973', '1.82985806236537', '1.81684973319988', '1.7961872241934', '1.76710061502081', '1.73459539138238', '1.70421983997876', '1.67561137148482', '1.65483955955664', '1.64005456402998', '1.63103006074007', '1.62646109446179', '1.62483351776729', '1.61794627041935', '1.60638099649103', '1.59160518167625', '1.57856502215575', '1.56723770329055', '1.55884357172436', '1.55081356970191', '1.5440909800073', '1.53473504989623', '1.52335047710565', '1.51140772671503', '1.49628095199023', '1.48082183121466', '1.4668009209167', '1.45300293604089', '1.43913779397284', '1.42471804569399', '1.41116472805909', '1.39601546893463', '1.3795217760198', '1.36066889187826', '1.3395095955925', '1.31771535033317', '1.29387042583309', '1.26955248066416', '1.24679628762607', '1.22528340309588', '1.20486570624273', '1.18549206002717', '1.16756178865017', '1.15111957559202', '1.13469169498467', '1.11621030173639', '1.09569135455521', '1.07275908862679', '1.04573742076401', '1.01572627731635', '0.98381634710957', '0.950352559222019', '0.915760692099546', '0.881456713194727', '0.848044938315892', '0.816038892625263', '0.785024915273114', '0.754850603543375', '0.725690734641156', '0.697449171016547', '0.669846688269734', '0.643097402076866', '0.615807664216611', '0.589686777991522', '0.563134754809732', '0.537416951715189', '0.512092492411016', '0.487999533569422', '0.464888888064952', '0.442938789447448', '0.422687485052752', '0.403811887358409', '0.386602162003576', '0.370223420179536', '0.355850417036878', '0.342554004485098', '0.330263308885894', '0.318892349787717', '0.308390808825048', '0.29923285616278', '0.290049870831026', '0.280987628676386', '0.272166680353347', '0.263184326446838', '0.254328565772045', '0.245533707259442', '0.236284846332185', '0.227364007848682', '0.218575558150069', '0.209919539318749', '0.201723665364338', '0.193439417628863', '0.185095630044576', '0.176908759167827', '0.168492281717065', '0.15971620196905', '0.151519711134016', '0.143896290701505', '0.137256829327417', '0.13133376173
def my_init():
''' 写个handle 类处理'''
cfg = mycfg.cfg
calcfg = mycfg.cal_cfg
device_id = 2
aw = AWRAMS( deviceid=device_id)
aw.set_cfg_calibration(calcfg)
aw.config_awrams(cfg)
if __name__ == '__main__':
# my_init()
ah =AwramsHandle( 2, Acfg.cfg, Acfg.calcfg)
fpath = Path.cwd()
# t= ("data", "2","2002","8", "17","51", "info.bin")
# t= ("data" )
fpath = fpath.joinpath('data\2\2022\8\17\51\0.bin')
# fpath = fpath.joinpath( *t )
# ah.read_one_folder_awrams_online(fpath)
if fpath.exists():
print(" 00000000000000000000000")
else:
print("1111111111111111")
# ah.read_one_folder_awrams_online(fpath)
# data\2\2022\8\17\51\0.bin