機械人資料自定義資料傳輸協議

2021-10-07 07:18:56 字數 2160 閱讀 6489

#include

"robot_tx.h"

void

tx_robot_data

(uint8_t heartbeat,uint8_t breath ,uint8_t pressure_h,uint8_t pressure_l,uint8_t spo2,

float temperature)

; process_date[0]

=heartbeat;

//心跳

process_date[1]

=breath;

//呼吸

process_date[2]

=temperature_h;

//溫度高8位

process_date[3]

=temperature_l;

//溫度低8位

process_date[4]

=pressure_h;

//血壓峰值

process_date[5]

=pressure_l;

//血壓最低值

process_date[6]

=spo2;

//血氧值

uint8_t package_data=0;

//定義包長度資料

uint8_t check_crc_length=0;

//定義統計校驗和 校驗資料的長度

char robot_tx_buf[

100]

;//傳送的資料快取

uint8_t all_length=0;

//定義乙個傳送資料報的長度

uint8_t request_length=2;

//定義整個資料報頭所佔的位元組長度

uint8_t package_length=1;

//定義包長度所佔的位元組長度

uint8_t id1_length=1;

//定義id1長度

uint8_t id1_data_length=7;

//定義id1資料長度

uint8_t check_length=1;

//定義校驗和資料長度

robot_tx_buf[0]

=0x66

;//資料報頭

robot_tx_buf[1]

=0xcc

;//資料報頭

robot_tx_buf[request_length+package_length-1]

=id1_length+id1_data_length ;

//計算包的長度=包id長度+資料長度

robot_tx_buf[request_length+package_length+id1_length-1]

=0x01

;//包id

for(i=

0;i)

all_length=request_length+package_length+id1_length+id1_data_length+check_length;

//總長度=資料報頭所佔的位元組長度 + 包長度所佔的位元組長度 + 定義id1長度 + id1資料長度 + 定義校驗和資料長度

robot_tx_buf[all_length-1]

=0;//將校驗位清零

check_crc_length=package_length+id1_length+id1_data_length;

//統計選要校驗的資料的長度

for(i=

0;i)hal_uart_transmit

(&huart4,

(uint8_t *

)robot_tx_buf, all_length,

1000);

//}#ifndef __robot_tx_h

#define __robot_tx_h

#include

"stm32f1xx_hal.h"

#include

"uart.h"

void

tx_robot_data

(uint8_t heartbeat,uint8_t breath ,uint8_t pressure_h,uint8_t pressure_l,uint8_t spo2,

float temperature)

;#endif

可靠資料傳輸協議演變流程

可靠資料傳輸 傳輸資料位元不會損壞 丟失,有序傳送接收 可靠傳輸協議的發展 rdt1.0 rdt1.0是基於理想情況下的協議,假設所有通道都是可靠的,沒有位元位的翻轉,沒有資料報的丟失與超時,所以rdt1.0的傳輸功能就是 傳送方傳送資料,接收方接受資料。rdt2.0 在有位元差錯的情況下 進行可靠...

USB通訊協議 資料傳輸

usb2.0通訊協議 spalish 1.包 packet 包是usb系統中資訊傳輸的基本單元,所有資料都是經過打包後在匯流排上傳輸的。usb包由五部分組成,同步字段 sync 包識別符號 pid 資料字段 crc和包結尾字段 eop 包型別 由pid區分 令牌 out in sof setup 資...

Canal原始碼分析 資料傳輸協議

canal的資料傳輸有兩塊,一塊是進行binlog訂閱時,binlog轉換為我們所定義的message,第二塊是client與server進行tcp互動時,傳輸的tcp協議。這塊是binlog的乙個儲存。主要的格式如下 entry header version 協議的版本號,default 1 lo...