原创 SmartConfig心得總結

1.一定要了解802.11幀格式的原理,瞭解各ADDR字段的含義 2.編碼長度是相對值,獲取同步頭的過程中需要計算編碼基準長度 2.數據一定要順序解耦,即任何一個數據的解析不能依賴於它與其他數據的相對順序,一個較好的方式是使用多個組播地址

原创 VM虛擬機文件更新的bug

VM14上裝了一個虛擬機,然後打開一個文件夾,運行shell,此時刪除該文件夾(丟到回收站),然後從PC上覆制一個新的同名文件夾進來。由於我是將虛擬機硬盤掛爲win10的網絡磁盤,此時PC上的SI4裏面代碼會提示說文件已經換了。點擊確認,

原创 watchdog之喂狗分析

當時遇到的一個問題是,某次修改代碼後編譯燒寫時,出現了一個逐項選擇的菜單,就隨便選了下,結果後續運行程序時,每過一段時間就會自動重啓ESP8266模塊,最開始以爲是硬件壞了,然後就拿了塊新板子,發現還是會崩。拿之前的舊程序,仍然崩潰。 至

原创 空氣堡emo應用無法連接PM2.5檢測儀設備的原因和解決辦法

直接上結論,空氣堡的應用很久沒有更新過了,疑似使用了常駐後臺的方法發送探測請求以喚醒檢測儀設備,但安卓的新版本對常駐後臺進行了限制,導致無法正常發送請求,進而不會喚醒設備。 解決辦法:回退手機的系統版本,如線刷等,到2017年的版本如MI

原创 賦值語句的返回值

  最近寫代碼遇到的一個bug是因爲在判斷語句中錯誤使用賦值語句導致的。 else if (XXX&& (m = 0)) YYY 結果下面的YYY語句未得到執行。 原因是將語法記錯了。 C中的賦值語句的返回值是所賦的值以允許連續賦值語句,

原创 配網過程中的信道兼容問題

公司的產品,之前的配置只能在1~11信道上工作,對於12/13信道,配網包有概率收不到。有時候會出現收到了配網包但是無法連接至網絡的情況,影響用戶體驗。 檢查配網腳本,發現對12/13信道做了特殊處理,即若收到的配網包中的ssid在1~1

原创 函數返回值的設置問題

今天遇到一個問題,是手機端發送控制指令,快速來回修改設備參數,app顯示失敗。 原因是設備端收到app消息後,回調函數調用set函數進行值的修改,成功返回0失敗返回1,並調用另一個函數,將結果發送給app。 但是set函數內部,有針對變更

原创 關於散列儲存

散列的基本思想是在空間和時間上取得一個平衡,尤其適用於key稀疏的情形。 用戶可以用O(1)的時間查找到需要的條目,同時數據儲存佔用的空間不至於太大。 特別的,當可能的key有n1種時,儲存空間爲n2(n2<n1且爲質數),實際放進去的元

原创 TCP連接結束需要四次握手的一種理解

簡單理解就是,TCP連接是雙向的,一個連接的關閉可以理解爲兩個單向連接的關閉。 那麼一個A到B的單向連接的關閉需要幾次來回呢? 典型做法是三次。 1.A發FIN到B(告知B自己話說完了) 2.B回ACK到A(告知A自己收到了) 3.A發

原创 windows下搭建python環境筆記

因爲cpu跑數據太慢,考慮用gpu,發現960m還是支持的。 過程中遇到很多坑,最終總結步驟如下: 1.安裝anaconda3 2.安裝pycharm,需要激活,教程自搜,最近服務器不好使,一般用激活碼 3.進入pycharm建立工程,編

原创 IPV4地址合法性判別(2)

1.測試用例.1.1.111//測試開頭爲點的情況 .1.1.1//長度不夠+開頭爲點 1.1.1.//結尾爲點+長度不夠 11.11.11.//結尾爲點 11..11.1//中間存在連續點 ..111.111//開始存在連續點 111.

原创 正則表達式匹配IPV4地址

給出兩個版本: 版本1【js】: ^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\

原创 ubuntu虛擬機NAT下設置靜態IP以及更新dns

先說設置靜態IP 大致就是在VM-虛擬網絡編輯器裏面看下自己的NAT網關和ip子網掩碼之類的,記下來: 在ubuntu中,點擊右上連接圖標,編輯連接,對應設置好: 注意這裏設置dns似乎沒用,看最後一步即可。 再說換源 https:/

原创 Mousewithoutborder經常連不上

MouseWithoutBorder算是一款很好用的工具,可以用一套鍵鼠控制多臺電腦,但是有時候出現工作會不穩定,解析局域網中的計算機名失敗。這時,就可以用IP Mappings選項,將所有需要控制的電腦和對應的IP按指定格式加入到表中,

原创 類定義中class+宏+類名的意義

看zoom的win_sdk時,看到很多類在定義時,class和類名中間有一個DUILIB_API,形如:   class DUILIB_API CWindowWnd 好奇之後查資料,發現DUILIB_API被展開爲: #ifdef UI