MQTT原始碼的TX RX設計(2)

2021-10-01 13:20:41 字數 941 閱讀 8843

重點看tx函式 如果不動手 自動分類埠號的

2層乙個是network 在封裝一層是client

傳送函式

int mqtt_send_publish

int mqtt_send_publish_form_isr

最後是xqueuesend( xmqttsendqueue, ( void* )&p, null );

static void mqtt_send_task( void const *pvparameters)

}//else

memset(&msg , 0x00 , sizeof(mqttsendmsgtype));

} //read_task_stack(__func__,mqttsendtask); }}

mqtt_send_mesg

mqtt_send_packet

int mqtt_send_packet(mqttclienttype* c, uint8_t *buf , int length)

return mqtt_success;

}如何理解???

mqtt_send_packet 是乙個傳送函式 就是呼叫了 c->ipstack->mqttwrite

它返回實際你傳送資料的長度 如果這個長度=你要傳送的 那就返回mqtt_success 否則返回failure

這個正正的傳送函式在init的時候寫好的

也就是介面!

void mqtt_client_init(mqttclienttype* c, network* network, uint32_t datarepeattime , unsigned int command_timeout_ms, unsigned char* readbuf, size_t readbuf_size)

最後的傳送函式是:freertos_write

Eureka原始碼系列 2 原始碼啟動入口

本文介紹如何搭建eureka原始碼的debug環境,網上有一些部落格抄來抄去,抄錯了都不知道。eureka server模組下有乙個測試類 eureka server src test j a com netflix eureka resources eurekaclientserverrestin...

Spring MVC 的原始碼分析 2

spring mvc 如何在servlet容器中處理業務的?我們依次檢視原始碼中三個方法的具體內容 1 requestmethod.patch都包含那些列舉型別呢?public enum requestmethod 2 processrequest方法是如何進行分流的呢?3 當所有的method方法...

LinkedList的add原始碼 2

public static void main string args 看看 public void add int index,e element 下面這個方法是檢查你要插入的位置是否在0到size之間,size就是當前鍊錶的長度。checkpositionindex index returns ...