From 4cdc4b3d488e15b1d6572bdcd61a2ce92d0c8c9b Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期五, 16 五月 2025 18:13:14 +0800
Subject: [PATCH] 成功分离2个测距功能

---
 keil/include/components/internet/src/Module.c |  556 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 556 insertions(+), 0 deletions(-)

diff --git a/keil/include/components/internet/src/Module.c b/keil/include/components/internet/src/Module.c
new file mode 100644
index 0000000..c95a292
--- /dev/null
+++ b/keil/include/components/internet/src/Module.c
@@ -0,0 +1,556 @@
+/*******************************************************************************
+ * File Name         : Module.c
+ * Description       :
+ * Created on        : 2018年8月5日
+ * Author            : www.hido-studio.com
+ *******************************************************************************/
+
+/*******************************************************************************
+ *                              Include Files                                  *
+ *******************************************************************************/
+#include "Module.h"
+#include "string.h"
+#include "HIDO_Util.h"
+
+/*******************************************************************************
+ *                                  Macro                                      *
+ *******************************************************************************/
+#define FUNC_CALL(fn, ...) \
+if((fn) != HIDO_NULL) \
+    (fn)(__VA_ARGS__)
+
+/*******************************************************************************
+ *                             Type Definition                                 *
+ *******************************************************************************/
+
+/*******************************************************************************
+ *                             Local Variable                                  *
+ *******************************************************************************/
+static HIDO_CHAR l_acIMEI[MODULE_IMEI_SIZE];
+static HIDO_CHAR l_acIMSI[MODULE_IMSI_SIZE];
+static HIDO_CHAR l_acCCID[MODULE_CCID_SIZE];
+
+/* CSQ */
+static HIDO_UINT32 l_u32SignalIntensity = 0;
+static HIDO_VOID *l_pSignalIntensityArg = HIDO_NULL;
+static FN_SignalIntensityCallback l_fnSignalIntensityCallback = HIDO_NULL;
+static HIDO_BOOL l_bSignalIntensityNeedRequest = HIDO_FALSE;
+
+/* LBS */
+static ST_LBSLocation l_stLBSLocation;
+static HIDO_VOID *l_pLBSLocationArg = HIDO_NULL;
+static FN_LBSLocationCallback l_fnLBSLocationCallback = HIDO_NULL;
+static HIDO_BOOL l_bLBSLocationNeedRequest = HIDO_FALSE;
+
+/* Power */
+static FN_PowerEventCallback l_fnPowerEventCallback = HIDO_NULL;
+static HIDO_VOID *l_pPowerEventArg = HIDO_NULL;
+static HIDO_BOOL l_abModuleNeedSleep[MODULE_ALL] = { HIDO_FALSE };
+static HIDO_BOOL l_abModuleNeedWakeUp[MODULE_ALL] = { HIDO_FALSE };
+
+static HIDO_BOOL l_abModuleNeedPowerOff[MODULE_ALL] = { HIDO_FALSE };
+static HIDO_BOOL l_abModuleNeedPowerOn[MODULE_ALL] = { HIDO_FALSE };
+
+static HIDO_BOOL l_bRunATCmd = HIDO_FALSE;
+static HIDO_CHAR l_acRunATCmdBuff[128];
+
+/*******************************************************************************
+ *                        Local Function Declaration                           *
+ *******************************************************************************/
+
+/*******************************************************************************
+ *                             Local Function                                  *
+ *******************************************************************************/
+
+/*******************************************************************************
+ *                             Global Function                                 *
+ *******************************************************************************/
+
+/*******************************************************************************
+ * Function Name     : Module_SignalIntensityResult
+ * Description       : 信号强度异步结果通知
+ * Input             : _u32SignalIntensity                信号强度
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_SignalIntensityResult(HIDO_UINT32 _u32SignalIntensity)
+{
+    if(l_fnSignalIntensityCallback != HIDO_NULL)
+    {
+        l_fnSignalIntensityCallback(_u32SignalIntensity, l_pSignalIntensityArg);
+    }
+
+    l_u32SignalIntensity = _u32SignalIntensity;
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_GetSignalIntensityAsync
+ * Description       : 信号强度异步获取
+ * Input             : _fnGetSignalIntensity              异步通知回调
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_GetSignalIntensityAsync(FN_SignalIntensityCallback _fnGetSignalIntensity, HIDO_VOID *_pArg)
+{
+    l_fnSignalIntensityCallback = _fnGetSignalIntensity;
+    l_pSignalIntensityArg = _pArg;
+    l_bSignalIntensityNeedRequest = HIDO_TRUE;
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_SignalIntensityNeedRequest
+ * Description       : 是否需要异步获取信号强度
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_BOOL Module_SignalIntensityNeedRequest(void)
+{
+    HIDO_BOOL bState = l_bSignalIntensityNeedRequest;
+
+    l_bSignalIntensityNeedRequest = HIDO_FALSE;
+
+    return bState;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_LBSLocationResult
+ * Description       : 
+ * Input             : _u32SignalIntensity                信号强度
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_LBSLocationResult(ST_LBSLocation *_pstLBSLocation)
+{
+    if(l_fnLBSLocationCallback != HIDO_NULL)
+    {
+        l_fnLBSLocationCallback(_pstLBSLocation, l_pLBSLocationArg);
+    }
+
+    memcpy(&l_stLBSLocation, _pstLBSLocation, sizeof(ST_LBSLocation));
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_GetLBSLocationAsync
+ * Description       : 
+ * Input             : _fnGetSignalIntensity              异步通知回调
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_GetLBSLocationAsync(FN_LBSLocationCallback _fnGetLBSLocation, HIDO_VOID *_pArg)
+{
+    l_fnLBSLocationCallback = _fnGetLBSLocation;
+    l_pLBSLocationArg = _pArg;
+    l_bLBSLocationNeedRequest = HIDO_TRUE;
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_LBSLocationNeedRequest
+ * Description       : 
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_BOOL Module_LBSLocationNeedRequest(void)
+{
+    HIDO_BOOL bState = l_bLBSLocationNeedRequest;
+
+    l_bLBSLocationNeedRequest = HIDO_FALSE;
+
+    return bState;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_GetIMEI
+ * Description       : 获取IMEI接口
+ * Input             : None
+ * Output            : _acIMEI                       IMEI
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_CHAR *Module_GetIMEI(HIDO_VOID)
+{
+    return l_acIMEI;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_SetIMEI
+ * Description       : 设置IMEI接口
+ * Input             : _pcIMEI                       IMEI
+ *                     _u32IMEILen                   长度
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_SetIMEI(HIDO_CHAR *_pcIMEI, HIDO_UINT32 _u32IMEILen)
+{
+    if(_u32IMEILen < 2)
+    {
+        return HIDO_ERR;
+    }
+    
+    _u32IMEILen -= 2;
+    
+    if(_u32IMEILen < MODULE_IMEI_SIZE)
+    {
+        memcpy(l_acIMEI, _pcIMEI, _u32IMEILen);
+        l_acIMEI[_u32IMEILen] = '\0';
+    }
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_GetIMSI
+ * Description       : 设置IMEI接口
+ * Input             : _pcIMSI                       IMSI
+ *                     _u32IMSILen                   长度
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_CHAR *Module_GetIMSI(HIDO_VOID)
+{
+    return l_acIMSI;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_SetIMSI
+ * Description       : 设置IMSI接口
+ * Input             : _pcIMSI                       IMSI
+ *                     _u32IMSILen                   长度
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_SetIMSI(HIDO_CHAR *_pcIMSI, HIDO_UINT32 _u32IMSILen)
+{
+    if(_u32IMSILen < 2)
+    {
+        return HIDO_ERR;
+    }
+    
+    _u32IMSILen -= 2;
+    
+    if(_u32IMSILen < MODULE_IMSI_SIZE)
+    {
+        memcpy(l_acIMSI, _pcIMSI, _u32IMSILen);
+        l_acIMSI[_u32IMSILen] = '\0';
+    }
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_GetCCID
+ * Description       : 获取SIM卡号
+ * Input             : None
+ * Output            : None
+ * Return            : SIM卡号
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_CHAR *Module_GetCCID(HIDO_VOID)
+{
+    return l_acCCID;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_SetCCID
+ * Description       : 设置IMSI接口
+ * Input             : _pcIMSI                       IMSI
+ *                     _u32IMSILen                   长度
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_SetCCID(HIDO_CHAR *_pcCCID, HIDO_UINT32 _u32CCIDLen)
+{
+    if(_u32CCIDLen < MODULE_CCID_SIZE)
+    {
+        memcpy(l_acCCID, _pcCCID, _u32CCIDLen-2);
+//        l_acCCID[_u32CCIDLen] = '\0';
+    }
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_Sleep
+ * Description       : 睡眠接口
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_SetPowerEventCallback(FN_PowerEventCallback _fnPowerCallback, HIDO_VOID *_pArg)
+{
+	l_fnPowerEventCallback = _fnPowerCallback;
+	l_pPowerEventArg = _pArg;
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_Sleep
+ * Description       : 睡眠接口
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_Sleep(E_Module _eModule)
+{
+	l_abModuleNeedSleep[_eModule] = HIDO_TRUE;
+	l_abModuleNeedWakeUp[_eModule] = HIDO_FALSE;
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_WakeUp
+ * Description       : 唤醒接口
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_WakeUp(E_Module _eModule)
+{
+	l_abModuleNeedWakeUp[_eModule] = HIDO_TRUE;
+	l_abModuleNeedSleep[_eModule] = HIDO_FALSE;
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_PowerEvent
+ * Description       : 
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_PowerEvent(E_Module _eModule, E_ModuleState _eModuleState)
+{
+    FUNC_CALL(l_fnPowerEventCallback, _eModule, _eModuleState, l_pPowerEventArg);
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_PowerOff
+ * Description       : 关机接口
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_PowerOff(E_Module _eModule)
+{
+	l_abModuleNeedPowerOff[_eModule] = HIDO_TRUE;
+	l_abModuleNeedPowerOn[_eModule] = HIDO_FALSE;
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_PowerOn
+ * Description       : 开机接口
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_PowerOn(E_Module _eModule)
+{
+	l_abModuleNeedPowerOn[_eModule] = HIDO_TRUE;
+	l_abModuleNeedPowerOff[_eModule] = HIDO_FALSE;
+
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_NeedSleep
+ * Description       : 睡眠接口
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_BOOL Module_NeedSleep(E_Module _eModule)
+{
+	HIDO_BOOL bState = l_abModuleNeedSleep[_eModule];
+
+	l_abModuleNeedSleep[_eModule] = HIDO_FALSE;
+
+    return bState;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_WakeUp
+ * Description       : 唤醒接口
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_BOOL Module_NeedWakeUp(E_Module _eModule)
+{
+	HIDO_BOOL bState = l_abModuleNeedWakeUp[_eModule];
+
+	l_abModuleNeedWakeUp[_eModule] = HIDO_FALSE;
+
+    return bState;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_PowerOff
+ * Description       : 关机接口
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_BOOL Module_NeedPowerOff(E_Module _eModule)
+{
+	HIDO_BOOL bState = l_abModuleNeedPowerOff[_eModule];
+
+	l_abModuleNeedPowerOff[_eModule] = HIDO_FALSE;
+
+    return bState;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_PowerOn
+ * Description       : 开机接口
+ * Input             :
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_BOOL Module_NeedPowerOn(E_Module _eModule)
+{
+	HIDO_BOOL bState = l_abModuleNeedPowerOn[_eModule];
+
+	l_abModuleNeedPowerOn[_eModule] = HIDO_FALSE;
+
+    return bState;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_GetSignalIntensity
+ * Description       : 获取最后一次缓存的信号限度
+ * Input             : None
+ * Output            : None
+ * Return            : 信号强度
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_UINT32 Module_GetSignalIntensity(void)
+{
+    return l_u32SignalIntensity;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_RunATCmdResult
+ * Description       : 用户AT命令运行结果
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_RunATCmdResult(HIDO_DataStruct * _pstATResponse)
+{
+    return HIDO_OK;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_RunATCmdEnable
+ * Description       : 判断是否需要用户的AT命令
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_BOOL Module_RunATCmdEnable(HIDO_VOID)
+{
+    HIDO_BOOL bState = l_bRunATCmd;
+
+    l_bRunATCmd = HIDO_FALSE;
+
+    return bState;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_GetRunATCmd
+ * Description       : 获取用户运行的AT命令
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_CHAR *Module_GetRunATCmd(HIDO_VOID)
+{
+    return l_acRunATCmdBuff;
+}
+
+/*******************************************************************************
+ * Function Name     : Module_RunATCmd
+ * Description       : 用户运行AT命令
+ * Input             : None
+ * Output            : None
+ * Return            : None
+ * Author            : www.hido-studio.com
+ * Modified Date:    : 2018年8月5日
+ *******************************************************************************/
+HIDO_INT32 Module_RunATCmd(HIDO_CHAR *_pcATCmd)
+{
+	if(HIDO_NULL == _pcATCmd)
+	{
+		return HIDO_ERR;
+	}
+
+	l_bRunATCmd = HIDO_TRUE;
+	HIDO_UtilSnprintf(l_acRunATCmdBuff, sizeof(l_acRunATCmdBuff), _pcATCmd);
+
+    return HIDO_OK;
+}

--
Gitblit v1.9.3