Blame view

src/demo/demo.cpp 11.5 KB
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
1
2
3
4
5
6
7
  #include "../ai_platform/stl_aiplatform.h"
  #include <chrono>
  #include <thread>
  #include <stdio.h>
  #include <string.h>
  #include <stdlib.h>
  #include <unistd.h>
ffd1e48a   Hu Chunming   实现结果回调,完成第一版
8
  #include <iostream>
1fa39585   Hu Chunming   输出结果优化
9
10
  #include <fstream>
  #include <string>
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
11
  
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
12
13
14
15
16
17
  #include "opencv2/opencv.hpp"
  #include "opencv2/imgcodecs/legacy/constants_c.h"
  #include "opencv2/imgproc/types_c.h"
  
  #include "demo_util.hpp"
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
18
  using namespace std;
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
19
  using namespace cv;
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
20
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
21
22
23
24
25
26
27
  
  static long long get_cur_time(){
      chrono::time_point<chrono::system_clock, chrono::milliseconds> tpMicro
          = chrono::time_point_cast<chrono::milliseconds>(chrono::system_clock::now());
      return tpMicro.time_since_epoch().count();
  }
  
881ac79d   Hu Chunming   代码调通,结果正常输出
28
29
  string get_ipc_url(int gi){
    string ipc_url = "/data/share/data/Street.uvf";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
30
31
    switch(gi){
      case 0:
881ac79d   Hu Chunming   代码调通,结果正常输出
32
        ipc_url = "rtsp://admin:admin@123456@192.168.60.176:554/cam/realmonitor?channel=1&subtype=0";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
33
34
        break;
      case 1:
881ac79d   Hu Chunming   代码调通,结果正常输出
35
        ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ==";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
36
37
        break;
      case 2:
881ac79d   Hu Chunming   代码调通,结果正常输出
38
        ipc_url = "rtsp://admin:ad123456@192.168.10.166:554/cam/realmonitor?channel=1&subtype=0";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
39
40
        break;
      case 3:
881ac79d   Hu Chunming   代码调通,结果正常输出
41
42
        ipc_url = "rtsp://122.97.218.170:8604/openUrl/LBBYTra?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiOTgzYjRjMmUxMThlNGU1OTlkYThmMTI3NTkyMGViODV8MXwwfDEiLCJ0IjoxfQ==";
        // ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ==";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
43
44
        break;
      case 4:
881ac79d   Hu Chunming   代码调通,结果正常输出
45
        ipc_url = "/data/share/data/Street.uvf";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
46
47
        break;
      case 5:
881ac79d   Hu Chunming   代码调通,结果正常输出
48
        ipc_url = "/data/share/data/公安局老桥头_CVR15F89410_1465819864_1B.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
49
50
        break;
      case 6:
881ac79d   Hu Chunming   代码调通,结果正常输出
51
        ipc_url = "/data/share/data/不带头盔2.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
52
53
        break;
      case 7:
881ac79d   Hu Chunming   代码调通,结果正常输出
54
        ipc_url = "/data/share/data/hczr1.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
55
56
        break;
      case 8:
881ac79d   Hu Chunming   代码调通,结果正常输出
57
        ipc_url = "/data/share/data/燕高路口高点_CVR_2015-12-30_09-00-00_2015-12-30.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
58
59
        break;
      case 9:
881ac79d   Hu Chunming   代码调通,结果正常输出
60
61
        // ipc_url = "/opt/share/data/1-00000002d55_h265.mp4";
        ipc_url = "/data/share/data/duan1.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
62
63
        break;
      case 10:
881ac79d   Hu Chunming   代码调通,结果正常输出
64
        ipc_url = "/data/share/data/gs1-00000001.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
65
66
        break;
      case 11:
881ac79d   Hu Chunming   代码调通,结果正常输出
67
        ipc_url = "/data/share/data/98.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
68
69
        break;
      case 12:
881ac79d   Hu Chunming   代码调通,结果正常输出
70
        ipc_url = "/data/share/data/AV_12345_1_20230108110849847_D_1673147329847729.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
71
72
        break;
      case 13:
881ac79d   Hu Chunming   代码调通,结果正常输出
73
        ipc_url = "/data/share/data/nx_1-00000002.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
74
75
        break;
      case 14:
881ac79d   Hu Chunming   代码调通,结果正常输出
76
        ipc_url = "/data/share/data/nx1-0000001.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
77
78
        break;
      case 15:
881ac79d   Hu Chunming   代码调通,结果正常输出
79
        ipc_url = "/data/share/data/nx1-00000002.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
80
81
        break;
      case 16:
881ac79d   Hu Chunming   代码调通,结果正常输出
82
        ipc_url = "/data/share/data/Street.uvf";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
83
84
        break;
      case 17:
881ac79d   Hu Chunming   代码调通,结果正常输出
85
        ipc_url = "/data/share/data/xiancun.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
86
87
        break;
      case 18:
881ac79d   Hu Chunming   代码调通,结果正常输出
88
        ipc_url = "rtsp://192.168.60.146:8554/w_1_out";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
89
90
        break;
      case 19:
881ac79d   Hu Chunming   代码调通,结果正常输出
91
        ipc_url = "/data/share/data/42_44.avi";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
92
93
        break;
      case 20:
881ac79d   Hu Chunming   代码调通,结果正常输出
94
        ipc_url = "/data/share/data/37_70.avi";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
95
96
        break;
      case 21:
881ac79d   Hu Chunming   代码调通,结果正常输出
97
        ipc_url = "/data/share/data/192_25.avi";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
98
99
        break;
      case 22:
881ac79d   Hu Chunming   代码调通,结果正常输出
100
        ipc_url = "/data/share/data/31_4.avi";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
101
102
        break;
      case 23:
881ac79d   Hu Chunming   代码调通,结果正常输出
103
        ipc_url = "/data/share/data/146_192.avi";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
104
105
        break;
      case 24:
881ac79d   Hu Chunming   代码调通,结果正常输出
106
        ipc_url = "/data/share/data/146_187.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
107
108
109
        break;
      case 25:
        // 公安内网
881ac79d   Hu Chunming   代码调通,结果正常输出
110
        ipc_url = "rtsp://192.168.51.200:8554/320202202308231001001002";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
111
112
113
        break;
      case 26:
        // FFmpeg生成的解码错误数据流
881ac79d   Hu Chunming   代码调通,结果正常输出
114
        ipc_url = "rtsp://192.168.10.4:8554/street";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
115
116
        break;
      case 27:
881ac79d   Hu Chunming   代码调通,结果正常输出
117
        ipc_url = "/data/share/data/Street_4k_265.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
118
119
        break;
      case 28:
881ac79d   Hu Chunming   代码调通,结果正常输出
120
        ipc_url = "http://192.168.60.179:10016/公安局老桥头_CVR15F89410_1465819864_1B.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
121
122
        break;
      case 29:
881ac79d   Hu Chunming   代码调通,结果正常输出
123
        ipc_url = "http://192.168.60.179:10016/不带头盔2.mp4";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
124
125
        break;
      case 30:
881ac79d   Hu Chunming   代码调通,结果正常输出
126
        ipc_url = "/data/share/data/149_45.avi";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
127
128
        break;
      case 31:
881ac79d   Hu Chunming   代码调通,结果正常输出
129
        ipc_url = "/data/share/data/146_88.avi";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
130
131
        break;
      case 32:
881ac79d   Hu Chunming   代码调通,结果正常输出
132
        ipc_url = "/data/share/data/141_74.avi";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
133
134
        break;
      default:
881ac79d   Hu Chunming   代码调通,结果正常输出
135
        ipc_url = "/data/share/data/Street.uvf";
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
136
137
        break;
    }
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
138
  
881ac79d   Hu Chunming   代码调通,结果正常输出
139
    return ipc_url;
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
140
141
  }
  
881ac79d   Hu Chunming   代码调通,结果正常输出
142
  static int nTaskId = 0;
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
143
  
881ac79d   Hu Chunming   代码调通,结果正常输出
144
  string createTask(void *handle, int gi, bool bFlag = true){
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
145
146
    task_param tparam;
  
881ac79d   Hu Chunming   代码调通,结果正常输出
147
    tparam.ipc_url = get_ipc_url(gi);
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
148
149
150
151
  
    if (bFlag){
      nTaskId = gi;
    }
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
152
    std::string task_id_str = "test_task_id_" + std::to_string(nTaskId);
9e3f3176   Hu Chunming   修复关闭任务崩溃的问题
153
    tparam.task_id = task_id_str;
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
154
155
    nTaskId++;
  
881ac79d   Hu Chunming   代码调通,结果正常输出
156
157
    tparam.result_folder_little = "./res";         //目标快照抠图保存地址
  	tparam.result_folder = "./res";                //目标快照大图保存地址
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
158
159
160
161
  
    const int result_code = add_task(handle, tparam);
    if (result_code != 0)
      printf("[Error]: ");
9e3f3176   Hu Chunming   修复关闭任务崩溃的问题
162
    printf("--- task_id: %s result code: %d\n", tparam.task_id.c_str(), result_code);
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
163
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
164
165
166
    return task_id_str;
  }
  
ffd1e48a   Hu Chunming   实现结果回调,完成第一版
167
168
  void show_result(ObjectData obj)
  {
1fa39585   Hu Chunming   输出结果优化
169
170
171
172
173
174
175
    string str_dir = "./res/result/";
    string file_name = obj.task_id + "_" + to_string(obj.object_id) + "_" + obj.str_ts_ms;
    string data_file_name =  str_dir + file_name + ".txt";
    std::ofstream res_file(data_file_name);
  
    res_file << obj.task_id << "  " << obj.task_frame_count << endl;
    res_file << obj.index << " " << obj.object_id << " " << obj.left << " " << obj.top << " " << obj.right << " " << obj.bottom << " " << obj.confidence << endl;
e721ea0f   Hu Chunming   删除无用的三方库
176
  
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
177
178
179
180
181
182
    cv::Mat image = cv::imread(obj.ori_pic_path);
  
    cv::Rect rc(obj.left, obj.top,obj.right - obj.left, obj.bottom - obj.top);
    const cv::Scalar color(0, 0, 255);
    cv::rectangle(image, rc, color);
  
e721ea0f   Hu Chunming   删除无用的三方库
183
184
    if (obj.index == 0)
    {// person
1fa39585   Hu Chunming   输出结果优化
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
      res_file << "person:" << endl;
      res_file << "hair: " << hair[obj.hp_cls[0].res_index] << " " << obj.hp_cls[0].res_prob << endl;
      res_file << "hair_color: " << hair_color[obj.hp_cls[1].res_index] << " " << obj.hp_cls[1].res_prob << endl;
      res_file << "eye_glass: " << eye_glass[obj.hp_cls[2].res_index] << " " << obj.hp_cls[2].res_prob << endl;
      res_file << "mask: " << mask[obj.hp_cls[3].res_index] << " " << obj.hp_cls[3].res_prob << endl;
      res_file << "up cloth: " << up_cloth[obj.hp_cls[4].res_index] << " " << obj.hp_cls[4].res_prob << endl;
      res_file << "up_cloth_color: " << up_cloth_color[obj.hp_cls[5].res_index] << " " << obj.hp_cls[5].res_prob << endl;
      res_file << "clothing context: " << clothing_text[obj.hp_cls[6].res_index] << " " << obj.hp_cls[6].res_prob << endl;
      res_file << "down cloth: " << down_cloth[obj.hp_cls[7].res_index] << " " << obj.hp_cls[7].res_prob << endl;
      res_file << "down cloth color: " << down_cloth_color[obj.hp_cls[8].res_index] << " " << obj.hp_cls[8].res_prob << endl;
      res_file << "bag: " << bag[obj.hp_cls[9].res_index] << " " << obj.hp_cls[9].res_prob << endl;
      res_file << "sex: " << sex[obj.hp_cls[10].res_index] << " " << obj.hp_cls[10].res_prob << endl;
      res_file << "age: " << age[obj.hp_cls[11].res_index] << " " << obj.hp_cls[11].res_prob << endl;
      res_file << "viewpoint: " << viewpoint[obj.hp_cls[12].res_index] << " " << obj.hp_cls[12].res_prob << endl;
      res_file << "umbrella: " << umbrella[obj.hp_cls[13].res_index] << " " << obj.hp_cls[13].res_prob << endl;
      res_file << "hold_baby: " << hold_baby[obj.hp_cls[14].res_index] << " " << obj.hp_cls[14].res_prob << endl;
      res_file << "person state: " << personstate[obj.hp_cls[15].res_index] << " " << obj.hp_cls[15].res_prob << endl;
  
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
203
204
205
      for (size_t i = 0; i < HUMANREID_FEATURE_SIZE; i++)
      {
        auto hp_cls = obj.hp_feature[i];
1fa39585   Hu Chunming   输出结果优化
206
        res_file << obj.hp_feature[i] << " ";
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
207
      }
1fa39585   Hu Chunming   输出结果优化
208
      res_file << endl;
e721ea0f   Hu Chunming   删除无用的三方库
209
210
211
    } 
    else if (obj.index >= 4 && obj.index <= 8)
    {// vehicle
1fa39585   Hu Chunming   输出结果优化
212
213
214
215
216
217
      res_file << "vehicle:" << endl;
      if (obj.vehicle_color_index >= 0)
      {
        res_file << "color:" << vehicle_color[obj.vehicle_color_index] << " " << obj.vehicle_color_prob << endl;
      }
      
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
218
219
220
      for (size_t i = 0; i < obj.vec_vpd_cls.size(); i++)
      {
        auto info = obj.vec_vpd_cls[i];
1fa39585   Hu Chunming   输出结果优化
221
222
223
224
        if (info.index >= 0)
        {
          res_file << vechicle_pendant[info.index] << " " << info.confidence << " " << info.left_ << " " << info.top_ << " " << info.width_ << " " << info.height_ << endl;
        }
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
225
226
227
228
229
230
231
  
        cv::Rect rc(info.left_, info.top_, info.width_, info.height_);
        const cv::Scalar color(0, 255, 255);
        cv::rectangle(image, rc, color);
      }
  
      auto& plate_info = obj.vehicle_plate;
1fa39585   Hu Chunming   输出结果优化
232
      res_file << "plate:" << plate_info.left_ << " " << plate_info.top_ << " " << plate_info.width_ << " " << plate_info.height_ << " " << plate_info.detect_score << endl;
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
233
234
235
      cv::Rect rc(plate_info.left_, plate_info.top_, plate_info.width_, plate_info.height_);
      const cv::Scalar color(0, 255, 0);
      cv::rectangle(image, rc, color);
1fa39585   Hu Chunming   输出结果优化
236
      res_file << "plate number:" ;
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
237
238
      for (size_t i = 0; i < 8; i++)
      {
1fa39585   Hu Chunming   输出结果优化
239
        res_file << plate_info.recg[i].character << " " << plate_info.recg[i].maxprob << " ";
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
240
      }
1fa39585   Hu Chunming   输出结果优化
241
242
243
244
      res_file << endl;
      res_file << "num_score:" << plate_info.num_score << endl;
      res_file << "type:" << plate_type[plate_info.type] << endl;
      res_file << "state:" << plate_state[plate_info.state] << " " << plate_info.state_score << endl;
e721ea0f   Hu Chunming   删除无用的三方库
245
    }
1fa39585   Hu Chunming   输出结果优化
246
247
  
    res_file.close();
e721ea0f   Hu Chunming   删除无用的三方库
248
    
1fa39585   Hu Chunming   输出结果优化
249
    string result_path = str_dir + file_name + ".jpg";
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
250
251
    cv::imwrite(result_path, image);
    image.release();
ffd1e48a   Hu Chunming   实现结果回调,完成第一版
252
  }
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
253
254
255
256
  
  void test_gpu(int gpuID){
      tsl_aiplatform_param vptParam;
      vptParam.gpuid = gpuID;
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
257
258
259
260
261
262
263
264
      vptParam.models_dir = ".";
  
      vptParam.log_days = 1;
      vptParam.log_level = AI_LOG_LEVEL_TRACE;
      // vptParam.log_level = AI_LOG_LEVEL_DEBUG;
      vptParam.log_mem = 64 * 1024 * 1024; // 64MB.
      vptParam.log_path = "logs/main.log";
  
ffd1e48a   Hu Chunming   实现结果回调,完成第一版
265
266
      vptParam.result_cbk = show_result;
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
267
268
269
270
271
272
273
274
275
      void *handle;
      int flag = tsl_aiplatform_init(&handle, vptParam);
      if (0 != flag) {
          printf("Init Failed! Error Code: %d\n", flag);
          return;
      } else {
          printf("Init Success\n");
      }
  
1de90182   Hu Chunming   修复特征坐标跟原图坐标不相符的问题
276
277
      CreateResultFolder("./res/result", "");
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
278
279
280
281
282
283
284
285
    // createTask(handle, algor_vec2, 19, false);
    // createTask(handle, algor_vec2, 20, false);
    // createTask(handle, algor_vec2, 21, false);
    // createTask(handle, algor_vec2, 22, false);
    // createTask(handle, algor_vec2, 23, false);
    // createTask(handle, algor_vec2, 24, false);
    // createTask(handle, algor_vec2, 30, false);
    // createTask(handle, algor_vec2, 31, false);
9e3f3176   Hu Chunming   修复关闭任务崩溃的问题
286
    string task_id = createTask(handle, 4, false);
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
287
  
9e3f3176   Hu Chunming   修复关闭任务崩溃的问题
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
    bool bFlag = true;
    while (bFlag){
      char op = getchar();
      switch (op)
      {
        case 'a':
          task_id = createTask(handle, 4, false);
          break;
        case 'c':
          finish_task(handle, task_id, 0);
          break;
        case 'g':
          close_all_task(handle);
          break;
        case 'q':
          close_all_task(handle);
          bFlag = false;
          break;
        default:
          break;
      }
    }
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
310
  
9e3f3176   Hu Chunming   修复关闭任务崩溃的问题
311
    tsl_aiplatform_release(&handle);
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
312
313
  }
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
  int main(int argc, char *argv[]) {
      printf("new test\n");
  
      // if (argc < 4) {
      //   fprintf(stderr, "./xxx 0 2 10 1 ## [start_ai_id, end_ai_id) repeat_num gpu_id\n");
      //   return -1;
      // }
  
      // //! load params.
      // int start_id = atoi(argv[1]);
      // int end_id = atoi(argv[2]);
      // int repeat_num = atoi(argv[3]);
      // int gpuID = atoi(argv[4]);
  
      test_gpu(0);
      // test_gpu(1);
      // test_gpu(2);
      // test_gpu(3);
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
333
334
335
336
337
  
      printf("Done.\n"); 
  
      return 0;
  }