/* * Copyright (c) 2023 Fancy Code. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "TestMissionState.h" #include "IAppManager.h" #include "ILog.h" #include "IStorageManager.h" #include "MissionStateMachine.h" TestMissionState::TestMissionState() : MissionState("TestMissionState") { mEventHandle[InternalStateEvent::ANY_STATE_SD_STATUS_PERORIED] = std::bind(&TestMissionState::SdCardEventReportSendToApp, this, _1); } void TestMissionState::GoInState() { MissionState::GoInState(); LogInfo(" ========== TestMissionState::GoInState.\n"); AppParam mAppParam(APP_MANAGER_DEVICE_IP, APP_MANAGER_HTTP_SERVER_PORT, APP_MANAGER_TCP_SERVER_PORT); // TODO: IAppManager::GetInstance()->Init(mAppParam); std::shared_ptr monitor = std::dynamic_pointer_cast(MissionState::shared_from_this()); IAppManager::GetInstance()->SetAppMonitor(monitor); } void TestMissionState::GoOutState() { MissionState::GoOutState(); LogInfo(" ========== TestMissionState::GoOutState.\n"); } bool TestMissionState::SdCardEventReportSendToApp(VStateMachineData *msg) { std::shared_ptr message = std::dynamic_pointer_cast(msg->GetMessageObj()); std::shared_ptr> data = std::dynamic_pointer_cast>(message->mMissionData); LogInfo(" SdCardEventHandle event:%s.\n", IStorageManager::GetInstance()->PrintStringStorageEvent(data->mData)); SdCardStatus status = SdCardStatusConvert(data->mData); IAppManager::GetInstance()->SetSdCardStatus(status); return EXECUTED; } SdCardStatus TestMissionState::SdCardStatusConvert(const StorageEvent &event) { switch (event) { case StorageEvent::SD_CARD_INSERT: return SdCardStatus::NORMAL; case StorageEvent::SD_CARD_REMOVE: return SdCardStatus::NOT_INSERTED; case StorageEvent::SD_ABNORMAL: return SdCardStatus::NOT_INSERTED; default: LogError("SdCardStatusConvert failed.\n"); return SdCardStatus::END; } }