return &instance;
}
+/*
+ * @brief 设置校准状态
+*/
void CompassModel::SetCalibrationStatus(uint8_t status)
{
calibrationStatus = status;
}
+/*
+ * @brief 获取校准状态
+ * @param void
+ * @return 如果校准精度小于3,返回<b>1</b>,否则返回<b>0</b>
+*/
uint8_t CompassModel::GetCalibrationStatus(void)
{
if( mag_service_get_iAccuracy() < 3)
return 0;
}
+/*
+ * @brief 设置显示的角度
+*/
void CompassModel::SetDisplayAngle(uint16_t angle)
{
displayAngle = (int16_t)mag_service_get_fAzimuth();
}
+/*
+ * @brief 获取显示角度
+*/
uint16_t CompassModel::GetDisplayAngle(void)
{
return displayAngle;
return tv.tv_sec;
}
+/*
+ * @brief 打开指南针传感器
+ * @param void
+ * @return 如果指南针传感器打开成功则返回true,否则返回false
+*/
bool CompassModel::OpenCompassSensor(void)
{
return true;
}
+/*
+ * @brief 关闭指南针传感器
+ * @param void
+ * @return 如果指南针传感器关闭成功则返回true,否则返回false
+*/
bool CompassModel::CloseCompassSensor(void)
{
do_mag_service_check_msg(MAG_SERVICE_CMD_STOP_CHECK);
return g_pMainView;
}
//显示指南针的角度
+
+/*
+ * @brief 根据传入的角度值 angle 来更新指南针的显示方向
+ * @param angle 角度值
+*/
void CompassPresenter::DisplayAngleRight(uint16_t angle)
{
if ((angle >= RIGHT_WESTNORTH_UP_338) || (angle >= 0 && angle < RIGHT_NORTH_DOWN_23)) {
}
}
+/*
+ * @brief 校验 CompassView 的实例是否存在,并确定传入的角度值是否有效
+*/
void CompassPresenter::DisplayAngleDir(uint16_t angle)
{
if (CompassView::GetInstance() == nullptr) {
}
}
-//在范围内旋转指南针
+/*
+ * @brief 根据上一次和当前的旋转角度来判断如何旋转指南针,使其指向正确的方向
+*/
void CompassPresenter::InScopeRotate(void)
{
angleDiff = lastRotateAngle - currentRotateAngle;
}
}
-//在指南针视图初始化的情况下,根据旋转角度的变化来执行指南针的旋转操作,并在需要的时候更新显示的角度和方向。
+/*
+ * @brief 在指南针视图初始化的情况下,根据旋转角度的变化来执行指南针的旋转操作,并在需要的时候更新显示的角度和方向。
+*/
void CompassPresenter::DetermineToRotate(void)
{
if (CompassView::GetInstance() == nullptr) {
#include "MainCompassView.h"
#include "wearable_log.h"
#include "common/key_code.h"
-namespace OHOS {
-static MainCompassPresenter *g_pMainView = nullptr;
-
-MainCompassPresenter::MainCompassPresenter()
+#include "custom_utils.h"
+namespace OHOS
{
- g_pMainView = this;
-}
+ static MainCompassPresenter *g_pMainView = nullptr;
-MainCompassPresenter::~MainCompassPresenter()
-{
- g_pMainView = nullptr;
-}
+ MainCompassPresenter::MainCompassPresenter()
+ {
+ g_pMainView = this;
+ }
-void MainCompassPresenter::OnStart()
-{
- Presenter<CompassView>::OnStart();
-}
+ MainCompassPresenter::~MainCompassPresenter()
+ {
+ g_pMainView = nullptr;
+ }
-void MainCompassPresenter::OnPause(void) {}
+ void MainCompassPresenter::OnStart()
+ {
+ Presenter<CompassView>::OnStart();
+ ScreenAlwaysOnCtr(1);
+ }
-void MainCompassPresenter::OnResume(void) {}
+ void MainCompassPresenter::OnPause(void) {}
-void MainCompassPresenter::OnStop(void) {}
+ void MainCompassPresenter::OnResume(void) {}
+ void MainCompassPresenter::OnStop(void)
+ {
+ ScreenAlwaysOnCtr(0);
+ }
-MainCompassPresenter* MainCompassPresenter::GetInstance()
-{
- return g_pMainView;
-}
+ MainCompassPresenter *MainCompassPresenter::GetInstance()
+ {
+ return g_pMainView;
+ }
-bool MainCompassPresenter::OnDrag(UIView& view, const DragEvent& event)
-{
- UNUSED(view);
- if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) {
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ /*
+ * @拖拽监听
+ */
+ bool MainCompassPresenter::OnDrag(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
+ {
+ NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ }
+ return true;
}
- return true;
-}
-// 增加按键事件
+/*
+ * @brief 物理按键监听
+*/
bool MainCompassPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCompassPresenter::OnKeyAct");
uint16 keyID = event.GetKeyId();
- //如果是power键就返回上一级
+ // 如果是power键就返回上一级
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))
{
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
void MainCompassPresenter::Notify()
{
- if (MainCompassView::GetInstance() == nullptr) {
+ if (MainCompassView::GetInstance() == nullptr)
+ {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[Notify]MainCompassView::GetInstance() == nullptr");
return;
}
uint8_t status = CompassModel::GetInstance()->GetCalibrationStatus();
- if (status == 1) {
+ if (status == 1)
+ {
MainCompassView::GetInstance()->SetDisplayTure();
- } else {
+ }
+ else
+ {
MainCompassView::GetInstance()->SetDisplayFalse();
DetermineToRotate();
}