通用软件类图
2024-07-14 16:37:57 0 举报
无
作者其他创作
大纲/内容
可维护性问题:1.注释
CLineSetting(组合图线窗口基类)
CCellData(计算表格窗口基类)
SensorDataParser
+ attribute1:type = defaultValue+ attribute2:type- attribute3:type
+ operation1(params):returnType- operation2(params)- operation3()
SensorRTData
CSensorData
MainWindow(主窗口类)
+registernotification()注册采集器监听+nativeEvent()监听采集器热插拔-onBleDevChanged()监听蓝牙状态+toInit()+SensorViewCreate()创建传感器数显UI组件+onStartCollect()开始采集+onStopCollect()停止采集
CBleSocket
-QTcpSocket-CMutexQueue<QString> 队列
PluginDBMgr(传感器数据库管理)
CMulDataSensor(多值类传感器)
CAccSensor(加速度传感器)
CLightGateSensor
SensorProducer
CSensorInfo
CSensor(传感器基类)
编码规范问题:1.注释
?观察者模式为什么要用队列?
CSubject(通知者抽象类)
- bservers:list<CObserver*>- lockwr:QReadWriteLock
+ attch(CObserver* ptr)+ detach(CObserver* ptr)+detachAll()+notify()
MainWindowPrivate
+SensorViewCreate创建传感器CSensorViewWnd对象+ StartCollect+ StopCollect+toInit()+onStartCollect()开始采集+onStopCollect()停止采集
+CCenterXpress 采集器驱动类- CSensor[] 传感器对象数组-CSensorProducer 传感器对象工厂类-CSensorInfoParser 传感器设备解析类-CSensorDataParser 传感器数据解析类
-DoUSB()-SyncStart()-StartThread()-onBLESensorPlugOut()监听蓝牙设备连接-StartChDataThread()启动数据解析线程-RunSensorInfoUnPacker()解析传感器设备数据包-RunSensorDataUnPacker()解析传感器数据包-RunBLESensorDataUnPacker() 解析蓝牙数据包
LwDevMgrInterface(设备管理)
-MountNewCollectDevs() 采集器设备插拔-MountDIS8CollectorDev() 创建CDataCollector类-MountBluetoothLEDev() 蓝牙设备插拔-SyncStart()-sigSensorChanged 调用主窗口创建SensorView
SensorInfoParser
CSensorView(传感器窗口基类)
+CMutexQueue<SensorRTData> m_sensorDataQueue 传感器数据队列
+Update()更新,放入队列
可读性问题:1.注释
CCommonSensor(单值类传感器)
可扩展性问题:1.注释
CSensorViewWnd(传感器窗口类)
+UpdateDisplay()取队列+OnDraw(data) 显示数据
CCenterXpress(采集器驱动)
CSmartCarSensor(智能小车传感器)
CMultVolSensor
CSoundwaveSensor
从模块、功能、实现、规范各方面做了梳理 和识别,架构上没有太大问题,规范上有很大问题
Observer(观察者抽象类)
+ update()
CBLEOper(蓝牙对象)
-BleDevOnline() 蓝牙连接-BleDevDisLink()蓝牙断开-onDataReceived()接收传感器数据-onDataReceivedExt()上数
问题:1.实验报告不能单独上传,依赖安装 收集系统端2.PC端和手机Pad端上数格式不一致3.模块化和组件化,相同功能通用和专用各一份代码。
CBLEAgentController
-CMutexQueue<QString> 队列
slotdispatchRun 数据分发
CForceAngle(力倾角传感器)
驱动监听设备的插入和拔出,当采集器或蓝牙连接时创建对应的DataCollector,读取数据解析出对应的传感器,创建CSensor。
toInit(){ PluginDBMgr::GetInstance();CBLEAgentController::GetInstanceObj();CBLEAgentController::GetInstanceObj()->connectBleService();new QLocalSocket(this);LwReportInstance::instance();LwDevMgrInterface::GetInstance();LwDevMgrInterface::MountNewCollectDevs():LwDevMgrInterface::SyncStart();}
抽象层次不够:1.高层依赖底层的抽象2.传感器核心模型抽象层次不够,常感器数据:本身数据、解析协议、解析行为。直接是结构体,没有抽象。
0 条评论
下一页