原创 C語言之static inline函數

今天在前輩的代碼中看到在頭文件中定義了static line函數,並且該函數只是判斷一個全局變量的狀態。 內聯代碼 //abc.c中定義了一個全局變量 uint8_t g_addrMode; //abc.h中定義static l

原创 CANopen之LSS Node-ID節點管理

CANopen之 LSS Node-ID節點管理1.區分CAN-ID和節點ID2.節點ID的分配3.層設置服務LSS3.1 服務內容3.2 LSS用到的CAN-ID3.3 LSS的尋址模式3.4 LSS狀態切換3.5 點對點配置(

原创 Cjson簡介與使用

json格式 json元素類型 /* cJSON Types: */ #define cJSON_Invalid (0) #define cJSON_False (1 << 0) #define cJSON_True

原创 C語言之sizeof、內存分區

sizeof sizeof 返回的是變量(單個變量或結構體)實際所佔用的空間的大小 typedef struct Person { char a; int b; }PERSON; int main() { std

原创 MQTT上報電壓值

添加標準功能 上報fmt const char *fmt="/sys/%s/%s/thing/event/property/post"; 在example_publish( )中獲取電壓值並上報 int example_pub

原创 python 解析excel表並排重輸出到txt

需求 解析excel表中每個單元格的元素,並且排重後輸出到txt文件中,保存格式爲UTF-8 程序 pip install xlrd import xlrd # 保存唯一字符的列表 convert_list = []

原创 PyQt5開發環境搭建

安裝第三方庫出錯方法 錯誤:Cannot unpack file xxxx 進入到Project Interpreter目錄,然後使用命令安裝: PyQt5安裝 基於之前已經安裝且配置了python環境3.6 Confi

原创 C語言之結構體相關

結構體相關 結構體成員offset和size 結構體對齊 結構體成員比較 結構體成員offset和size 如何計算結構體成員在結構體中的偏移 s爲結構體,m爲結構體成員 ((s *)0):強制轉化成數據結構指針,並使其指向

原创 Linux下wifi工具wpa_cli使用

wpa_cli使用 掃描 查看掃描結果 添加network 設置SSID 選擇某個network 查看networks 使能某個network 查詢連接情況 自動分配IP地址 API Demo 掃描 [root@demo]#

原创 epoll三種工作模式

epoll三種工作模式 水平觸發模式 LT 之前僞代碼的問題。 假設有100個數據,但是某次讀只能讀50個字節。下一次再讀50個字節。 只要fd對應的緩衝區有數據,即判斷緩衝區 epoll_wait返回 返回的次數與發送的數據次

原创 MQTT在嵌入式Linux上的點燈和關燈

MQTT運行 阿里雲創建設備 MQTT源碼下載及編譯 MQTT移植到ARM Linux平臺 MQTT點燈和關燈 阿里雲創建設備 注意:我這裏用的是連接協議是WIFI協議,如果用網線連接的話,創建的時候選擇:“以太網” MQT

原创 本地套接字

文件格式 管道文件: P ls -l 第一個字符爲P, 那麼爲管道文件 套接字:S 僞文件,不存在磁盤,在內核緩衝區內 有名管道用於沒有血緣關係進程間通信 進程A管道P進程Bopen()管道位於內核緩衝區open()進程

原创 epoll反應堆模型

當epoll_wait發現response_events[]中的fd發生變化時,自動代用ptr指向的回調函數。這樣子可以再次提高一點效率。 傳統 epoll – Server – Listen — cfd — 可讀 — ep

原创 eopll“三板斧”

epoll 僞代碼 epoll"三板斧" 看《一代宗師》,詠春有三板斧,“攤、膀、伏”。 eopll的剛入門時接觸的三個函數: int epoll_create(int size) epoll_ctl(int epfd, int

原创 Libevent使用套路

創建一個事件處理框架 unlink("myfifo"); //創建有名管道 mkfifo("myfifo",0664); //open file int fd = open("myfifo"