blob: 097738ae8d3e592fa94b533c20fa3e7409793dac [file] [log] [blame]
#include "apparms_config_example.h"
#include "apparms_util.h"
#ifdef ARMS_SUPPORT_ARGV
#include "apparms_argv.h"
#endif
#ifdef ARMS_BOARD_EXAMPLE
static ARMSCFGFUNLIST arms_example_cfgfun_pointer =
{
arms_config_example_get_imei,
arms_config_example_get_sn,
arms_config_example_get_networkst,
#ifdef ARMS_SUPPORT_DM
arms_config_example_get_dm_mode_cfg,
arms_config_example_get_dm_tlv_cfg,
arms_config_example_get_dm_push_rsp_tlv_cfg,
arms_config_example_get_dm_notification_tlv_cfg,
#ifdef ARMS_DM_UDP
arms_config_example_get_dm_udp_cfg,
#endif
#ifdef ARMS_DM_MQTT
arms_config_example_get_dm_mqtt_cfg,
#endif
#ifdef ARMS_DM_LWM2M
arms_config_example_get_dm_lwm2m_cfg,
#endif
#ifdef ARMS_DM_IPC
arms_config_example_get_dm_ipc_cfg,
#endif
#ifdef ARMS_DM_RPC
arms_config_example_get_dm_rpc_cfg,
#endif
#endif
#ifdef ARMS_SUPPORT_FOTA
#ifdef ARMS_FOTA_HTTP
arms_config_example_get_http_cfg,
#endif
arms_config_example_get_fota_mode_cfg,
arms_config_example_get_fota_tlv_cfg,
#endif
#ifdef ARMS_SUPPORT_EC2
arms_config_example_get_ec2_cfg,
#endif
arms_config_example_init,
arms_config_example_uninit
};
PARMSCFGFUNLIST arms_config_example_get_cfgfun_pointer(void)
{
return &arms_example_cfgfun_pointer;
}
int arms_config_example_get_imei(unsigned char *pDMIMEI, unsigned char* pIMEI)
{
char szIMEI[32] = {0};
#if 0
#ifdef ARMS_SUPPORT_ARGV
if (arms_argv_get_imei(szIMEI, sizeof(szIMEI)) <= 0)
#endif
{
#if defined(ARMS_DM_MQTT)
#ifdef ARMS_AUTH_X509
strcpy(szIMEI, "920000000000051");
#else
strcpy(szIMEI, "990000000000053");
#endif
#elif defined(ARMS_DM_LWM2M)
strcpy(szIMEI, "930000000000151");
#else
strcpy(szIMEI, "998199055256418");
#endif
}
#endif
cfg_get_item("imei", szIMEI, sizeof(szIMEI));
printf("****arms_config_example_get_imei imei=[%s]\n", szIMEI);
if (pDMIMEI != NULL)
{
strcpy((char *)pDMIMEI, "0");
strcat((char *)pDMIMEI, szIMEI);
}
if (pIMEI != NULL)
{
strcpy((char *)pIMEI, szIMEI);
}
return 0;
}
int arms_config_example_get_sn(unsigned char *pSN)
{
char szSN[32] = {0};
strcpy(szSN, "123456789012345");
if (pSN != NULL)
{
strcpy((char *)pSN, szSN);
}
return 0;
}
int arms_config_example_get_networkst(char *pIPAddr)
{
int ret = -3;
char buf[32] = {0};
char wan_ipaddr[32] = {0};
if (pIPAddr == NULL)
return -1;
#if 0
#ifdef ARMS_SUPPORT_ARGV
if (arms_argv_get_intf(szIntf, sizeof(szIntf)) <= 0)
#endif
{
strcpy(szIntf, ARMS_DM_WAN_IF);
}
ret = arms_util_get_if_ip(szIntf, pIPAddr);
if ((ret >= 0) && (strcmp(pIPAddr, "0.0.0.0") == 0))
{
ret = -3;
}
#endif
cfg_get_item("ppp_status", buf, sizeof(buf));
if (0 == strcmp(buf, "ppp_connected"))
{
cfg_get_item("wan_ipaddr", wan_ipaddr, sizeof(wan_ipaddr));
strcpy(pIPAddr, wan_ipaddr);
ret = 0;
}
return ret;
}
int arms_config_example_init(void)
{
return 0;
}
int arms_config_example_uninit(void)
{
return 0;
}
#ifdef ARMS_SUPPORT_DM
int arms_config_example_get_dm_mode_cfg(PDMCOMMCFG pDMCommCfg)
{
if (pDMCommCfg == NULL)
return -1;
#if defined(ARMS_DM_MQTT)
pDMCommCfg->emCommMode = ARMS_DM_COMM_MQTT;
#ifdef ARMS_AUTH_X509
pDMCommCfg->emAuthMode = ARMS_DM_AUTH_CERT;
#else
pDMCommCfg->emAuthMode = ARMS_DM_AUTH_KEY;
#endif
#elif defined(ARMS_DM_LWM2M)
pDMCommCfg->emCommMode = ARMS_DM_COMM_LWM2M;
#else
pDMCommCfg->emCommMode = ARMS_DM_COMM_UDP;
#endif
pDMCommCfg->nReportPeriod = ARMS_DM_REPORT_INTERVAL; //Report DM telemetry for every 60 seconds
#ifdef ARMS_SUPPORT_ARGV
if (arms_argv_get_dm(&pDMCommCfg->unHWId, (char *)pDMCommCfg->szKey, sizeof(pDMCommCfg->szKey)) <= 0)
#endif
{
#if defined(ARMS_DM_MQTT)
#ifdef ARMS_AUTH_X509
pDMCommCfg->unHWId = 5168;
strcpy((char *)pDMCommCfg->szKey, "feb3aed743e74f45b718de349f0774e1");
#else
pDMCommCfg->unHWId = ARMS_DM_ACCESS_ID_MQTT;
strcpy((char *)pDMCommCfg->szKey, ARMS_DM_ACCESS_PW_MQTT);
#endif
#elif defined(ARMS_DM_LWM2M)
pDMCommCfg->unHWId = ARMS_DM_ACCESS_ID_LWM2M;
strcpy((char *)pDMCommCfg->szKey, ARMS_DM_ACCESS_PW_LWM2M);
#else
pDMCommCfg->unHWId = ARMS_DM_ACCESS_ID_UDP;
strcpy((char *)pDMCommCfg->szKey, ARMS_DM_ACCESS_PW_UDP);
#endif
}
return 0;
}
int arms_config_example_get_dm_tlv_cfg(PDMTLVCFG pDMTLVCfg)
{
if (pDMTLVCfg == NULL)
return -1;
//pDMTLVCfg->emDMTLVMask = 0xFFFFF & ~ARMS_DM_TLV_COMM_RSPMSG & ~ARMS_DM_TLV_COMM_WARNMSG;
pDMTLVCfg->emDMTLVMask = ARMS_DM_TLV_COMM_VERSION | ARMS_DM_TLV_COMM_TOKEN;
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA1; //SW Ver
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA2; //Inner Ver
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA3; //RSRP
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA4; //RSRQ
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA5; //RSSI
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA6; //SINR
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA7; //Carrier
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA8; //GCI
pDMTLVCfg->emDMTLVGenMask = 0x1FFFF;
pDMTLVCfg->emDMTLVVerMask = ARMS_DM_TLV_VER_HID | ARMS_DM_TLV_VER_MCU;
pDMTLVCfg->emDMTLVEXTVerMask = ARMS_DM_TLV_EXTVER_MCU2;
pDMTLVCfg->emDMTLVDMReportMask = 0x7F;
return 0;
}
int arms_config_example_get_dm_push_rsp_tlv_cfg(PDMTLVCFG pDMTLVCfg)
{
if (pDMTLVCfg == NULL)
return -1;
pDMTLVCfg->emDMTLVMask = ARMS_DM_TLV_COMM_VERSION | ARMS_DM_TLV_COMM_TOKEN | ARMS_DM_TLV_COMM_RSPMSG;
pDMTLVCfg->emDMTLVGenMask = 0x00000;
pDMTLVCfg->emDMTLVVerMask = ARMS_DM_TLV_VER_HID;
pDMTLVCfg->emDMTLVEXTVerMask = 0x00;
pDMTLVCfg->emDMTLVDMReportMask = 0x00;
return 0;
}
int arms_config_example_get_dm_notification_tlv_cfg(PDMTLVCFG pDMTLVCfg)
{
if (pDMTLVCfg == NULL)
return -1;
pDMTLVCfg->emDMTLVMask = ARMS_DM_TLV_COMM_VERSION | ARMS_DM_TLV_COMM_TOKEN | ARMS_DM_TLV_COMM_WARNMSG;
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA1; //SW Ver
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA2; //Inner Ver
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA3; //RSRP
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA4; //RSRQ
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA5; //RSSI
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA6; //SINR
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA7; //Carrier
pDMTLVCfg->emDMTLVMask |= ARMS_DM_TLV_COMM_CUSDATA8; //GCI
pDMTLVCfg->emDMTLVGenMask = 0x00000;
pDMTLVCfg->emDMTLVVerMask = ARMS_DM_TLV_VER_HID;
pDMTLVCfg->emDMTLVEXTVerMask = 0x00;
pDMTLVCfg->emDMTLVDMReportMask = 0x00;
return 0;
}
#ifdef ARMS_DM_UDP
int arms_config_example_get_dm_udp_cfg(PUDPCFG pUDPCfg)
{
if (pUDPCfg == NULL)
return -1;
pUDPCfg->nUDPPort = 9000;
#ifdef ARMS_SUPPORT_ARGV
if (arms_argv_get_udp_url(pUDPCfg->szUDPAddr, sizeof(pUDPCfg->szUDPAddr)) <= 0)
#endif
{
strcpy(pUDPCfg->szUDPAddr, ARMS_DM_SRV_UDP_ADDR);
}
return 0;
}
#endif
#ifdef ARMS_DM_MQTT
int arms_config_example_get_dm_mqtt_cfg(PMQTTCFG pMQTTCfg,PDMCOMMCFG pDMCommCfg)
{
unsigned char *p = NULL;
if (pMQTTCfg == NULL)
return -1;
#ifdef ARMS_SUPPORT_ARGV
if (arms_argv_get_mqtt_url(pMQTTCfg->szMQTTAddr, sizeof(pMQTTCfg->szMQTTAddr)) <= 0)
#endif
{
strcpy(pMQTTCfg->szMQTTAddr,ARMS_DM_SRV_MQTT_ADDR);
}
pMQTTCfg->nMQTTLiveTM = 180;
#ifdef ARMS_AUTH_X509
pMQTTCfg->nMQTTPort = 8099;
#else
pMQTTCfg->nMQTTPort = 8089;
#endif
p = pDMCommCfg->szIMEI + 1;
sprintf(pMQTTCfg->szUserName,"%ld_%s",pDMCommCfg->unHWId,p);
#ifdef ARMS_AUTH_X509
strcpy(pMQTTCfg->szPassWord,"123456");
strcpy(pMQTTCfg->szCaCert,"./certs/ca-cert.pem");
strcpy(pMQTTCfg->szClientCert,"./certs/client-cert.pem");
strcpy(pMQTTCfg->szClientKey,"./certs/client-key.pem");
#else
strcpy(pMQTTCfg->szPassWord,(char *)pDMCommCfg->szKey);
#endif
return 0;
}
#endif
#ifdef ARMS_DM_LWM2M
int arms_config_example_get_dm_lwm2m_cfg(PLWM2MCFG pLWM2MCfg,PDMCOMMCFG pDMCommCfg)
{
unsigned char *p = NULL;
if (pLWM2MCfg == NULL)
return -1;
#ifdef ARMS_SUPPORT_ARGV
if (arms_argv_get_lwm2m_url(pLWM2MCfg->szLwM2MAddr, sizeof(pLWM2MCfg->szLwM2MAddr)) <= 0)
#endif
{
strcpy(pLWM2MCfg->szLwM2MAddr,ARMS_DM_SRV_LWM2M_ADDR);
}
pLWM2MCfg->nLwM2MPort = 5683;
p = pDMCommCfg->szIMEI + 1;
sprintf(pLWM2MCfg->szEndpointName,"%s",p);
return 0;
}
#endif
#ifdef ARMS_DM_IPC
int arms_config_example_get_dm_ipc_cfg(PDMIPCCFG pIPCCfg)
{
memset(pIPCCfg, 0, sizeof(DMIPCCFG));
pIPCCfg->enable = 1;
strcpy(pIPCCfg->intf[0], ARMS_DM_WAN_IF);
pIPCCfg->nPort = ARMS_DM_IPC_LISTEN_PORT;
pIPCCfg->uMaxclient = ARMS_DM_IPC_MAX_CLIENT;
pIPCCfg->mtimeout = ARMS_DM_IPC_CLOSE_TIME;
pIPCCfg->bUnixMode = 0;
pIPCCfg->bDynamicOpen = 1;
return 0;
}
#endif
#ifdef ARMS_DM_RPC
int arms_config_example_get_dm_rpc_cfg(PDMRPCCFG pRPCCfg)
{
memset(pRPCCfg, 0, sizeof(DMRPCCFG));
pRPCCfg->bRPC = 1;
#ifdef ARMS_DM_RPC_UNX_MODE
pRPCCfg->bRPCUnixMode = 1;
strcpy(pRPCCfg->szRPCUnix, ARMS_DM_RPC_UNIX_PATH);
#else
pRPCCfg->bRPCUnixMode = 0;
strcpy(pRPCCfg->szRPCTCPSrv, "127.0.0.1");
pRPCCfg->nRPCTCPPort = ARMS_DM_RPC_TCP_PORT;
#endif
pRPCCfg->mRPCTimeout = 300*1000;
return 0;
}
#endif
#endif
#ifdef ARMS_SUPPORT_FOTA
int arms_config_example_get_fota_mode_cfg(PFOTACOMMCFG pFOTACommCfg)
{
if (pFOTACommCfg == NULL)
return -1;
#if defined(ARMS_FOTA_HTTP)
pFOTACommCfg->emCommMode = ARMS_FOTA_COMM_HTTP_HTTPS;
#endif
pFOTACommCfg->nCheckPeriod = ARMS_FOTA_CHECK_INTERVAL; //Check fota for every 30 seconds
return 0;
}
int arms_config_example_get_fota_tlv_cfg(PFOTATLVCFG pFOTATLVCfg)
{
if (pFOTATLVCfg == NULL)
return -1;
return 0;
}
#ifdef ARMS_FOTA_HTTP
int arms_config_example_get_http_cfg(PHTTPCFG pHTTPCfg)
{
if (pHTTPCfg == NULL)
return -1;
#ifdef ARMS_FOTA_HTTPS
#ifdef ARMS_SUPPORT_ARGV
if (arms_argv_get_fota_url(1, pHTTPCfg->szAddr, sizeof(pHTTPCfg->szAddr)) <= 0)
#endif
{
strcpy(pHTTPCfg->szAddr,ARMS_FOTA_SRV_HTTPS_ADDR);
}
pHTTPCfg->nPort = 443;
#else
#ifdef ARMS_SUPPORT_ARGV
if (arms_argv_get_fota_url(0, pHTTPCfg->szAddr, sizeof(pHTTPCfg->szAddr)) <= 0)
#endif
{
strcpy(pHTTPCfg->szAddr,ARMS_FOTA_SRV_HTTP_ADDR);
}
pHTTPCfg->nPort = 80;
#endif
strcpy(pHTTPCfg->szDownFilePath,ARMS_FOTA_DOWNLOAD_PATH);
#ifdef ARMS_SUPPORT_ARGV
if (arms_argv_get_fota(pHTTPCfg->szProdID, sizeof(pHTTPCfg->szProdID),
pHTTPCfg->szPassword, sizeof(pHTTPCfg->szPassword)) <= 0)
#endif
{
strcpy(pHTTPCfg->szProdID,ARMS_FOTA_ACCESS_ID);
strcpy(pHTTPCfg->szPassword,ARMS_FOTA_ACCESS_PW);
}
return 0;
}
#endif
#endif
#ifdef ARMS_SUPPORT_EC2
int arms_config_example_get_ec2_cfg(PEC2CFG pEC2Cfg)
{
if (pEC2Cfg == NULL)
return -1;
strcpy(pEC2Cfg->stHttpCfg.szAddr,ARMS_EC2_SRV_HTTP_ADDR);
pEC2Cfg->stHttpCfg.nPort = 80;
sprintf(pEC2Cfg->stHttpCfg.szProdID,"%d",ARMS_EC2_ACCESS_ID);
strcpy(pEC2Cfg->szHttpRspPath,ARMS_EC2_HTTP_RSP_PATH);
return 0;
}
#endif
#endif