//
|
// Created by YY on 2020/1/7.
|
//
|
|
#include "comm_if.h"
|
#include "../native-lib.h"
|
|
#include "../rapidjson/document.h"
|
#include "../rapidjson/writer.h"
|
#include "../rapidjson/stringbuffer.h"
|
#include "../rtk_platform/platform.h"
|
#include "../utils/xconvert.h"
|
|
#include <string>
|
#include <iostream>
|
|
using namespace rapidjson;
|
|
#define ID_SM_NDK_START 0x0001
|
#define ID_SM_REQ_RTK_PLAT_CFG 0x0002
|
#define ID_MS_RTK_PLAT_CFG 0x8002
|
#define ID_SM_RTK_PLAT_CONN 0x0003
|
#define ID_SM_RTK_PLAT_REG 0x0004
|
#define ID_SM_RTK_PLAT_LOGIN 0x0005
|
|
void MA_NdkStart(void)
|
{
|
SendMsgToMainProc(ID_SM_NDK_START, NULL);
|
}
|
|
void MA_ReqRtkPlatformConfig(void)
|
{
|
SendMsgToMainProc(ID_SM_REQ_RTK_PLAT_CFG, NULL);
|
}
|
|
void MA_RtkPlatformConnect(int conn, const char *ip, int port)
|
{
|
StringBuffer sb;
|
Writer<StringBuffer> writer(sb);
|
|
writer.StartObject();
|
writer.Key("connected");
|
writer.Int(conn);
|
writer.Key("ip");
|
writer.String(ip);
|
writer.Key("port");
|
writer.Int(port);
|
|
writer.EndObject();
|
|
SendMsgToMainProc(ID_SM_RTK_PLAT_CONN, sb.GetString());
|
}
|
|
void MA_RtkPlatformRegister(int reg, const uint8_t *pwd, int length)
|
{
|
StringBuffer sb;
|
Writer<StringBuffer> writer(sb);
|
|
writer.StartObject();
|
writer.Key("register_code");
|
writer.Int(reg);
|
|
if (reg == 0 && length > 0) {
|
writer.Key("password");
|
char *str = new char[length*2 + 1];
|
ConvertHex2String(str, pwd, length);
|
writer.String(str);
|
delete[]str;
|
}
|
|
writer.EndObject();
|
|
SendMsgToMainProc(ID_SM_RTK_PLAT_REG, sb.GetString());
|
}
|
|
void MA_RtkPlatformLogin(int login)
|
{
|
StringBuffer sb;
|
Writer<StringBuffer> writer(sb);
|
|
writer.StartObject();
|
|
writer.Key("password");
|
writer.Int(login);
|
|
writer.EndObject();
|
|
SendMsgToMainProc(ID_SM_RTK_PLAT_LOGIN, sb.GetString());
|
}
|
|
void MA_MainProcMsgEntry(int cmd, const char *value)
|
{
|
switch (cmd) {
|
case ID_MS_RTK_PLAT_CFG: {
|
rtk_platform_cfg_t cfg;
|
memset(&cfg, 0, sizeof(cfg));
|
|
Document d;
|
d.Parse(value);
|
|
if (d.HasMember("ip")) {
|
Value& s = d["ip"];
|
strcpy(cfg.domain_name, s.GetString());
|
}
|
if (d.HasMember("port")) {
|
Value& s = d["port"];
|
cfg.port = s.GetInt();
|
}
|
if (d.HasMember("province")) {
|
Value& s = d["province"];
|
cfg.province = s.GetInt();
|
}
|
if (d.HasMember("city")) {
|
Value& s = d["city"];
|
cfg.city = s.GetInt();
|
}
|
if (d.HasMember("model")) {
|
Value& s = d["model"];
|
strcpy(cfg.device_model, s.GetString());
|
}
|
if (d.HasMember("sn")) {
|
Value& s = d["sn"];
|
strcpy(cfg.device_sn, s.GetString());
|
}
|
if (d.HasMember("imei")) {
|
Value& s = d["imei"];
|
strcpy(cfg.imei, s.GetString());
|
}
|
if (d.HasMember("phone")) {
|
Value& s = d["phone"];
|
strcpy(cfg.phone, s.GetString());
|
}
|
if (d.HasMember("password")) {
|
Value& s = d["password"];
|
strcpy(cfg.password, s.GetString());
|
}
|
if (d.HasMember("registered")) {
|
Value& s = d["registered"];
|
cfg.registered = s.GetInt();
|
}
|
if (d.HasMember("interval")) {
|
Value& s = d["interval"];
|
cfg.rtk_interval = s.GetInt();
|
}
|
|
ConfigPlatform(&cfg);
|
break;
|
}
|
}
|
}
|