This commit is contained in:
Fancy code 2024-04-29 15:42:54 +08:00
parent 9802e42e67
commit 70749f4612
18 changed files with 43 additions and 41 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
.vscode
Doxygen
cmake-shell/
external/gtest/googletest-release-1.11.0/
external/libconfig/libconfig-1.7.3/

View File

@ -22,7 +22,7 @@ using std::placeholders::_1;
using DataProcessingFunc = std::function<bool(VStateMachineData *)>;
enum class InternalStateEvent
{
TEST = static_cast<int>(MissionEvent::END),
STORAGE_HANDLE_STATE_INIT = static_cast<int>(MissionEvent::END),
MEDIA_REPORT_EVENT,
END
};

View File

@ -68,7 +68,7 @@ std::shared_ptr<State> MissionManagerMakePtr::CreateMissionState(const IpcMissio
std::shared_ptr<State> MissionManagerMakePtr::CreateStorageHandleState(void)
{
std::shared_ptr<State> state = std::make_shared<StorageHandleState>();
std::dynamic_pointer_cast<StorageHandleState>(state)->Init();
// std::dynamic_pointer_cast<StorageHandleState>(state)->Init();
return state;
}
std::shared_ptr<State> MissionManagerMakePtr::CreateSdCardHandleState(void)

View File

@ -13,10 +13,11 @@
* limitations under the License.
*/
#include "MissionStateMachine.h"
#include "DataProcessing.h"
#include "ILog.h"
#include "McuAskBase.h"
#include "MissionManagerMakePtr.h"
#include "TopState.h"
// #include "TopState.h"
std::shared_ptr<MissionStateMachine> &MissionStateMachine::GetInstance(std::shared_ptr<MissionStateMachine> *impl)
{
static auto instance = std::make_shared<MissionStateMachine>();
@ -98,4 +99,7 @@ void MissionStateMachine::RunStateMachine(const IpcMission &mission)
mStateTree[SystemState::STORAGE_HANDLE_STATE].get());
mStateMachine->SetCurrentState(mStateTree[SystemState::TOP_STATE].get());
mStateMachine->StartStateMachine();
std::shared_ptr<VMissionData> message =
std::make_shared<VMissionData>(static_cast<MissionEvent>(InternalStateEvent::STORAGE_HANDLE_STATE_INIT));
SendStateMessage(message);
}

View File

@ -43,7 +43,7 @@ bool SdCardHandleState::MediaReportHandle(VStateMachineData *msg)
LogError("nullptr pointer.\n");
return NOT_EXECUTED;
}
LogInfo("file = %s, path = %s.\n", data->mData.mFileName.c_str(), data->mData.mFilePath.c_str());
LogInfo("file = %s.\n", data->mData.mFileName.c_str());
SaveFileInfo saveFileInfo(data->mData.mFileName);
IFilesManager::GetInstance()->SaveFile(saveFileInfo);
return EXECUTED;

View File

@ -18,6 +18,8 @@
#include "MissionStateMachine.h"
StorageHandleState::StorageHandleState() : State("StorageHandleState")
{
mEventHandle[InternalStateEvent::STORAGE_HANDLE_STATE_INIT] =
std::bind(&StorageHandleState::StorageStartInitHandle, this, _1);
}
void StorageHandleState::GoInState()
{
@ -44,3 +46,8 @@ void StorageHandleState::ReportEvent(const StorageEvent &event)
{
LogInfo("StorageHandleState::ReportEvent.\n");
}
bool StorageHandleState::StorageStartInitHandle(VStateMachineData *msg)
{
Init();
return EXECUTED;
}

View File

@ -34,5 +34,6 @@ public:
private: // About VStorageMoniter
void ReportEvent(const StorageEvent &event) override;
bool StorageStartInitHandle(VStateMachineData *msg);
};
#endif

View File

@ -18,6 +18,7 @@
#include "MissionStateMachine.h"
TopState::TopState() : State("TopState")
{
mEventHandle[InternalStateEvent::STORAGE_HANDLE_STATE_INIT] = std::bind(&TopState::StorageStartInitHandle, this, _1);
}
void TopState::GoInState()
{
@ -36,8 +37,15 @@ bool TopState::ExecuteStateMsg(VStateMachineData *msg)
}
StatusCode TopState::ReportEvent(const MediaReportEvent &event)
{
LogInfo("==================================================================ReportEvent:\n");
std::shared_ptr<VMissionData> message = std::make_shared<VMissionDataV2<MediaReportEvent>>(
static_cast<MissionEvent>(InternalStateEvent::MEDIA_REPORT_EVENT), event);
MissionStateMachine::GetInstance()->SendStateMessage(message);
return CreateStatusCode(STATUS_CODE_OK);
}
bool TopState::StorageStartInitHandle(VStateMachineData *msg)
{
MissionStateMachine::GetInstance()->DelayMessage(msg);
MissionStateMachine::GetInstance()->SwitchState(SystemState::STORAGE_HANDLE_STATE);
return EXECUTED;
}

View File

@ -31,5 +31,8 @@ public:
private: // About VMediaMonitor
StatusCode ReportEvent(const MediaReportEvent &event) override;
private:
bool StorageStartInitHandle(VStateMachineData *msg);
};
#endif

View File

@ -15,9 +15,8 @@
#include "IHalCpp.h"
#include "ILog.h"
#include <memory>
camera_report_event::camera_report_event(const std::string &fileName, const std::string &filePath,
const CameraEvent &eventType, const CameraType &cameraType)
: mFileName(fileName), mFilePath(filePath), mEventType(eventType), mCameraType(cameraType)
camera_report_event::camera_report_event(const std::string &fileName, const CameraType &cameraType)
: mFileName(fileName), mCameraType(cameraType)
{
}
void VKeyHalMonitor::KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event,

View File

@ -29,13 +29,6 @@ enum class CameraType
MAIN_CAMERA = 0,
END
};
enum class CameraEvent
{
PICTIRUE = 0,
VIDEO,
PICTIRUE_AND_VIDEO,
END
};
enum class SdCardHalStatus
{
MOUNTED = 0,
@ -47,11 +40,8 @@ enum class SdCardHalStatus
};
typedef struct camera_report_event
{
camera_report_event(const std::string &fileName, const std::string &filePath, const CameraEvent &eventType,
const CameraType &cameraType);
camera_report_event(const std::string &fileName, const CameraType &cameraType);
const std::string mFileName;
const std::string mFilePath;
const CameraEvent mEventType;
const CameraType mCameraType;
} CameraReportEvent;
void CreateHalCppModule(void);

View File

@ -89,7 +89,7 @@ StatusCode HalMakePtr::CreateCameraHal(std::shared_ptr<VCameraHal> &impl)
}
StatusCode HalMakePtr::CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl)
{
LogWarning("CreateSdCardHal.\n");
LogInfo("CreateSdCardHal.\n");
impl = std::make_shared<SdCardHal>();
return CreateStatusCode(STATUS_CODE_OK);
}

View File

@ -35,11 +35,8 @@ enum class MediaTaskType
};
typedef struct media_report_event
{
media_report_event(const std::string &fileName, const std::string &filePath, const MediaTaskType &eventType,
const MediaChannel &mediaChannedl);
media_report_event(const std::string &fileName, const MediaChannel &mediaChannedl);
const std::string mFileName;
const std::string mFilePath; // TODO: delete
const MediaTaskType mEventType; // TODO: delete
const MediaChannel mMediaChannedl;
} MediaReportEvent;
class MediaTaskResponse

View File

@ -14,9 +14,8 @@
*/
#include "IMediaManager.h"
#include "ILog.h"
media_report_event::media_report_event(const std::string &fileName, const std::string &filePath,
const MediaTaskType &eventType, const MediaChannel &mediaChannedl)
: mFileName(fileName), mFilePath(filePath), mEventType(eventType), mMediaChannedl(mediaChannedl)
media_report_event::media_report_event(const std::string &fileName, const MediaChannel &mediaChannedl)
: mFileName(fileName), mMediaChannedl(mediaChannedl)
{
}
const MediaTaskType VMediaTask::GetTaskType(void)

View File

@ -17,7 +17,6 @@
StatusCode MediaManagerImpl::Init(void)
{
IHalCpp::GetInstance()->GetCameraHal(mAllCameras);
SetCamerasMonitor();
return CreateStatusCode(STATUS_CODE_OK);
}
StatusCode MediaManagerImpl::UnInit(void)
@ -27,19 +26,15 @@ StatusCode MediaManagerImpl::UnInit(void)
StatusCode MediaManagerImpl::SetMediaMonitor(std::shared_ptr<VMediaMonitor> &monitor)
{
mMediaMonitor = monitor;
SetCamerasMonitor();
return CreateStatusCode(STATUS_CODE_OK);
}
void MediaManagerImpl::ReportEvent(const CameraReportEvent &event)
{
LogInfo("ReportEvent.\n");
LogInfo("ReportEvent. file: %s, path: %s.\n", event.mFileName.c_str(), event.mFilePath.c_str());
MediaReportEvent reprot(event.mFileName,
event.mFilePath,
static_cast<MediaTaskType>(event.mEventType),
static_cast<MediaChannel>(event.mCameraType));
LogInfo("ReportEvent. file: %s.\n", event.mFileName.c_str());
MediaReportEvent reprot(event.mFileName, static_cast<MediaChannel>(event.mCameraType));
auto monitor = mMediaMonitor.lock();
if (mMediaMonitor.expired())
{
if (mMediaMonitor.expired()) {
LogWarning("MediaMonitor is expired.\n");
return;
}

View File

@ -38,8 +38,7 @@ public:
void MockKeyClick(const std::string &keyName, const unsigned int &pressingTimeMs = 200);
void SetLedStateExpectations(const std::string &ledName, const LedState &state, const unsigned int &aliveTimeMs,
const unsigned int &blinkTimeMs);
void MockReportCameraEvent(const std::string &fileName, const std::string &filePath, const CameraEvent &eventType,
const CameraType &cameraType);
void MockReportCameraEvent(const std::string &fileName, const CameraType &cameraType);
protected:
virtual void DeviceManagerNotice(const std::string &keyName, const unsigned int &pressingTimeMs);

View File

@ -101,8 +101,7 @@ void HalTestTool::SetLedStateExpectations(const std::string &ledName, const LedS
// }
LedControlMock::SetLedStateMock(led, state, aliveTimeMs, blinkTimeMs);
}
void HalTestTool::MockReportCameraEvent(const std::string &fileName, const std::string &filePath,
const CameraEvent &eventType, const CameraType &cameraType)
void HalTestTool::MockReportCameraEvent(const std::string &fileName, const CameraType &cameraType)
{
std::shared_ptr<VCameraHal> camera = SearchCamera(cameraType);
if (!camera) {
@ -111,7 +110,7 @@ void HalTestTool::MockReportCameraEvent(const std::string &fileName, const std::
}
std::shared_ptr<CameraHalMock> cameraMock = std::dynamic_pointer_cast<CameraHalMock>(camera);
if (cameraMock) {
CameraReportEvent report(fileName, filePath, eventType, cameraType);
CameraReportEvent report(fileName, cameraType);
cameraMock->MockReportCameraEvent(report);
}
else {

View File

@ -80,7 +80,7 @@ TEST_F(MediaManagerTest, INTEGRATION_MediaManager_EXAMPLE_Demo0)
IMediaManager::GetInstance()->Init();
IMediaManager::GetInstance()->SetMediaMonitor(monitor);
std::this_thread::sleep_for(std::chrono::milliseconds(100));
MockReportCameraEvent("test name", "test path", CameraEvent::PICTIRUE, CameraType::MAIN_CAMERA);
MockReportCameraEvent("test name", CameraType::MAIN_CAMERA);
// MockAppClientConnect();
// std::this_thread::sleep_for(std::chrono::milliseconds(100));
// MockSetRecordingStatus(RecordingStatus::RECORDING_START);