CCarSrvSignalWirelessChargeEnable.cpp

registerFunc

updateModuleState

m_mCarSrvFunc

CCarSrvSignalBroadcastBase

m_mMapAvmFunc

CarSrvSignalManager::setSignalStrategy

CarSrvSignalManager::setCarModel

CarService::carSrvMainProcessThread

CCarSrvMainProcess::CMQRunnableService

CCarSrvSignalBase

setACRxSIgnal

getACRxSignal

setACTxSignal

getACRxSignal

receiveSignal

只广播can信号

CMessageQueue::CMessageQueue

(CMessageHandler *)CCarSrvMainProcCtrlImpl

m_pHandler

m_iMsgQueue

m_pEventData

text

CMQRunableService

pushMessage

start

init

initialize

m_pMsgQueue

setMsgQueue

update

Event Data实际上就是message

CCarSrvMainProcess::initialize

CCarSrvMainProcCtrlImpl::getInstance()

CCarSrvMainProcCtrlImpl::CreateModules()

CCarSrvMainProcStubImpl::getInstance()

CCarSrvMainProcCtrlImpl::ModuleInit()

CCarSrvMainProcStubImpl::initialize()

CCarSrvMainProcStubImpl::registerFunc(E_CAR_SRV_MAIN_PROC_RECEIVE_CAN_SIGNAL)

CMessageHandler

handle

_handle

CCarServiceBase

registerFunc

updateModuleState

m_mMapAvmFunc

CModuleCtrl

_handle

map<W_U32, CModuleBase*>m_mModuleMap

initialize

CCarServiceStubImpl

CRunableBase

start

quit

join

run

CCarSrvMainProcStubImpl

receiveCanSignal

receiveACSignal

receiveHardKeySignal

CCarSrvMainProcStubImpl

CModuleBase

initialize

unInitialize

beforeHandleMessageQueue

afterHandleMessageQueue

onHandle

CCarServiceStubImpl

CCarSrvMainProcess

CCarSrvMainProcess

CCarSrvSignalBroadcatBase??

CCarServiceAdapter

开始

CarService::CarService()

CCarSrvMainProcCtrlImpl

CreateModules

ModuleInit

CarService::initCarService()

CCarSrvSignalManager::getCarSrvSignalMangerInstatnce()

CarService::addCarInfoSignal

CCarSrvBase

registerFunc

updateModuleState

map<W_U32, CFunctor*>m_mCarSrvFunc

onHandle

CarSrvSignalManager::add

m_tSignalTable

CCarSrvSignalActualPowerInfo.cpp

...

CCarSrvSignalWirelessChargeEnable.cpp

CarSrvSignalManager::setSignalStrategy

CMessageQueue

pushMessage

handleMessageQueue

isEmpty

_handleMessageQueue

CarSrvSignalManager::setCarModel

CarService::carSrvMainProcessThread

CCarSrvMainProcess::CMQRunnableService

CMessageQueue::CMessageQueue

CRunnaleBase

是基本的触发点,其中的run函数

不断的等待事件发生,然后更新

messagequeue, 也就是执行update

而update会调用MessageHandler的

handle函数进行消息处理

(CMessageHandler *)CCarSrvMainProcCtrlImpl

CCarSrvSignalBroadcast

m_pHandler

下面讨论线程的创建和消息的处理

主线程:CarService

carSrvMainProcessThread

m_iMsgQueue

carBroadCastProcessThread

m_pEventData

carSrvMainProcess的构造函数就会

创建一个CMessageQueue, 同时确定

MessageQueue的消息处理函数

text

Event Data实际上就是message

CCarSrvMainProcess::initialize

在创建了SrvMainProcess之后,调用initialize(),而

initialize是继续配置MessageQueue的消息处理函数

CCarSrvMainProcCtrlImpl::getInstance()

调用start函数

CCarSrvMainProcCtrlImpl::CreateModules()

调用C的 thread函数

CCarSrvMainProcStubImpl::getInstance()

调用CRunableBase::run()函数

CCarSrvMainProcCtrlImpl::ModuleInit()

调用CMQRunnableService::init

调用CMQRunnableService::initialize

这个函数是纯虚函数,所以需要查询

其子函数的定义,也就是

carSrvMainProcess::initialize()又来一次

CCarSrvMainProcStubImpl::initialize()

m_pevent->wait

CCarSrvMainProcStubImpl::registerFunc(E_CAR_SRV_MAIN_PROC_RECEIVE_CAN_SIGNAL)

调用CMQRunnableService::update

CCarServiceBase

registerFunc

updateModuleState

m_mMapAvmFunc

m_pMsgQueue->handleMessageQueue()

m_pevent::set()

carSrvSignalBroadCast的构造函数就会

创建一个CMessageQueue, 同时确定

MessageQueue的消息处理函数

CCarServiceStubImpl

CCarSrvSignalBroadcastModuleCtrlImpl

CRunableBase

start

quit

join

run

CCarSrvSIgnalAirAnion

CCarSrvSignalManager

add

getSignalObj

receiveSignal

transmitSignal

CCarSrvMainProcStubImpl

CCarServiceStubImpl

CCarSrvMainProcess

CCarSrvSignalBroadcast

CCarSrvMainProcess

pushMessage

pushMessage

CCarSrvSignalBroadcatBase??

CCarServiceAdapter

CCarSrvMainProcCtrlImpl

CreateModules

ModuleInit

CCarSrvBase

registerFunc

updateModuleState

map<W_U32, CFunctor*>m_mCarSrvFunc

onHandle

CMessageQueue

pushMessage

handleMessageQueue

isEmpty

_handleMessageQueue

CRunnaleBase

是基本的触发点,其中的run函数

不断的等待事件发生,然后更新

messagequeue, 也就是执行update

而update会调用MessageHandler的

handle函数进行消息处理

CCarSrvSignalBroadcast

下面讨论线程的创建和消息的处理

主线程:CarService

carSrvMainProcessThread

carBroadCastProcessThread

carSrvMainProcess的构造函数就会

创建一个CMessageQueue, 同时确定

MessageQueue的消息处理函数

在创建了SrvMainProcess之后,调用initialize(),而

initialize是继续配置MessageQueue的消息处理函数

调用start函数

调用C的 thread函数

调用CRunableBase::run()函数

调用CMQRunnableService::init

调用CMQRunnableService::initialize

这个函数是纯虚函数,所以需要查询

其子函数的定义,也就是

carSrvMainProcess::initialize()又来一次

m_pevent->wait

调用CMQRunnableService::update

m_pMsgQueue->handleMessageQueue()

m_pevent::set()

carSrvSignalBroadCast的构造函数就会

创建一个CMessageQueue, 同时确定

MessageQueue的消息处理函数

CCarSrvSignalBroadcastModuleCtrlImpl

CCarSrvSignalAirAnion

CCarSrvSignalManager

add

getSignalObj

receiveSignal

transmitSignal

CCarSrvSignalBroadcast

pushMessage

pushMessage

CCarSrvSIgnalBroadcastStubImpl

receiveCanSignal

CarService

CarService

2019-12-12 14:58:13 0 48
这里是评论

相关推荐