Improve:App protocol.
This commit is contained in:
parent
4834d682d4
commit
6c8bb74be1
|
@ -133,7 +133,7 @@
|
||||||
#### 1.2.2.3. 问题列表
|
#### 1.2.2.3. 问题列表
|
||||||
|
|
||||||
1. 针对软件迭代需求,除了一些和APP业务逻辑相关的参数需要特殊处理外,是否可以通过协议来获取设备自定义的参数设置?方便设备可以随意的增加/删除设置参数。
|
1. 针对软件迭代需求,除了一些和APP业务逻辑相关的参数需要特殊处理外,是否可以通过协议来获取设备自定义的参数设置?方便设备可以随意的增加/删除设置参数。
|
||||||
答:已经支持,看协议能力。
|
答:==已经支持==,看协议能力。
|
||||||
2. 没发现升级功能。
|
2. 没发现升级功能。
|
||||||
答:公版APP不支持升级功能。
|
答:公版APP不支持升级功能。
|
||||||
|
|
||||||
|
|
|
@ -287,25 +287,33 @@ void inline SixFrameHandle::ResponseGetBatteryInfo(cJSON *result, const AppGetBa
|
||||||
cJSON_AddNumberToObject(info, "charge", static_cast<int>(param.mChargeStatus));
|
cJSON_AddNumberToObject(info, "charge", static_cast<int>(param.mChargeStatus));
|
||||||
cJSON_AddNumberToObject(info, "capacity", param.mCapacity);
|
cJSON_AddNumberToObject(info, "capacity", param.mCapacity);
|
||||||
}
|
}
|
||||||
AppParamValue inline SixFrameHandle::RequestParamValueParse(const std::string &url)
|
void inline SixFrameHandle::RequestParamValueParse(const std::string &url, std::map<std::string, bool> ¶mList)
|
||||||
{
|
{
|
||||||
auto parseFunc = [](const std::string &key, const std::string &value, std::shared_ptr<VParseUrl> &parse) {
|
auto parseFunc = [](const std::string &key, const std::string &value, std::shared_ptr<VParseUrl> &parse) {
|
||||||
std::shared_ptr<ParseUrl<AppParamValue>> parseImpl = std::dynamic_pointer_cast<ParseUrl<AppParamValue>>(parse);
|
std::shared_ptr<ParseUrl<std::map<std::string, bool>>> parseImpl =
|
||||||
|
std::dynamic_pointer_cast<ParseUrl<std::map<std::string, bool>>>(parse);
|
||||||
|
if ("param" == key) {
|
||||||
|
if ("all" == value) {
|
||||||
|
parseImpl->mData["all"] = true; // means app want to get all value.
|
||||||
|
}
|
||||||
|
}
|
||||||
if ("param" == key) {
|
if ("param" == key) {
|
||||||
if ("rec" == value) {
|
if ("rec" == value) {
|
||||||
parseImpl->mData.mRec = SwitchStatus::ON; // means app want to get mRec value.
|
parseImpl->mData["rec"] = true; // means app want to get rec value.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
std::shared_ptr<VParseUrl> parse = std::make_shared<ParseUrl<AppParamValue>>();
|
std::shared_ptr<VParseUrl> parse = std::make_shared<ParseUrl<std::map<std::string, bool>>>();
|
||||||
std::shared_ptr<ParseUrl<AppParamValue>> parseImpl = std::dynamic_pointer_cast<ParseUrl<AppParamValue>>(parse);
|
std::shared_ptr<ParseUrl<std::map<std::string, bool>>> parseImpl =
|
||||||
|
std::dynamic_pointer_cast<ParseUrl<std::map<std::string, bool>>>(parse);
|
||||||
ExtractParamsFromUrl(url, parseFunc, parse);
|
ExtractParamsFromUrl(url, parseFunc, parse);
|
||||||
return parseImpl->mData;
|
paramList = parseImpl->mData;
|
||||||
}
|
}
|
||||||
void SixFrameHandle::RequestGetParamValue(const std::string &url, ResponseHandle responseHandle, void *context)
|
void SixFrameHandle::RequestGetParamValue(const std::string &url, ResponseHandle responseHandle, void *context)
|
||||||
{
|
{
|
||||||
LogInfo("RequestGetParamValue.\n");
|
LogInfo("RequestGetParamValue.\n");
|
||||||
// AppParamValue appGetValue = RequestParamValueParse(url); // TODO:
|
std::map<std::string, bool> paramList;
|
||||||
|
RequestParamValueParse(url, paramList);
|
||||||
AppParamValue paramDevice;
|
AppParamValue paramDevice;
|
||||||
mAppMonitor->GetParamValue(paramDevice);
|
mAppMonitor->GetParamValue(paramDevice);
|
||||||
cJSON *result = MakeResponseResult(ResposeResult::SUCCESSFUL);
|
cJSON *result = MakeResponseResult(ResposeResult::SUCCESSFUL);
|
||||||
|
@ -314,33 +322,58 @@ void SixFrameHandle::RequestGetParamValue(const std::string &url, ResponseHandle
|
||||||
responseHandle("Device run out of memory.", context);
|
responseHandle("Device run out of memory.", context);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ResponseGetParamValue(result, paramDevice);
|
ResponseGetParamValue(result, paramDevice, paramList);
|
||||||
ResponseJsonString(result, responseHandle, context);
|
ResponseJsonString(result, responseHandle, context);
|
||||||
cJSON_Delete(result);
|
cJSON_Delete(result);
|
||||||
}
|
}
|
||||||
void inline SixFrameHandle::ResponseGetParamValue(cJSON *result, const AppParamValue ¶m)
|
void inline SixFrameHandle::ResponseGetParamValue(cJSON *result, const AppParamValue ¶m,
|
||||||
|
const std::map<std::string, bool> ¶mList)
|
||||||
{
|
{
|
||||||
// cJSON *info = cJSON_CreateArray();
|
auto it = paramList.find("all");
|
||||||
// if (nullptr == info) {
|
if (it != paramList.end()) {
|
||||||
// LogError("cJSON_CreateArray failed.\n");
|
cJSON *info = cJSON_CreateArray();
|
||||||
// return;
|
if (nullptr == info) {
|
||||||
// }
|
LogError("cJSON_CreateArray failed.\n");
|
||||||
// cJSON_AddItemToObject(result, CJSON_INFO_STRING, info);
|
return;
|
||||||
// cJSON *mic = cJSON_CreateObject();
|
}
|
||||||
// if (nullptr != mic) {
|
cJSON_AddItemToObject(result, CJSON_INFO_STRING, info);
|
||||||
// cJSON_AddItemToArray(info, mic);
|
cJSON *mic = cJSON_CreateObject();
|
||||||
// cJSON_AddStringToObject(mic, "name", "mic");
|
if (nullptr != mic) {
|
||||||
// cJSON_AddNumberToObject(mic, "value", static_cast<int>(param.mMicStatus));
|
cJSON_AddItemToArray(info, mic);
|
||||||
// }
|
cJSON_AddStringToObject(mic, "name", "mic");
|
||||||
// cJSON *rec = cJSON_CreateObject();
|
cJSON_AddNumberToObject(mic, "value", static_cast<int>(param.mMicStatus));
|
||||||
// if (nullptr != rec) {
|
}
|
||||||
// cJSON_AddItemToArray(info, rec);
|
cJSON *rec = cJSON_CreateObject();
|
||||||
// cJSON_AddStringToObject(rec, "name", "rec");
|
if (nullptr != rec) {
|
||||||
// cJSON_AddNumberToObject(rec, "value", static_cast<int>(param.mRec));
|
cJSON_AddItemToArray(info, rec);
|
||||||
// }
|
cJSON_AddStringToObject(rec, "name", "rec");
|
||||||
cJSON *info = nullptr;
|
cJSON_AddNumberToObject(rec, "value", static_cast<int>(param.mRec));
|
||||||
cJSON_AddItemToObject(result, CJSON_INFO_STRING, info = cJSON_CreateObject());
|
}
|
||||||
cJSON_AddNumberToObject(info, "value", static_cast<int>(param.mRec));
|
cJSON *osd = cJSON_CreateObject();
|
||||||
|
if (nullptr != osd) {
|
||||||
|
cJSON_AddItemToArray(info, osd);
|
||||||
|
cJSON_AddStringToObject(osd, "name", "osd");
|
||||||
|
cJSON_AddNumberToObject(osd, "value", 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cJSON *info = nullptr;
|
||||||
|
cJSON_AddItemToObject(result, CJSON_INFO_STRING, info = cJSON_CreateObject());
|
||||||
|
{
|
||||||
|
auto it = paramList.find("mic");
|
||||||
|
if (it != paramList.end()) {
|
||||||
|
cJSON_AddNumberToObject(info, "value", static_cast<int>(param.mMicStatus));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
auto it = paramList.find("rec");
|
||||||
|
if (it != paramList.end()) {
|
||||||
|
cJSON_AddNumberToObject(info, "value", static_cast<int>(param.mRec));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void SixFrameHandle::RequestGetCapability(const std::string &url, ResponseHandle responseHandle, void *context)
|
void SixFrameHandle::RequestGetCapability(const std::string &url, ResponseHandle responseHandle, void *context)
|
||||||
{
|
{
|
||||||
|
|
|
@ -72,9 +72,15 @@ private:
|
||||||
void ResponseGetSdCardInfo(cJSON *result, const AppGetSdCardInfo ¶m);
|
void ResponseGetSdCardInfo(cJSON *result, const AppGetSdCardInfo ¶m);
|
||||||
void RequestGetBatteryInfo(const std::string &url, ResponseHandle responseHandle, void *context);
|
void RequestGetBatteryInfo(const std::string &url, ResponseHandle responseHandle, void *context);
|
||||||
void ResponseGetBatteryInfo(cJSON *result, const AppGetBatteryInfo ¶m);
|
void ResponseGetBatteryInfo(cJSON *result, const AppGetBatteryInfo ¶m);
|
||||||
AppParamValue RequestParamValueParse(const std::string &url);
|
/**
|
||||||
|
* @brief There are many parameters that need to be set for the content that the APP needs to obtain in the protocol
|
||||||
|
* package, The APP may retrieve all or some of the parameters.
|
||||||
|
* @param url [in]
|
||||||
|
* @param paramList [out]
|
||||||
|
*/
|
||||||
|
void RequestParamValueParse(const std::string &url, std::map<std::string, bool> ¶mList);
|
||||||
void RequestGetParamValue(const std::string &url, ResponseHandle responseHandle, void *context);
|
void RequestGetParamValue(const std::string &url, ResponseHandle responseHandle, void *context);
|
||||||
void ResponseGetParamValue(cJSON *result, const AppParamValue ¶m);
|
void ResponseGetParamValue(cJSON *result, const AppParamValue ¶m, const std::map<std::string, bool> ¶mList);
|
||||||
void RequestGetCapability(const std::string &url, ResponseHandle responseHandle, void *context);
|
void RequestGetCapability(const std::string &url, ResponseHandle responseHandle, void *context);
|
||||||
void ResponseGetCapability(cJSON *result, const AppGetCapability ¶m);
|
void ResponseGetCapability(cJSON *result, const AppGetCapability ¶m);
|
||||||
void RequestGetLockVideoStatus(const std::string &url, ResponseHandle responseHandle, void *context);
|
void RequestGetLockVideoStatus(const std::string &url, ResponseHandle responseHandle, void *context);
|
||||||
|
|
|
@ -123,7 +123,7 @@ TEST_F(HuntingCameraTest, INTEGRATION_HunttingCamera_AUTO_GetParamValue)
|
||||||
MainThread::GetInstance()->Init();
|
MainThread::GetInstance()->Init();
|
||||||
TestManager::ResetTimeOut(1000 * 3);
|
TestManager::ResetTimeOut(1000 * 3);
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||||
MockGetParamValue();
|
MockGetParamValue("all");
|
||||||
MainThread::GetInstance()->Runing();
|
MainThread::GetInstance()->Runing();
|
||||||
}
|
}
|
||||||
// ../output_files/test/bin/HuntingCameraTest
|
// ../output_files/test/bin/HuntingCameraTest
|
||||||
|
|
|
@ -173,7 +173,19 @@ TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_AUTO_GetParamValue)
|
||||||
IAppManager::GetInstance()->Init(mAppParam);
|
IAppManager::GetInstance()->Init(mAppParam);
|
||||||
IAppManager::GetInstance()->SetAppMonitor(monitor);
|
IAppManager::GetInstance()->SetAppMonitor(monitor);
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||||
AppManagerTestTool::MockGetParamValue();
|
AppManagerTestTool::MockGetParamValue("all");
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||||
|
IAppManager::GetInstance()->UnInit();
|
||||||
|
}
|
||||||
|
// ../output_files/test/bin/AppManagerTest
|
||||||
|
// --gtest_filter=AppManagerTest.INTEGRATION_AppManager_EXAMPLE_AUTO_GetParamValue2
|
||||||
|
TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_AUTO_GetParamValue2)
|
||||||
|
{
|
||||||
|
std::shared_ptr<VAppMonitor> monitor = AppManagerTestTool::MakeMonitorMock();
|
||||||
|
IAppManager::GetInstance()->Init(mAppParam);
|
||||||
|
IAppManager::GetInstance()->SetAppMonitor(monitor);
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||||
|
AppManagerTestTool::MockGetParamValue("rec");
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||||
IAppManager::GetInstance()->UnInit();
|
IAppManager::GetInstance()->UnInit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ protected: // About http
|
||||||
void MockSetDateTime(void);
|
void MockSetDateTime(void);
|
||||||
void MockSetTimeZone(void);
|
void MockSetTimeZone(void);
|
||||||
void MockUploadFiles(void);
|
void MockUploadFiles(void);
|
||||||
void MockGetParamValue(void);
|
void MockGetParamValue(const std::string ¶mName);
|
||||||
void MockGetCapability(void);
|
void MockGetCapability(void);
|
||||||
void MockGetLockVideoStatus(void);
|
void MockGetLockVideoStatus(void);
|
||||||
void MockGetStorageInfo(void);
|
void MockGetStorageInfo(void);
|
||||||
|
|
|
@ -122,7 +122,7 @@ void AppManagerTestTool::MockUploadFiles(void)
|
||||||
}
|
}
|
||||||
ServersMock::GetInstance()->MockUploadFiles();
|
ServersMock::GetInstance()->MockUploadFiles();
|
||||||
}
|
}
|
||||||
void AppManagerTestTool::MockGetParamValue(void)
|
void AppManagerTestTool::MockGetParamValue(const std::string ¶mName)
|
||||||
{
|
{
|
||||||
std::shared_ptr<AppMonitorMock> mock = std::dynamic_pointer_cast<AppMonitorMock>(mAppMonitorMock);
|
std::shared_ptr<AppMonitorMock> mock = std::dynamic_pointer_cast<AppMonitorMock>(mAppMonitorMock);
|
||||||
if (mock) {
|
if (mock) {
|
||||||
|
@ -130,7 +130,7 @@ void AppManagerTestTool::MockGetParamValue(void)
|
||||||
.Times(ONLY_BE_CALLED_ONCE)
|
.Times(ONLY_BE_CALLED_ONCE)
|
||||||
.WillOnce(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION))));
|
.WillOnce(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION))));
|
||||||
}
|
}
|
||||||
ServersMock::GetInstance()->MockGetParamValue();
|
ServersMock::GetInstance()->MockGetParamValue(paramName);
|
||||||
}
|
}
|
||||||
void AppManagerTestTool::MockGetCapability(void)
|
void AppManagerTestTool::MockGetCapability(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -146,10 +146,10 @@ void ServersMock::MockGetBatteryInfo(void)
|
||||||
DeleteServersHttp(http);
|
DeleteServersHttp(http);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void ServersMock::MockGetParamValue(void)
|
void ServersMock::MockGetParamValue(const std::string ¶mName)
|
||||||
{
|
{
|
||||||
LogInfo("APP_GET_PARAM_VALUE test start.\n");
|
LogInfo("APP_GET_PARAM_VALUE test start.\n");
|
||||||
std::string mockRequest = mServerUrl + APP_GET_PARAM_VALUE;
|
std::string mockRequest = mServerUrl + APP_GET_PARAM_VALUE + "?param=" + paramName;
|
||||||
ServerHttp *http = NewServersHttp(mockRequest.c_str());
|
ServerHttp *http = NewServersHttp(mockRequest.c_str());
|
||||||
if (http) {
|
if (http) {
|
||||||
HttpGet(http);
|
HttpGet(http);
|
||||||
|
|
|
@ -28,7 +28,7 @@ public:
|
||||||
virtual void MockGetMediaInfo(void);
|
virtual void MockGetMediaInfo(void);
|
||||||
virtual void MockGetSdCardInfo(void);
|
virtual void MockGetSdCardInfo(void);
|
||||||
virtual void MockGetBatteryInfo(void);
|
virtual void MockGetBatteryInfo(void);
|
||||||
virtual void MockGetParamValue(void);
|
virtual void MockGetParamValue(const std::string ¶mName);
|
||||||
virtual void MockGetCapability(void);
|
virtual void MockGetCapability(void);
|
||||||
virtual void MockGetLockVideoStatus(void);
|
virtual void MockGetLockVideoStatus(void);
|
||||||
virtual void MockGetStorageInfo(void);
|
virtual void MockGetStorageInfo(void);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user