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.
 
 

85 lines
3.2 KiB

@startuml
== Button pressed ==
participant unknown as uk
participant main
participant interrupt as it
participant app_entry
participant app_ble
participant p2p_client_app
participant stm32_seq
it -> app_entry : HAL_GPIO_EXTI_Callback()
app_entry -> app_ble : APP_BLE_Key_Button1_Action()
app_ble -> p2p_client_app : P2PC_APP_SW1_Button_Action()
p2p_client_app -> stm32_seq : UTIL_SEQ_SetTask(CFG_TASK_SW1_BUTTON_PUSHED_ID)
...waiting for task gets executed....
stm32_seq -> p2p_client_app : Button_Trigger_Received()
p2p_client_app -> p2p_client_app : toggleButtonStatus()
p2p_client_app -> p2p_client_app : Write_Char(P2P_WRITE_CHAR_UUID, 0, buttonStatus)
activate p2p_client_app
p2p_client_app -> "?b" : aci_gatt_write_without_resp()
deactivate p2p_client_app
== Event received ==
"?a" -> p2p_client_app : Event_Handler()
activate p2p_client_app
opt event == HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE
opt event->core_event == ACI_GATT_PROC_COMPLETE_VSEVT_CODE
opt aP2PClientContext[index].connHandle != pr->Connection_Handle
p2p_client_app -> stm32_seq : UTIL_SEQ_SetTask(CFG_TASK_SEARCH_SERVICE_ID)
end
end
end
deactivate p2p_client_app
...waiting for task gets executed....
stm32_seq -> p2p_client_app : Update_Service()
......
uk -> app_entry : UTIL_SEQ_Idle()
uk -> app_entry : shci_notify_asynch_evt()
activate app_entry
app_entry -> stm32_seq : UTIL_SEQ_SetTask(CFG_TASK_SYSTEM_HCI_ASYNCH_EVT_ID)
deactivate app_entry
uk -> app_entry : shci_cmd_resp_release()
activate app_entry
app_entry -> stm32_seq : UTIL_SEQ_SetEvt(CFG_IDLEEVT_SYSTEM_HCI_CMD_EVT_RSP_ID)
deactivate app_entry
uk -> app_entry : shci_cmd_resp_wait()
activate app_entry
app_entry -> stm32_seq : UTIL_SEQ_WaitEvt(CFG_IDLEEVT_SYSTEM_HCI_CMD_EVT_RSP_ID)
deactivate app_entry
== INIT ==
main -> stm32_seq : UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)
activate stm32_seq
stm32_seq -> shci_tl : shci_user_evt_proc()
activate shci_tl
shci_tl -> app_entry : APPE_SysUserEvtRx()
activate app_entry
app_entry -> app_debug : APPD_EnableCPU2()
app_entry -> app_ble : APP_BLE_Init()
activate app_ble
app_ble -> app_ble : Ble_Tl_Init()
app_ble -> stm32_seq : UTIL_SEQ_RegTask(CFG_TASK_HCI_ASYNCH_EVT_ID, UTIL_SEQ_RFU, hci_user_evt_proc)
app_ble -> shci : SHCI_C2_BLE_Init()
app_ble -> app_ble : Ble_Hci_Gap_Gatt_Init()
app_ble -> svc_ctl : SVCCTL_Init()
app_ble -> stm32_seq : UTIL_SEQ_RegTask(CFG_TASK_START_SCAN_ID, UTIL_SEQ_RFU, Scan_Request)
app_ble -> stm32_seq : UTIL_SEQ_RegTask(CFG_TASK_CONN_DEV_1_ID, UTIL_SEQ_RFU, Connect_Request)
app_ble -> uk : aci_hal_set_radio_activity_mask()
app_ble -> app_p2p_client : P2PC_APP_Init()
activate app_p2p_client
app_p2p_client -> svc_ctl : SVCCTL_RegisterCltHandler(Event_Handler)
deactivate app_p2p_client
app_ble -> hw_timeserver : HW_TS_Create(CFG_TIM_PROC_ID_ISR, &(BleApplicationContext.SwitchOffGPIO_timer_Id), hw_ts_SingleShot, Switch_OFF_GPIO)
deactivate app_ble
deactivate app_entry
deactivate shci_tl
stm32_seq -> stm32_seq : UTIL_SEQ_PreIdle()
stm32_seq -> stm32_seq : UTIL_SEQ_Idle()
stm32_seq -> stm32_seq : UTIL_SEQ_PostIdle()
deactivate stm32_seq
@enduml