| | |
| | | |
| | | #include <string> |
| | | #include <iostream> |
| | | #include <vector> |
| | | |
| | | using namespace rapidjson; |
| | | using namespace std; |
| | | |
| | | #define ID_SM_NDK_START 0x0001 |
| | | #define ID_SM_REQ_RTK_PLAT_CFG 0x0002 |
| | |
| | | #define ID_SM_EXAM_STATUS 0x0009 |
| | | #define ID_SM_GPS_BRIEF 0x000A |
| | | #define ID_SM_RTK_BRIEF 0x000B |
| | | #define ID_SM_EXAM_BRIEF 0x000B |
| | | #define ID_SM_EXAM_BRIEF 0x000C |
| | | |
| | | void MA_NdkStart(void) |
| | | { |
| | |
| | | void MA_ReadSensor(void) |
| | | { |
| | | SendMsgToMainProc(ID_SM_READ_SENSOR_CFG, NULL); |
| | | } |
| | | |
| | | void MA_SendExamStatus(int start, int errorCode) |
| | | { |
| | | StringBuffer sb; |
| | | Writer<StringBuffer> writer(sb); |
| | | |
| | | writer.StartObject(); |
| | | |
| | | writer.Key("exam"); |
| | | writer.Int(start); |
| | | writer.Key("error"); |
| | | writer.Int(errorCode); |
| | | |
| | | writer.EndObject(); |
| | | |
| | | SendMsgToMainProc(ID_SM_EXAM_STATUS, sb.GetString()); |
| | | } |
| | | |
| | | void MA_SendGpsBrief(const struct gpsBrief *brief) |
| | | { |
| | | StringBuffer sb; |
| | | Writer<StringBuffer> writer(sb); |
| | | |
| | | writer.StartObject(); |
| | | |
| | | writer.Key("utc"); |
| | | writer.String(brief->utc); |
| | | writer.Key("sat_num"); |
| | | writer.Int(brief->sat_num); |
| | | writer.Key("qf"); |
| | | writer.Int(brief->qf); |
| | | writer.Key("latitude"); |
| | | writer.Double(brief->latitude); |
| | | writer.Key("longitude"); |
| | | writer.Double(brief->longitude); |
| | | writer.Key("altitude"); |
| | | writer.Double(brief->altitude); |
| | | writer.Key("speed"); |
| | | writer.Double(brief->speed); |
| | | |
| | | writer.EndObject(); |
| | | |
| | | SendMsgToMainProc(ID_SM_GPS_BRIEF, sb.GetString()); |
| | | } |
| | | |
| | | void MA_SendRtkBrief(const struct rtkBrief *brief) |
| | | { |
| | | char a[2] = {brief->coord_x_dir, 0}; |
| | | char b[2] = {brief->coord_y_dir, 0}; |
| | | |
| | | StringBuffer sb; |
| | | Writer<StringBuffer> writer(sb); |
| | | |
| | | writer.StartObject(); |
| | | |
| | | writer.Key("utc"); |
| | | writer.String(brief->utc); |
| | | writer.Key("qf"); |
| | | writer.Int(brief->qf); |
| | | writer.Key("coord_x"); |
| | | writer.Double(brief->coord_x); |
| | | writer.Key("coord_x_dir"); |
| | | writer.String(a); |
| | | writer.Key("coord_y"); |
| | | writer.Double(brief->coord_y); |
| | | writer.Key("coord_y_dir"); |
| | | writer.String(b); |
| | | writer.Key("heading"); |
| | | writer.Double(brief->heading); |
| | | writer.Key("pitch"); |
| | | writer.Double(brief->pitch); |
| | | writer.Key("roll"); |
| | | writer.Double(brief->roll); |
| | | writer.EndObject(); |
| | | |
| | | SendMsgToMainProc(ID_SM_RTK_BRIEF, sb.GetString()); |
| | | } |
| | | |
| | | void MA_SendExamWrong(vector<int>&err) |
| | | { |
| | | |
| | | } |
| | | |
| | | void MA_MainProcMsgEntry(int cmd, const char *value) |
| | |
| | | break; |
| | | } |
| | | case ID_MS_START_EXAM: { |
| | | |
| | | Document doc; |
| | | doc.Parse(value); |
| | | if (!doc.HasParseError()) { |
| | | if (doc.HasMember("exam")) { |
| | | Value& s = doc["exam"]; |
| | | StartDriverExam(s.GetInt()); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | default:break; |