65 lines
2.0 KiB
C++
65 lines
2.0 KiB
C++
#include "SDCardHal.h"
|
|
#include "Log.h"
|
|
SDCardHal::SDCardHal()
|
|
{
|
|
mState = SdCardEvent::END;
|
|
mSDCardMessageConvert[CMD_SD_MOUNT_SUCCESS] = SdCardEvent::MOUNT_SUCCEED;
|
|
mSDCardMessageConvert[CMD_SF_SD_FORMAT] = SdCardEvent::MOUNT_FAILED; // TODO:
|
|
mSDCardMessageConvert[CMD_SD_ERROR] = SdCardEvent::SD_ERROR;
|
|
mSDCardMessageConvert[CMD_SD_OUT] = SdCardEvent::SD_OUT;
|
|
mSDCardMessageConvert[CMD_SD_FULL] = SdCardEvent::SD_FULL;
|
|
}
|
|
RETURN_CODE SDCardHal::GetSdCardState(SdCardEvent &state)
|
|
{
|
|
state = mState;
|
|
return VReturnCode::NewCode(VReturnCodeDefine::OK);
|
|
}
|
|
RETURN_CODE SDCardHal::SetOwner(const std::shared_ptr<VSDCardOwner> &owner)
|
|
{
|
|
mOwner = owner;
|
|
return VReturnCode::NewCode(VReturnCodeDefine::OK);
|
|
}
|
|
void SDCardHal::SetSDCardMessage(const SF_MESSAGE_CMD_SD_E &message)
|
|
{
|
|
std::map<SF_MESSAGE_CMD_SD_E, SdCardEvent>::iterator iter;
|
|
iter = mSDCardMessageConvert.find(message);
|
|
if (iter != mSDCardMessageConvert.end())
|
|
{
|
|
LogInfo("SetSDCardMessage = %d\n", static_cast<int>(message));
|
|
mState = mSDCardMessageConvert[message];
|
|
ReportMessageToOwner(mState);
|
|
return;
|
|
}
|
|
LogError("SF_MESSAGE_CMD_SD_E wrong = %d.\n", static_cast<int>(message));
|
|
}
|
|
RETURN_CODE SDCardHal::Format(void)
|
|
{
|
|
system("echo format > /tmp/cardv_fifo");
|
|
return VReturnCode::NewCode(VReturnCodeDefine::OK);
|
|
}
|
|
RETURN_CODE SDCardHal::MsdcMode(void)
|
|
{
|
|
system("/customer/gadget/udc-msdc.sh");
|
|
return VReturnCode::NewCode(VReturnCodeDefine::OK);
|
|
}
|
|
RETURN_CODE SDCardHal::UvcMode(void)
|
|
{
|
|
system("echo uvc 1 > /tmp/cardv_fifo");
|
|
return VReturnCode::NewCode(VReturnCodeDefine::OK);
|
|
}
|
|
void SDCardHal::ReportMessageToOwner(const SdCardEvent &message)
|
|
{
|
|
auto owner = mOwner.lock();
|
|
if (!owner)
|
|
{
|
|
LogWarning("Owner is nullptr.\n");
|
|
return;
|
|
}
|
|
if (mOwner.expired())
|
|
{
|
|
LogWarning("Owner shared ptr expired failed.\n");
|
|
return;
|
|
}
|
|
LogInfo("ReportMessageToOwner.\n");
|
|
owner->SDCardHalEvent(message);
|
|
} |