Improve:sd card hal.
This commit is contained in:
parent
385884baec
commit
ec7634f22d
|
@ -82,11 +82,13 @@ StatusCode AppMonitor::GetLockVideoStatus(LockVideoStatus ¶m)
|
|||
StatusCode AppMonitor::GetStorageInfo(std::vector<AppGetStorageInfo> ¶m)
|
||||
{
|
||||
AppGetStorageInfo info;
|
||||
SdCardInfo sdInfo;
|
||||
IStorageManager::GetInstance()->GetSdCardInfo(sdInfo);
|
||||
info.mIndex = 0;
|
||||
info.mName = "TF card";
|
||||
info.mType = StorageType::SD_CARD_1;
|
||||
info.mFree = 1024 * 32;
|
||||
info.mTotal = 1024 * 32;
|
||||
info.mFree = sdInfo.mFreeSizeMB;
|
||||
info.mTotal = sdInfo.mTotalSizeMB;
|
||||
param.push_back(info);
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ SdCardHalStatus VSdCardHal::GetSdCardStatus(void)
|
|||
LogWarning("STATUS_CODE_VIRTUAL_FUNCTION.\n");
|
||||
return SdCardHalStatus::END;
|
||||
}
|
||||
StatusCode VSdCardHal::GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB)
|
||||
StatusCode VSdCardHal::GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB, unsigned long long &usedSizeMB)
|
||||
{
|
||||
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@ public:
|
|||
virtual ~VSdCardHal() = default;
|
||||
virtual void SetSdCardMonitor(std::shared_ptr<VSdCardHalMonitor> &monitor);
|
||||
virtual SdCardHalStatus GetSdCardStatus(void);
|
||||
virtual StatusCode GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB);
|
||||
virtual StatusCode GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB, unsigned long long &usedSizeMB);
|
||||
};
|
||||
class IHalCpp
|
||||
{
|
||||
|
|
|
@ -23,8 +23,10 @@
|
|||
#include <sys/stat.h>
|
||||
#include <sys/statvfs.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/vfs.h>
|
||||
#include <unistd.h>
|
||||
const char *SD_CARD_DEVICE = SD_CARD_DEV;
|
||||
const char *SD_MOUNT_PATH = SD_CARD_MOUNT_PATH;
|
||||
SdCardHal::SdCardHal() : mStatus(SdCardHalStatus::END), mThreadRuning(false), mDeviceFd(-1)
|
||||
{
|
||||
}
|
||||
|
@ -38,20 +40,27 @@ SdCardHalStatus SdCardHal::GetSdCardStatus(void)
|
|||
{
|
||||
return mStatus;
|
||||
}
|
||||
StatusCode SdCardHal::GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB)
|
||||
StatusCode SdCardHal::GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB,
|
||||
unsigned long long &usedSizeMB)
|
||||
{
|
||||
constexpr int ONE_MB = 1024 * 1024;
|
||||
struct statvfs stat;
|
||||
if (statvfs(SD_CARD_DEVICE, &stat) != 0) {
|
||||
perror("statvfs");
|
||||
using SD_SIZE = unsigned long long;
|
||||
constexpr SD_SIZE ONE_MB = 1024ULL * 1024;
|
||||
if (SdCardHalStatus::MOUNTED != mStatus) {
|
||||
LogWarning("SdCardHalStatus::MOUNTED != mStatus\n");
|
||||
return CreateStatusCode(STATUS_CODE_NOT_OK);
|
||||
}
|
||||
struct statfs sd_fs;
|
||||
if (statfs(SD_MOUNT_PATH, &sd_fs) != 0) {
|
||||
LogError("statfs failed!\n");
|
||||
return CreateStatusCode(STATUS_CODE_NOT_OK);
|
||||
}
|
||||
|
||||
totalSizeMB = (stat.f_frsize * stat.f_blocks) / ONE_MB;
|
||||
freeSizeMB = (stat.f_frsize * stat.f_bfree) / ONE_MB;
|
||||
|
||||
totalSizeMB = ((SD_SIZE)sd_fs.f_blocks * (SD_SIZE)sd_fs.f_bsize) / ONE_MB;
|
||||
freeSizeMB = ((SD_SIZE)sd_fs.f_bavail * (SD_SIZE)sd_fs.f_bsize) / ONE_MB;
|
||||
usedSizeMB = (((SD_SIZE)sd_fs.f_blocks - (SD_SIZE)sd_fs.f_bfree) * (SD_SIZE)sd_fs.f_bsize) / ONE_MB;
|
||||
LogInfo("Total size: %llu MB\n", totalSizeMB);
|
||||
LogInfo("Free size: %llu MB\n", freeSizeMB);
|
||||
LogInfo("Used size: %llu MB\n", usedSizeMB);
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
void SdCardHal::Init(void)
|
||||
|
|
|
@ -23,7 +23,7 @@ public:
|
|||
virtual ~SdCardHal() = default;
|
||||
void SetSdCardMonitor(std::shared_ptr<VSdCardHalMonitor> &monitor) override;
|
||||
SdCardHalStatus GetSdCardStatus(void) override;
|
||||
StatusCode GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB) override;
|
||||
StatusCode GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB, unsigned long long &usedSizeMB) override;
|
||||
void Init(void);
|
||||
void UnInit(void);
|
||||
void DevDetectingThread(void);
|
||||
|
|
|
@ -236,8 +236,8 @@ typedef struct app_get_storage_info
|
|||
int mIndex;
|
||||
StorageType mType;
|
||||
std::string mName;
|
||||
int mFree;
|
||||
int mTotal;
|
||||
unsigned long long mFree;
|
||||
unsigned long long mTotal;
|
||||
} AppGetStorageInfo;
|
||||
typedef struct app_get_file_info
|
||||
{
|
||||
|
|
|
@ -32,6 +32,7 @@ typedef struct sd_card_info
|
|||
StorageEvent mEvent;
|
||||
unsigned long long mTotalSizeMB;
|
||||
unsigned long long mFreeSizeMB;
|
||||
unsigned long long mUsedSizeMB;
|
||||
} SdCardInfo;
|
||||
class VStorageMoniter
|
||||
{
|
||||
|
|
|
@ -28,7 +28,7 @@ void SdCardHandle::ReportEvent(const SdCardHalStatus &status)
|
|||
StatusCode SdCardHandle::GetSdCardInfo(SdCardInfo &info)
|
||||
{
|
||||
info.mEvent = StorageEventConvert(mSdCardHal->GetSdCardStatus());
|
||||
return mSdCardHal->GetCapacity(info.mTotalSizeMB, info.mFreeSizeMB);
|
||||
return mSdCardHal->GetCapacity(info.mTotalSizeMB, info.mFreeSizeMB, info.mUsedSizeMB);
|
||||
}
|
||||
void SdCardHandle::SdCardInit(void)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user