Skip to content

Commit c4ab132

Browse files
authored
Merge pull request #318 from cruise2018/iot_link
remove:oc mqtt v5:remove the bs topic
2 parents 702c123 + 0bd23a6 commit c4ab132

File tree

3 files changed

+373
-4
lines changed

3 files changed

+373
-4
lines changed

iot_link/link_main.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@
4646
#endif
4747

4848

49-
#define CN_LINK_VERSION_MAJOR 1
50-
#define CN_LINK_VERSION_MINOR 3
51-
#define CN_LINK_VERSION_FEATURE 1
49+
#define CN_LINK_VERSION_MAJOR 2
50+
#define CN_LINK_VERSION_MINOR 0
51+
#define CN_LINK_VERSION_FEATURE 0
5252

5353

5454
static char s_link_mainversion[64];

iot_link/oc/oc_mqtt/oc_mqtt_tiny_v5/oc_mqtt_tiny.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ const char *s_new_topic_fmt[]=
108108
"$oc/devices/%s/sys/properties/get/#",
109109
"$oc/devices/%s/sys/shadow/get/response/#",
110110
"$oc/devices/%s/sys/events/down",
111-
"/huawei/v1/devices/%s/command/json", ///< the bootstrap need this topic to do the reboot
112111
};
113112
#define CN_NEW_TOPIC_NUM (sizeof(s_new_topic_fmt)/sizeof(const char *))
114113

Lines changed: 370 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,370 @@
1+
/*----------------------------------------------------------------------------
2+
* Copyright (c) <2018>, <Huawei Technologies Co., Ltd>
3+
* All rights reserved.
4+
* Redistribution and use in source and binary forms, with or without modification,
5+
* are permitted provided that the following conditions are met:
6+
* 1. Redistributions of source code must retain the above copyright notice, this list of
7+
* conditions and the following disclaimer.
8+
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
9+
* of conditions and the following disclaimer in the documentation and/or other materials
10+
* provided with the distribution.
11+
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
12+
* to endorse or promote products derived from this software without specific prior written
13+
* permission.
14+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
16+
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17+
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
18+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20+
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21+
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22+
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23+
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24+
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25+
*---------------------------------------------------------------------------*/
26+
/*----------------------------------------------------------------------------
27+
* Notice of Export Control Law
28+
* ===============================================
29+
* Huawei LiteOS may be subject to applicable export control laws and regulations, which might
30+
* include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
31+
* Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
32+
* applicable export control laws and regulations.
33+
*---------------------------------------------------------------------------*/
34+
/**
35+
* DATE AUTHOR INSTRUCTION
36+
* 2020-02-29 10:35 zhangqianfu The first version
37+
*
38+
*/
39+
40+
#include <stdlib.h>
41+
#include <string.h>
42+
#include <stdio.h>
43+
#include <shell.h>
44+
#include <osal.h>
45+
#include <oc_mqtt_at.h>
46+
#include <oc_mqtt_al.h>
47+
48+
#ifndef CONFIG_OCMQTTDEMOS_ENABLE
49+
50+
51+
52+
#define CN_LOOP_TIMES 1000
53+
54+
#define CN_BS_ID "mqtt_sdk03"
55+
#define CN_BS_PWD "f62fcf47d62c4ed18913"
56+
#define CN_BS_SERVER "119.3.251.30"
57+
#define CN_BS_PORT "8883"
58+
59+
#define CN_HUB_ID "54f107da-f251-436c-af4c-624f33b7d7b6"
60+
#define CN_HUB_PWD "f62fcf47d62c4ed18913"
61+
#define CN_HUB_SERVER "119.3.248.253"
62+
#define CN_HUB_PORT "8883"
63+
64+
65+
#define CN_OC_LIFE_TIME 60
66+
#define CN_PUB_DATA "{\"services\":[{\"service_id\":\"DeviceStatus\",\"properties\":{\"radioValue\":2}}]}"
67+
#define CN_PUB_TOPIC "$oc/devices/54f107da-f251-436c-af4c-624f33b7d7b6/sys/properties/report"
68+
69+
#define CN_SELFSUB_TOPIC "$oc/devices/54f107da-f251-436c-af4c-624f33b7d7b6/user/demo_sub"
70+
#define CN_SELFPUB_TOPIC "$oc/devices/54f107da-f251-436c-af4c-624f33b7d7b6/user/demo_pub"
71+
72+
73+
74+
static const char s_server_ca[] =
75+
"-----BEGIN CERTIFICATE-----\r\n"
76+
"MIID4DCCAsigAwIBAgIJAK97nNS67HRvMA0GCSqGSIb3DQEBCwUAMFMxCzAJBgNV\r\n"
77+
"BAYTAkNOMQswCQYDVQQIEwJHRDELMAkGA1UEBxMCU1oxDzANBgNVBAoTBkh1YXdl\r\n"
78+
"aTELMAkGA1UECxMCQ04xDDAKBgNVBAMTA0lPVDAeFw0xNjA1MDQxMjE3MjdaFw0y\r\n"
79+
"NjA1MDIxMjE3MjdaMFMxCzAJBgNVBAYTAkNOMQswCQYDVQQIEwJHRDELMAkGA1UE\r\n"
80+
"BxMCU1oxDzANBgNVBAoTBkh1YXdlaTELMAkGA1UECxMCQ04xDDAKBgNVBAMTA0lP\r\n"
81+
"VDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJxM9fwkwvxeILpkvoAM\r\n"
82+
"Gdqq3x0G9o445F6Shg3I0xmmzu9Of8wYuW3c4jtQ/6zscuIGyWf06ke1z//AVZ/o\r\n"
83+
"dp8LkuFbBbDXR5swjUJ6z15b6yaYH614Ty/d6DrCM+RaU+FWmxmOon9W/VELu2BB\r\n"
84+
"NXDQHJBSbWrLNGnZA2erk4JSMp7RhHrZ0QaNtT4HhIczFYtQ2lYF+sQJpQMrjoRn\r\n"
85+
"dSV9WB872Ja4DgcISU1+wuWLmS/NKjIvOWW1upS79yu2I4Rxos2mFy9xxz311rGC\r\n"
86+
"Z3X65ejFNzCUrNgf6NEP1N7wB9hUu7u50aA+/56D7EgjeI0gpFytC+a4f6JCPVWI\r\n"
87+
"Lr0CAwEAAaOBtjCBszAdBgNVHQ4EFgQUcGqy59oawLEgMl21//7F5RyABpwwgYMG\r\n"
88+
"A1UdIwR8MHqAFHBqsufaGsCxIDJdtf/+xeUcgAacoVekVTBTMQswCQYDVQQGEwJD\r\n"
89+
"TjELMAkGA1UECBMCR0QxCzAJBgNVBAcTAlNaMQ8wDQYDVQQKEwZIdWF3ZWkxCzAJ\r\n"
90+
"BgNVBAsTAkNOMQwwCgYDVQQDEwNJT1SCCQCve5zUuux0bzAMBgNVHRMEBTADAQH/\r\n"
91+
"MA0GCSqGSIb3DQEBCwUAA4IBAQBgv2PQn66gRMbGJMSYS48GIFqpCo783TUTePNS\r\n"
92+
"tV8G1MIiQCpYNdk2wNw/iFjoLRkdx4va6jgceht5iX6SdjpoQF7y5qVDVrScQmsP\r\n"
93+
"U95IFcOkZJCNtOpUXdT+a3N+NlpxiScyIOtSrQnDFixWMCJQwEfg8j74qO96UvDA\r\n"
94+
"FuTCocOouER3ZZjQ8MEsMMquNEvMHJkMRX11L5Rxo1pc6J/EMWW5scK2rC0Hg91a\r\n"
95+
"Lod6aezh2K7KleC0V5ZlIuEvFoBc7bCwcBSAKA3BnQveJ8nEu9pbuBsVAjHOroVb\r\n"
96+
"8/bL5retJigmAN2GIyFv39TFXIySw+lW0wlp+iSPxO9s9J+t\r\n"
97+
"-----END CERTIFICATE-----\r\n";
98+
static const char s_client_ca[] = \
99+
"-----BEGIN CERTIFICATE-----\r\n"
100+
"MIICuDCCAaACCQDAnCoP3W+otTANBgkqhkiG9w0BAQsFADAdMQswCQYDVQQGEwJD\r\n"
101+
"QTEOMAwGA1UEAwwFTVkgQ0EwHhcNMjAwMjE3MTEyNTA2WhcNMjEwMjExMTEyNTA2\r\n"
102+
"WjAfMQswCQYDVQQGEwJDTjEQMA4GA1UEAwwHQ0xJRU5UMjCCASIwDQYJKoZIhvcN\r\n"
103+
"AQEBBQADggEPADCCAQoCggEBALKOOfeq1QQnwLNsMboqr47ClO24sTd6oLiSjGYe\r\n"
104+
"zb7IECnjiEg+sILEH5avi6uKdCR8QZHskIWdQbNqi2h0E01MTxuneTCnFaAdYh2z\r\n"
105+
"B8n4IUsGr1gyCayfKCQG8ElDElBkB2JMce/IEuxJvnFdhXy6c9zhj8iU+fusD9hm\r\n"
106+
"jvx34zd6Sn2uRl8wdI89pVwkESKyx6J5za/dBWCS0hxvOtDEY2gJA9av8BNYjTxQ\r\n"
107+
"tRlwnxGzgaza8aA9LMbnRmv1bML98w4NgNHkVGUtw1eQso0unHnyEF1WhqEu0pLk\r\n"
108+
"BJQbdO4s4ajQ1rOr7niVnCT99KtzJuWm3oymNdDT6BHsnn0CAwEAATANBgkqhkiG\r\n"
109+
"9w0BAQsFAAOCAQEAPayFtS8du8D+mPdRU96vFqVpDx6oksGhrUIO+3GZ4ruuHjtf\r\n"
110+
"A764y6zD1/LxQVw15xN44G+AqUwEi/BZszQ+5rSitwqoZFciKMblaqd0ZJSG6G2d\r\n"
111+
"Cqyl87cTL6Tlgpa5cBka4ksaMs2OVU9x1aaNnejrTbX2PvZO7o/pVVimQE8Yh+1J\r\n"
112+
"k2D26hg9UoWN4Z3/9LdGC3y4dsmtuQS+Cye61ZfHtT3/XjTRjl9/c+xKtVsQpE6g\r\n"
113+
"dpaGVxWpFUCpGe4POrNHjOOAXaFiCHP7o9Kab1UnxuFVKHCtNT9wdJ7v8puCliwB\r\n"
114+
"t40h9oegMyUYL/VG+14wOYgEPuCeGqqilht+4w==\r\n"
115+
"-----END CERTIFICATE-----\r\n";
116+
static const char s_client_pk[]= \
117+
"-----BEGIN PRIVATE KEY-----\r\n"
118+
"MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCyjjn3qtUEJ8Cz\r\n"
119+
"bDG6Kq+OwpTtuLE3eqC4koxmHs2+yBAp44hIPrCCxB+Wr4urinQkfEGR7JCFnUGz\r\n"
120+
"aotodBNNTE8bp3kwpxWgHWIdswfJ+CFLBq9YMgmsnygkBvBJQxJQZAdiTHHvyBLs\r\n"
121+
"Sb5xXYV8unPc4Y/IlPn7rA/YZo78d+M3ekp9rkZfMHSPPaVcJBEisseiec2v3QVg\r\n"
122+
"ktIcbzrQxGNoCQPWr/ATWI08ULUZcJ8Rs4Gs2vGgPSzG50Zr9WzC/fMODYDR5FRl\r\n"
123+
"LcNXkLKNLpx58hBdVoahLtKS5ASUG3TuLOGo0Nazq+54lZwk/fSrcyblpt6MpjXQ\r\n"
124+
"0+gR7J59AgMBAAECggEAFbjx2myhD6laazmdbx2kUATiI22Vub8kcG/7vqy+sRgb\r\n"
125+
"x0zUFp3x0WbUxPtETbFBYfLv8zXJe0ffZ1lt7l44vu2qrh2Yw89/9QO+HQjbyLl0\r\n"
126+
"K3F7wYoM3UBbnM5vSypqvvb8YvwT3G0FyFNMZPRQuhTg5Z1XZbqiEvki0Fvhx1sG\r\n"
127+
"bksCKK85dPaH/7kXxMTPZ67/2Z3TlwUERo1YSPRnrQXGnDowudLqQjn8ptiPfO39\r\n"
128+
"bIMQhM/HI1bTw4F5EevL7sS4rcnhpmQNU6ZeINPvYuel+hP36uPwTHMm1hkZbMgP\r\n"
129+
"a69Yk8/meENffl9fQ+T8woYMGgKq0DM+O5ip7QzrLQKBgQDdvwI/9npuwpYkdjWT\r\n"
130+
"tLj5BKFNINjn+TjyvN1QQmOhXqzTy1y9HVm7EYh1l0H5PY/WgYadBWNYabgNSIe0\r\n"
131+
"vxl7tdDxDX4DBQqDIIEY45sPa3glq6flCgtPzkZxcYTvZpqmdX8/iMYGXHpdOMdm\r\n"
132+
"S8jngobFDEgLxFS1lLLs+LtTTwKBgQDOIz08d2zMRX5AW0SkQ+VbdwcO7G5qlTJV\r\n"
133+
"42Rf51Dmr0as/bX5eIWAAfcsEi/kG2e5Ozupe4BVZXarw7AL1bzE4mLvfcwZEUiJ\r\n"
134+
"Qj56H6QTOiVm/DTZdBz415z60zjCui+59luev6txZBL51ZhoifzfdAfxd8ztucV+\r\n"
135+
"mj3kytIucwKBgBSdporl0norsyPOrap+2dek+44dKK1geU/wCS9mDLc7AxxpwsR+\r\n"
136+
"TxJaTfKIzoRqmc3amvZMQvE8WvU5Mgy225qpy7QtifKj7FdGlVoIBymG11PBQsnD\r\n"
137+
"hku0JM51PGO5iVVChUMV5zs+K84w8jDriNElTHxTaPtXFH0RRxVLBrd3AoGAIYX1\r\n"
138+
"lXnOhcHfcFPna9dm22MWEMU+h7LPxsv+LOKPc5SZp9Ry3alN/K1VJyOmCjCyw5rw\r\n"
139+
"bvWYv0qK7BAc9y/BTTuL32rT4FfBNiFBy9aNdlsEbiUh6yNI+ucFrnzfRDvHOzTn\r\n"
140+
"XX/KP9yIgXzNFmMqbqSODiTvfNGzXo1y91xMpiUCgYAfO+Xb5msOMABiBNGD85qr\r\n"
141+
"C+0xpuWoPe4pB5ccgniv1zhPlUJ+8l1vWz/ZWnH/6oVxGGrq5xLtoBgFWM4uSseI\r\n"
142+
"Je0fSqZp0XAbaFI7wkEV/uP6VMjjFT5TfJz4idgI+EaE72va2jbFBgg1MyfR3gx4\r\n"
143+
"deaXc4ZpE64iV+eAtZ8VVQ==\r\n"
144+
"-----END PRIVATE KEY-----\r\n";
145+
static const char *s_client_pk_pwd = "123456";
146+
147+
148+
149+
static int demo_hubdefaultconnect()
150+
{
151+
int ret =0;
152+
int loop = 0;
153+
154+
hwoc_mqtt_disconnect();
155+
for(loop = 0; loop<CN_LOOP_TIMES;loop++ )
156+
{
157+
printf("***************%s:LOOP:%d************************\n\r",__FUNCTION__,loop);
158+
159+
if(0 != hwoc_mqtt_connect(0,CN_OC_LIFE_TIME,CN_HUB_SERVER,CN_HUB_PORT,CN_HUB_ID,CN_HUB_PWD))
160+
{
161+
break;
162+
}
163+
hwoc_mqtt_disconnect();
164+
osal_task_sleep(100);
165+
166+
}
167+
if(loop == CN_LOOP_TIMES)
168+
{
169+
printf("OC MQTT HUB CONNECT TEST SUCCESS------------------\n\r");
170+
ret = 0;
171+
}
172+
else
173+
{
174+
printf("OC MQTT HUB CONNECT TEST FAILED ++++++++++++++++++++\n\r");
175+
ret =-1;
176+
}
177+
return ret;
178+
179+
}
180+
181+
static int demo_hubpkconnect()
182+
{
183+
int ret =0;
184+
int loop = 0;
185+
186+
hwoc_mqtt_disconnect();
187+
188+
for(loop = 0; loop<CN_LOOP_TIMES;loop++ )
189+
{
190+
printf("***************%s:LOOP:%d************************\n\r",__FUNCTION__,loop);
191+
if( 0 != hwoc_mqtt_serverca(s_server_ca))
192+
{
193+
break;
194+
}
195+
196+
if(0 != hwoc_mqtt_clientca(s_client_ca))
197+
{
198+
break;
199+
}
200+
if( 0 != hwoc_mqtt_clientpk(s_client_pk,s_client_pk_pwd))
201+
{
202+
break;
203+
}
204+
if(0 != hwoc_mqtt_connect(0,CN_OC_LIFE_TIME,CN_HUB_SERVER,CN_HUB_PORT,CN_HUB_ID,CN_HUB_PWD))
205+
{
206+
break;
207+
}
208+
hwoc_mqtt_disconnect();
209+
osal_task_sleep(100);
210+
211+
}
212+
if(loop == CN_LOOP_TIMES)
213+
{
214+
printf("OC MQTT HUB CONNECT TEST SUCCESS------------------\n\r");
215+
ret = 0;
216+
}
217+
else
218+
{
219+
printf("OC MQTT HUB CONNECT TEST FAILED ++++++++++++++++++++\n\r");
220+
ret =-1;
221+
}
222+
return ret;
223+
224+
}
225+
226+
227+
static int demo_selfsub()
228+
{
229+
230+
int ret = -1;
231+
int loop = 0;
232+
233+
234+
hwoc_mqtt_disconnect();
235+
if(0 != hwoc_mqtt_connect(0,CN_OC_LIFE_TIME,CN_HUB_SERVER,CN_HUB_PORT,CN_HUB_ID,CN_HUB_PWD))
236+
{
237+
return ret;
238+
}
239+
240+
for(loop = 0; loop<CN_LOOP_TIMES;loop++ )
241+
{
242+
243+
printf("***************%s:LOOP:%d************************\n\r",__FUNCTION__,loop);
244+
if(0 != hwoc_mqtt_subscribe(loop%3,CN_SELFSUB_TOPIC))
245+
{
246+
break;
247+
}
248+
249+
if(0 != hwoc_mqtt_publish(loop%3,CN_SELFPUB_TOPIC,(uint8_t *)CN_PUB_DATA,strlen(CN_PUB_DATA)))
250+
{
251+
break;
252+
}
253+
254+
if(0 != hwoc_mqtt_unsubscribe(CN_SELFSUB_TOPIC))
255+
{
256+
break;
257+
}
258+
osal_task_sleep(100);
259+
}
260+
hwoc_mqtt_disconnect();
261+
262+
if(loop == CN_LOOP_TIMES)
263+
{
264+
printf("OC MQTT HUB PUBLISH TEST SUCCESS------------------\n\r");
265+
ret = 0;
266+
}
267+
else
268+
{
269+
printf("OC MQTT HUB PUBLISH TEST FAILED ++++++++++++++++++++\n\r");
270+
ret =-1;
271+
}
272+
return ret;
273+
}
274+
275+
276+
static int demo_hubpublish()
277+
{
278+
int ret = -1;
279+
int loop = 0;
280+
281+
282+
hwoc_mqtt_disconnect();
283+
if(0 != hwoc_mqtt_connect(0,CN_OC_LIFE_TIME,CN_HUB_SERVER,CN_HUB_PORT,CN_HUB_ID,CN_HUB_PWD))
284+
{
285+
return ret;
286+
}
287+
288+
for(loop = 0; loop<CN_LOOP_TIMES;loop++ )
289+
{
290+
printf("***************%s:LOOP:%d************************\n\r",__FUNCTION__,loop);
291+
if(0 != hwoc_mqtt_publish(loop%3,CN_PUB_TOPIC,(uint8_t *)CN_PUB_DATA,strlen(CN_PUB_DATA)))
292+
{
293+
break;
294+
}
295+
osal_task_sleep(100);
296+
}
297+
hwoc_mqtt_disconnect();
298+
299+
if(loop == CN_LOOP_TIMES)
300+
{
301+
printf("OC MQTT HUB PUBLISH TEST SUCCESS------------------\n\r");
302+
ret = 0;
303+
}
304+
else
305+
{
306+
printf("OC MQTT HUB PUBLISH TEST FAILED ++++++++++++++++++++\n\r");
307+
ret =-1;
308+
}
309+
return ret;
310+
}
311+
312+
313+
typedef int (*fn_demo_fun)(void);
314+
315+
static fn_demo_fun s_demo_tab[]=
316+
{
317+
// demo_bshubconnect,
318+
// demo_bspublish,
319+
// demo_bsconnect,
320+
demo_hubpkconnect,
321+
demo_selfsub,
322+
demo_hubpublish,
323+
demo_hubdefaultconnect,
324+
NULL,
325+
};
326+
327+
328+
329+
static int entry_ocmqttloop(void *arg)
330+
{
331+
int ret = 0;
332+
int i = 0;
333+
fn_demo_fun demo_fun;
334+
335+
printf("LOOP TEST START........\n\r");
336+
for(i =0;;i++)
337+
{
338+
demo_fun = s_demo_tab[i];
339+
if(demo_fun != NULL)
340+
{
341+
ret = demo_fun();
342+
343+
if(0 != ret)
344+
{
345+
printf("demo:%d failed, and test exit\n\r ",i);
346+
}
347+
}
348+
else
349+
{
350+
break;
351+
}
352+
}
353+
printf("LOOP TEST END..........\n\r");
354+
355+
return 0;
356+
}
357+
358+
int standard_app_demo_main(int argc, const char *argv[])
359+
{
360+
osal_task_create("ocmqtttest",entry_ocmqttloop,NULL,0x1000,NULL,10);
361+
362+
return 0;
363+
}
364+
365+
366+
OSSHELL_EXPORT_CMD(standard_app_demo_main,"ocmqttloop","ocmqttloop test");
367+
368+
369+
#endif
370+

0 commit comments

Comments
 (0)