快速開發(fā):快速實現(xiàn)一個智能充電柜(智能鎖)
常用的JS調(diào)用Java代碼的方法,主要包括以下三種:
1)通過WebView的addJavascriptInterface進行對象映射
2)通過 WebViewClient 的shouldOverrideUrlLoading方法回調(diào)攔截 url
3) 通過 WebChromeClient 的onJsAlert、onJsConfirm、onJsPrompt方法回調(diào)攔截JS對話框alert、confirm、prompt 消息
原生渲染
本地開發(fā)的web 頁面,構(gòu)建形成 Weex 的一個 JS bundle(native);在云端,開發(fā)者可以把生成的 JS bundle 部署上去,然后通過網(wǎng)絡(luò)請求或預(yù)下發(fā)的方式傳遞到用戶的移動應(yīng)用客戶端;在移動應(yīng)用客戶端里,WeexSDK 會準備好一個 JavaScript 引擎,并且在用戶打開一個 Weex 頁面時執(zhí)行相應(yīng)的 JS bundle,并在執(zhí)行過程中產(chǎn)生各種命令發(fā)送到 native 端進行的界面渲染或數(shù)據(jù)存儲、網(wǎng)絡(luò)通信、調(diào)用設(shè)備功能、用戶交互響應(yīng)等移動應(yīng)用的場景實踐。
1、Weex 的 iOS 和 Android 客戶端中都會運行一個 JavaScript 引擎,來執(zhí)行 JS bundle。
2、Weex向各端的渲染層發(fā)送規(guī)范化的指令,調(diào)度客戶端的native渲染和其它各種能力。
3、我們在 iOS 下選擇了 JavaScriptCore 內(nèi)核,而在 Android 下選擇了 UC 提供的 v8 內(nèi)核。
原理:
1、將XML+CSS+JavaScript代碼轉(zhuǎn)換為JSBundle
2、JSBundle傳給JS Framework解析為Json格式的Virtual DOM
3、客戶端通過接收Virtual DOM渲染界面
vue示例
<template>
<view class="content">
<text> {{speedWarnInfo}} </text>
<view class="log">
<view v-for="(log,index) in logs" class="" :key="index">
{{log}}
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
logs: [],
speed: 0,
speedWarnInfo: ''
}
},
watch: {
speed: {
handler(val) {
if (val > 100) {
this.speedWarnInfo = "超速"
}
},
immediate: true
}
},
beforeCreate:function(){
// 實例完全被創(chuàng)建出來之前,vue 實例的掛載元素$el和數(shù)據(jù)對象 data 都為 undefined,還未初始化
},
created:function(){
// 數(shù)據(jù)對象 data 已存在,可以調(diào)用 methods 中的方法,操作 data 中的數(shù)據(jù),但 dom 未生成,$el 未存在 。
this.connect()
},
beforeMount:function(){
// vue 實例的 $el 和 data 都已初始化,掛載之前為虛擬的 dom節(jié)點,模板已經(jīng)在內(nèi)存中編輯完成了,但是尚未把模板渲染到頁面中。data.message 未替換
},
mounted:function(){
// vue 實例掛載完成,data.message 成功渲染。內(nèi)存中的模板,已經(jīng)真實的掛載到了頁面中,用戶已經(jīng)可以看到渲染好的頁面了。
},
updated:function(){
// 當 data 變化時,會觸發(fā)beforeUpdate方法 。data 數(shù)據(jù)尚未和最新的數(shù)據(jù)保持同步。
},
beforeUpdate:function(){
// 當 data 變化時,會觸發(fā) updated 方法。頁面和 data 數(shù)據(jù)已經(jīng)保持同步了。
},
beforeDestroy:function(){
// 組件銷毀之前調(diào)用 ,在這一步,實例仍然完全可用。
},
destroyed:function(){
// 組件銷毀之后調(diào)用,對 data 的改變不會再觸發(fā)周期函數(shù),vue 實例已解除事件監(jiān)聽和 dom綁定,但 dom 結(jié)構(gòu)依然存在。
},
methods: {
connect() {
var self = this
self.logs.push('connect')
var mqtt = require('mqtt/dist/mqtt.js')
// #ifdef H5
var client = mqtt.connect('xx://xxx.xxxxxx:8080')
// #endif
// #ifdef MP-WEIXIN||APP-PLUS
var client = mqtt.connect('xx://xxx.xxxxxx:8080')
// #endif
client.on('connect', function() {
self.logs.push('on connect')
client.subscribe('presence', function(err) {
if (!err) {
client.publish('presence', 'hello')
}
})
}).on('reconnect', function() {
self.logs.push('on reconnect')
}).on('error', function() {
self.logs.push('on error')
}).on('end', function() {
self.logs.push('on end')
}).on('message', function(topic, message) {
console.log(message)
self.logs.push(message.toString())
})
}
}
}
</script>
<style>
.content {
text-align: center;
height: 400upx;
word-break: break-all;
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
后端通信協(xié)議
協(xié)議就是通信雙方的一個約定,即,表示第1位傳輸?shù)氖裁础⒌?位傳輸?shù)氖裁?/p>
有哪些協(xié)議可用
長鏈接:mqtt,Jt808,Tcp,http
短鏈接:coap,http
短連接的操作步驟是:
建立連接——數(shù)據(jù)傳輸——關(guān)閉連接…建立連接——數(shù)據(jù)傳輸——關(guān)閉連接
長連接的操作步驟是:
建立連接——數(shù)據(jù)傳輸…(保持連接)…數(shù)據(jù)傳輸——關(guān)閉連接
JT808
消息ID(0-1) 消息體屬性(2-3) 終端手機號(4-9) 消息流水號(10-11) 消息包封裝項(12-15)
byte[0-1] 消息ID word(16)
byte[2-3] 消息體屬性 word(16)
bit[0-9] 消息體長度
bit[10-12] 數(shù)據(jù)加密方式
此三位都為 0,表示消息體不加密
第 10 位為 1,表示消息體經(jīng)過 RSA 算法加密
其它保留
bit[13] 分包
1:消息體衛(wèi)長消息,進行分包發(fā)送處理,具體分包信息由消息包封裝項決定
0:則消息頭中無消息包封裝項字段
bit[14-15] 保留
byte[4-9] 終端手機號或設(shè)備ID bcd[6]
根據(jù)安裝后終端自身的手機號轉(zhuǎn)換
手機號不足12 位,則在前面補 0
byte[10-11] 消息流水號 word(16)
按發(fā)送順序從 0 開始循環(huán)累加
byte[12-15] 消息包封裝項
byte[0-1] 消息包總數(shù)(word(16))
該消息分包后得總包數(shù)
byte[2-3] 包序號(word(16))
從 1 開始
如果消息體屬性中相關(guān)標識位確定消息分包處理,則該項有內(nèi)容
否則無該項
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
編碼
7E 02 00 00 3F 00 00 04 02 18 95 00 0B 00 00 00 00 00 04 00 03 01 58 CC AA 06 CB 79 F5 00 95 00 00 00 00 16 01 05 16 54 15 01 04 00 00 69 74 02 02 00 00 03 02 00 00 25 04 00 00 00 00 2B 04 00 00 00 00 30 01 00 31 01 0B 32 01 46 7C 7E
解碼
Mqtt
MQTT客戶端
一個使用MQTT協(xié)議的應(yīng)用程序或者設(shè)備,它總是建立到服務(wù)器的網(wǎng)絡(luò)連接。客戶端可以:
(1)發(fā)布其他客戶端可能會訂閱的信息;
(2)訂閱其它客戶端發(fā)布的消息;
(3)退訂或刪除應(yīng)用程序的消息;
(4)斷開與服務(wù)器連接。
MQTT服務(wù)器
開源:mosquito,emq
MQTT服務(wù)器以稱為"消息代理"(Broker),可以是一個應(yīng)用程序或一臺設(shè)備。它是位于消息發(fā)布者和訂閱者之間,它可以:
(1)接受來自客戶的網(wǎng)絡(luò)連接;
(2)接受客戶發(fā)布的應(yīng)用信息;
(3)處理來自客戶端的訂閱和退訂請求;
(4)向訂閱的客戶轉(zhuǎn)發(fā)應(yīng)用程序消息。
數(shù)據(jù)包結(jié)構(gòu)
在MQTT協(xié)議中,一個MQTT數(shù)據(jù)包由:固定頭(Fixed header)、 可變頭(Variable header)、 消息體(payload)三部分構(gòu)成。
MQTT 數(shù)據(jù)包結(jié)構(gòu)
固定頭(Fixed header),存在于所有MQTT數(shù)據(jù)包中,表示數(shù)據(jù)包類型及數(shù)據(jù)包的分組類標識
可變頭(Variable header),存在于部分MQTT數(shù)據(jù)包中,數(shù)據(jù)包類型決定了可變頭是否存在及其具體內(nèi)容
消息體(Payload),存在于部分MQTT數(shù)據(jù)包中,表示客戶端收到的具體內(nèi)容
1. MQTT固定頭
固定頭存在于所有MQTT數(shù)據(jù)包中,其結(jié)構(gòu)如下:
1.1 MQTT數(shù)據(jù)包類型
位置:byte 1, bits 7-4。
相于一個4位的無符號值,類型如下:
1.2 標識位
位置:byte 1, bits 3-0。
在不使用標識位的消息類型中,標識位被做為保留位。如果收到無效的標志時,接收端必須關(guān)閉網(wǎng)絡(luò)連接:
DUP:發(fā)布消息的副本。用來在保證消息的可靠傳輸,如果設(shè)置為 1,則在下面的變長中增加MessageId,并且需要回復(fù)確認,以保證消息傳輸完成,但不能用于檢測消息重復(fù)發(fā)送。
QoS:發(fā)布消息的服務(wù)質(zhì)量,即:保證消息傳遞的次數(shù)
00:最多一次,即:<=1
01:至少一次,即:>=1
10:一次,即:=1
11:預(yù)留
RETAIN: 發(fā)布保留標識,表示服務(wù)器要保留這次推送的信息,如果有新的訂閱者出現(xiàn),就把這消息推送給它,如果設(shè)有那么推送至當前訂閱者后釋放。
1.3 剩余長度(Remaining Length)
位置:byte 1。
固定頭的第二字節(jié)用來保存變長頭部和消息體的總大小的,但不是直接保存的。這一字節(jié)是可以擴展,其保存機制,前7位用于保存長度,后一部用做標識。當最后一位為 1時,表示長度不足,需要使用二個字節(jié)繼續(xù)保存。
2.MQTT可變頭
MQTT數(shù)據(jù)包中包含一個可變頭,它駐位于固定的頭和負載之間。可變頭的內(nèi)容因數(shù)據(jù)包類型而不同,較常的應(yīng)用是做為包的標識:
很多類型數(shù)據(jù)包中都包括一個2字節(jié)的數(shù)據(jù)包標識字段,這些類型的包有:PUBLISH (QoS > 0)、PUBACK、PUBREC、PUBREL、PUBCOMP、SUBSCRIBE、SUBACK、UNSUBSCRIBE、UNSUBACK
CONNECT報文的可變報頭按下列次序包含四個字段:
協(xié)議名(Protocol Name)
協(xié)議級別(Protocol Level)
連接標志(Connect Flags)
保持連接(Keep Alive)。
3.Payload消息體
Payload消息體位MQTT數(shù)據(jù)包的第三部分,CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE四種類型的消息 有消息體:
CONNECT,消息體內(nèi)容主要是:客戶端的ClientID、訂閱的Topic、Message以及用戶名和密碼。
SUBSCRIBE,消息體內(nèi)容是一系列的要訂閱的主題以及QoS。
SUBACK,消息體內(nèi)容是服務(wù)器對于SUBSCRIBE所申請的主題及QoS進行確認和回復(fù)。
UNSUBSCRIBE,消息體內(nèi)容是要訂閱的主題。
硬件
Jetson nano
Haas
Raspberry Pi
Ruff
HaaS600 EC600S 開發(fā)板
1.串口
Enhanced COM Port 為日志串口
Standard COM Port 為用戶串口
$ ./amp.exe seriallist
COM5
COM4
1
2
3
...
1569/main | app_status_indication_set 1
1569/main | platform_init_step1 done, user_init=3, ret=0
1569/main | platform_init_step1 enter temprature cali on signal
1569/main | board_init platform_init_step1 done
1573/main_task | sys_init go
1573/main_task | sys freq calc : 320000000, wifi init 1
1573/main_task | sys_init soc_peripheral_init done
Welcome to AliOS Things
1574/main_task | sys_init aos_components_init done
1574/main_task | mesh has been opened
[Jan 01 00:00:01.482]<I>ULOG-test sys_init aos_components_init done
nano entry here!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2.putty
單片機或計算機在串口通信時的速率。
例如假設(shè)數(shù)據(jù)傳送速率為120符號/秒(symbol/s)(也就是波特率為120Baud),又假設(shè)每一個符號為8位(bit),則其傳送的比特率為(120symbol/s) * (8bit/symbol)=960bps.。
3.push
$ ./amp.exe serialput ./app COM5 -b 115200
device type: ymodem
generating app package...
Browserslist: caniuse-lite is outdated. Please run:
npx browserslist@latest --update-db
Why you should do it regularly:
https://github.com/browserslist/browserslist#browsers-data-updating
Wait shakehand with board ...
Please reboot board now
Putting: ██████████████████████████████ 2/2
put complete!
1
2
3
4
5
6
7
8
9
10
11
12
13
4.reboot
5.代碼
import * as http from 'http'
var gpio = require('gpio');
var mqtt = require('mqtt');
var network = require('network');
var switch_01 = gpio.open({
id: 'D13'
});
var net = network.openNetWorkClient();
var netType = net.getType();
var netStatus = net.getStatus();
var switch_01_status = 0;
if (netStatus == 'connect') {
/* 網(wǎng)絡(luò)狀態(tài)已連接,獲取網(wǎng)絡(luò)狀態(tài) */
getNetInfo();
} else {
/* wifi或者以太網(wǎng),設(shè)置ifconfig */
if (netType === "wifi" || netType === "ethnet") {
net.setIfConfig({
dhcp_en: true, // true: 動態(tài)IP模式(以下參數(shù)可忽略); false: 靜態(tài)IP模式(以下參數(shù)必填)
ip_addr: '192.168.124.66',
mask: '255.255.255.0',
gw: '192.168.124.1',
dns_server: '8.8.8.8'
});
}
/* 網(wǎng)絡(luò)狀態(tài)未連接,如果是wifi設(shè)備則主動聯(lián)網(wǎng)(4G模組中系統(tǒng)會自動注網(wǎng)) */
if (netType === "wifi") {
net.connect({
ssid: 'wangpengpeng-ssid', //熱點ssid
password: '******' //熱點的密碼
});
}
/**
* 監(jiān)聽網(wǎng)絡(luò)連接成功事件,成功執(zhí)行回調(diào)函數(shù)
*/
net.on('connect', function() {
getNetInfo();
// create mqtt client
createMQTTClient();
});
net.on('disconnect', function() {});
}
function getNetInfo() {
console.log('net status is connected, begin getting net information...');
var info = net.getInfo();
if (netType === "wifi" || netType === "ethnet") {
/* 是否開啟dhcp */
console.log('net dhcp_en is: ' + info.netInfo.dhcp_en);
/* ip地址*/
console.log('net ip_addr is: ' + info.netInfo.ip_addr);
/* dns */
console.log('net dns_server is: ' + info.netInfo.dns_server);
/* 網(wǎng)關(guān) */
console.log('net gateway is: ' + info.netInfo.gw);
/* 子網(wǎng)掩碼 */
console.log('net mask is: ' + info.netInfo.mask);
/* mac地址 */
console.log('net mac is: ' + info.netInfo.mac);
/* wifi信號強度 */
console.log('net wifi rssi is: ' + info.netInfo.rssi);
return;
}
console.log('unkown net type');
}
function createMQTTClient() {
var client = mqtt.createClient({
host: 'de28fe41.cn-hangzhou.emqx.cloud',
port: 15129,
clientId: 'wangpengpeng_01',
username: 'wangpengpeng',
password: '******',
});
client.on('connect', function() {
// subscribe
client.subscribe({
topic: '/open',
success: function() {
switch_01_status = 1
switch_01.writeValue(switch_01_status);
},
fail: function() {}
});
// subscribe
client.subscribe({
topic: '/close',
success: function() {
switch_01_status = 0
switch_01.writeValue(switch_01_status);
},
fail: function() {}
});
// publish
setInterval(function() {
client.publish({
topic: '/push',
message: switch_01_status
});
}, 3 * 1000);
});
client.on('disconnect', function() {
console.log('mqtt disconnect');
});
client.on('reconnect', function() {
console.log('mqtt reconnect');
});
client.on('message', function(topic, payload) {
console.log('[' + topic + '] message: ' + payload);
});
client.on('close', function() {
console.log('mqtt close');
});
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
王鵬鵬鵬
關(guān)注
0
0
0
JT808-2019協(xié)議技術(shù)規(guī)范.pdf
01-09
JT808-2019協(xié)議技術(shù)規(guī)范帶
JT808-2019和JT809-2019協(xié)議PDF版
07-17
部標平臺相關(guān)協(xié)議之809協(xié)議2019版本和部標平臺相關(guān)協(xié)議之808協(xié)議2019版本,與2011版本有變化。 本標準代替JT/T809-2011 《道路運輸車輛衛(wèi)星定位系統(tǒng)平臺數(shù)據(jù)交換
參與評論 您還未登錄,請先 登錄 后發(fā)表或查看評論
jt808協(xié)議詳解_zybiao2的博客_jt808協(xié)議
3-27
jt808協(xié)議詳解 7E0200005B014141138693224E00000100000000000157E6DE06CBEC600000000000001703090019200104000026F5EB3700060089FFFFFFFD000700B400FFFFFFFF002400A901CC000627BD0FABCC27910000B727911287BF27BD1159C327BD0000BB27910ED1B5C97E...
jt t808協(xié)議c語言,部標JT808協(xié)議解碼包: 提供部標JT/T8...
3-8
4[01] 協(xié)議版本號: 1 5[00000000017299841738] 終端手機號: 17299841738 15[ffff] 流水號: 65535 0[00000400] 報警標志: 1024 4[00000800] 狀態(tài): 2048 8[06eeb6ad] 緯度: 116307629
JT808-2019協(xié)議測試工具
12-02
JTIT 808一2019協(xié)議測試工具,自己python寫的,非過檢終端。 1.連接到服務(wù)端 2.可以收發(fā)報文,且能定時發(fā)送位置匯報的0200報文,以及點擊按鈕發(fā)送終端主動發(fā)的報文,并記錄日志。 3.拆解報文
jt/t 808協(xié)議
04-03
這是交通局最新的808通訊協(xié)議,你可以查詢相關(guān)的數(shù)據(jù)通訊命令,然后進行開發(fā)。
java解析JT808協(xié)議_NiceSzy的博客_jtt808報文解析
2-23
本篇文章將介紹JT808協(xié)議的解析思路。 另請大神繞路,不喜勿噴! 先寫個大致的思路,有疑問可以聯(lián)系本人,聯(lián)系方式: emial:hylexus@163.com 1 JT808協(xié)議掃盲 1.1 數(shù)據(jù)類型 1.2 消息結(jié)構(gòu)
4G無線防拆報警GPS定位器JT808 部標通訊協(xié)議及數(shù)據(jù)格式...
3-5
本協(xié)議采用的通信方式應(yīng)符合 JT/T 794 中的相關(guān)規(guī)定。通信協(xié)議采用 TCP,平臺作為 服務(wù)器端,終端作為客戶端。 1.2.數(shù)據(jù)類型 協(xié)議消息中使用的數(shù)據(jù)類型見表 1: 表1 數(shù)據(jù)類型 數(shù)據(jù)類型 描述及要求 ...
JT808部標協(xié)議
04-11
JT808部標協(xié)議,道路運輸車輛衛(wèi)星定位系統(tǒng)終端通訊協(xié)議及數(shù)據(jù)格式。
java解析JT808協(xié)議
熱門推薦
hylexus的博客
3萬+
JT808協(xié)議掃描 1 數(shù)據(jù)類型 2 消息結(jié)構(gòu) 3 消息頭 解析 1 消息體實體類 2 字節(jié)數(shù)組到消息體實體類的轉(zhuǎn)換 21 消息轉(zhuǎn)換器 22 用到的工具類 221 BCD操作工具類 222 位操作工具類 3 和netty結(jié)合 31 netty處理器鏈 32 netty針對于JT808的消息處理器 33 用到的其他類 注 本篇文章將介紹JT808協(xié)議的解析思路。 另請大神繞路,不喜勿噴! 先寫個大
jt808協(xié)議_通信協(xié)議設(shè)計
weixin_39946534的博客
2496
在網(wǎng)絡(luò)應(yīng)用中會涉及到很多通訊協(xié)議的使用,比如車聯(lián)網(wǎng)、V2X的通訊協(xié)議,APP與后臺Server交互的協(xié)議。同時有些協(xié)議可能是沒有標準的,需要我們自己設(shè)計一套通信協(xié)議,當然我們肯定在某些已有協(xié)議之上再進行自定義。比如我們要定義T-Box與車聯(lián)網(wǎng)平臺的通訊,那么肯定會使用TCP/UDP作為基礎(chǔ)協(xié)議,再基于這一層的協(xié)議進行自定義。關(guān)于到底選擇TCP還是UDP就不多討論了,下面對協(xié)議的設(shè)計做一下...
JT808詳細解釋
fei0700的博客
804
7E0200005B014141138693224E00000100000000000157E6DE06CBEC600000000000001703090019200104000026F5EB3700060089FFFFFFFD000700B400FFFFFFFF002400A901CC000627BD0FABCC27910000B727911287BF27BD1159C327BD0000BB27910ED1B5C97E ———————————————— 詳細解釋 7E -
部標JT808協(xié)議處理方案
難得糊涂
6529
序言 本來說弄個系列博客,但是在實施的過程中,發(fā)現(xiàn)沒有想象的復(fù)雜.搞清楚下面的,后面的都是體力勞動 現(xiàn)在開始弄交通部808協(xié)議解析具體的實施,之前都是在研究框架.今天正式開始實施.本篇主要介紹一些基礎(chǔ)知識.另沒有源碼,cuiyaonan2000@163.com 僅限問題討論與實施方案的交流.本文使用的參考資料室JTT808-2013協(xié)議 位運算(一定要搞明白...
jt808 jt-808 JT/T808-2001 jt/t808-2001 部標協(xié)議 協(xié)議解析
hncdyj的專欄
9724
JT/T808-2011協(xié)議解析規(guī)則白話文詳解(JAVA版本) 1.包詳解 解析之前復(fù)習(xí)下java的數(shù)據(jù)結(jié)構(gòu),以及對應(yīng)JT/L808-2011里面的數(shù)據(jù)類型。 JT/T808 JAVA數(shù)據(jù)類型 JT/L808描述 JAVA描述 BYTE Byte 無符號單字節(jié)整型(字節(jié), 8 位) 以二進制補碼表示的整數(shù) WORD Short 無符號雙字節(jié)整型(字節(jié),16位) short數(shù)據(jù)類...
部標JT808 JT/T808協(xié)議網(wǎng)關(guān)
最新發(fā)布
WordPress
257
項目介紹 基于Netty,實現(xiàn)JT808 JT/T808部標協(xié)議的消息處理,與編碼解碼; 使用SpringBoot + MyBatis提供數(shù)據(jù)入庫、Web接口服務(wù); 協(xié)議部分不依賴Spring,可移除Spring獨立運行(支持Android客戶端); 最簡潔、清爽、易用的部標開發(fā)框架。 主要特性 代碼足夠精簡,便于二次開發(fā); 致敬Spring、Hibernate設(shè)計理念,熟悉Web開發(fā)的同學(xué)上手極快; 使用注解描述協(xié)議,告別繁瑣的封包、解包; 支持異步批量處理,顯著提升MySQL入庫性能;
北斗系統(tǒng)學(xué)習(xí):JTT808協(xié)議初步解析
李遲的專欄
6118
本文學(xué)習(xí)部標(交通運輸部)JT/T 808,并使用 Golang 語言解析。當然,僅使用位置數(shù)據(jù)進行演示,所以只是一個開端(是否有后續(xù),暫未知)。本文不是科普,因此不會詳細列出協(xié)議字段說明,可參考文后給出的資料。
交通部808協(xié)議介紹_基于交通部JT/T808協(xié)議的車聯(lián)網(wǎng)物聯(lián)網(wǎng)框架開發(fā)技術(shù)方案(源碼)...
weixin_30291543的博客
496
(一)平臺介紹1、接入網(wǎng)關(guān)應(yīng)用采用mina/netty+spring架構(gòu),獨立于其他應(yīng)用,主要負責維護接入終端的tcp鏈接、上行以及下行消息的解碼、編碼、流量控制,黑白名單等安全控制,網(wǎng)關(guān)同時支持交通部JT/T808-2011、JT/T808-2013兩個版本全部的808協(xié)議,網(wǎng)關(guān)應(yīng)用提供二次開發(fā)接口,支持協(xié)議擴展而不需要改動任何原有代碼。接入網(wǎng)關(guān)采用json消息通過MQ消息隊列與業(yè)務(wù)平臺進行交互...
JT/T808協(xié)議文檔
12-05
JT/T808協(xié)議文檔,這里介紹了JT/T808協(xié)議基本構(gòu)成,報文類型,以及協(xié)議開發(fā)流程
國內(nèi)物聯(lián)網(wǎng)平臺(8):中移物聯(lián)網(wǎng)開放平臺OneNet
weixin_30782331的博客
744
國內(nèi)物聯(lián)網(wǎng)平臺(8)——中移物聯(lián)網(wǎng)開放平臺OneNet 馬智 平臺定位 OneNET是中移物聯(lián)網(wǎng)有限公司搭建的開放、共贏設(shè)備云平臺,為各種跨平臺物聯(lián)網(wǎng)應(yīng)用、行業(yè)解決方案,提供簡便的云端接入、存儲、計算和展現(xiàn),快速打造物聯(lián)網(wǎng)產(chǎn)品應(yīng)用,降低開發(fā)成本。 IoT PaaS基礎(chǔ)能力:提供智能設(shè)備自助開發(fā)工具、后臺技術(shù)支持服務(wù)、物聯(lián)網(wǎng)專網(wǎng)、短彩信、位置定位、設(shè)...
基于JT/T808協(xié)議的車聯(lián)網(wǎng)平臺架構(gòu)方案
gaoshbo的專欄
2萬+
平臺基于(《JT/T808-2011道路運輸車輛衛(wèi)星定位系統(tǒng)終端通訊協(xié)議及數(shù)據(jù)格式》、《JT/T808-2013道路運輸車輛衛(wèi)星定位系統(tǒng)北斗兼容車載終端通訊協(xié)議技術(shù)規(guī)范》、JT/T-796-2011《道路運輸車輛衛(wèi)星定位系統(tǒng)平臺技術(shù)要求》、JT/T-1078-2016《道路運輸車輛衛(wèi)星定位系統(tǒng)車載視頻通信協(xié)議》、JT/T-1077-2016《道路運輸車輛衛(wèi)星定位系統(tǒng)車載視頻平臺技術(shù)要求》...
基于JT808協(xié)議的.gps文件解析工具
05-15
基于JT808協(xié)議的.gps文件解析工具,簡單易用,解析格式如下 時間 報警標志 狀態(tài) 經(jīng)度 緯度 高度 速度KM/H 方向 里程KM 附加信息或者統(tǒng)計數(shù)據(jù)(16進制顯
————————————————
版權(quán)聲明:本文為CSDN博主「王鵬鵬鵬」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/AAA17864308253/article/details/112951326