目前也做了不少工業協議了,做得比較好的比如js1939b,mb_rtu_tcp。已經算是標準件了。???????所以分享點自己的心得。
要考慮在單個程式中的可重用性。
可以採取c++的方式封裝**,這樣就可以不考慮重入問題了。
也可以把所有影響重入性的因素踢出到中介軟體之外。通常這是很難的,而且會提高維護複雜性,你不得不**著可重入性、相容之前應用(介面不可大動)的兩個腳鐐前進
要有一致性的程式設計思路:
比如modbus,每個功能碼的處理其實都差不多,要抽象出統一性,然後再新增個性化的處理
要盡降低自己的維護成功。
如今是個記憶體白菜價的時代,處理器通常不缺那麼一丟丟記憶體。比如我吧modbus-rtu和modbus-tcp完全封裝在一起,結果不僅僅減少了維護成本,後續還果斷遇到了串列埠和網口同時用的場景。????
不要排斥指標,要好好利用它。
不要被強資料型別**,要精通資料型別轉化
真正的c大神可以叫做指標和資料型別轉化大神
關於redis的某些事
1 redis使用場景,能做什麼事,不方便做什麼事?2 為什麼使用redis?3 redis為什麼這麼快?4 redis快取和資料庫資料一致性問題 先刪除快取,然後更新資料庫 5 如何應對快取穿透和快取雪崩問題以及快取擊穿 快取穿透,即黑客故意去請求快取中不存在的資料,導致所有的請求都懟到資料庫上,...
關於某些莫隊的優化
這種優化只能對於在擴充套件縮小區間維護答案時,查詢的東西是可以差分的,並且只能優化掉修改的複雜度 比如你在查乙個區間的逆序對,當你擴充套件右端點時,你需要將答案加上前面這段區間中比新的右端點位置上的值大的個數,這種查詢就是可以差分的,比如我們當前的區間的左右端點為l,r l,rl,r,那麼我們擴充套...
工業上的通訊協議之TCP UDP協議
如果你注定要成為厲害的人,那問題的答案就深藏在你的血脈裡 tcp transmission control protocol 和udp user datagram protocol 協議屬於傳輸層協議。其中tcp提供ip環境下的資料可靠傳輸,它提供的服務包括資料流傳送 可靠性 有效流控 全雙工操作和...