原创 學習open62541 --- [31] 正確顯示中文字符

本文主要講述在win10下如何正確的顯示中文字符。 一 Server端代碼 // server.c /* This work is licensed under a Creative Commons CCZero 1.0 Un

原创 學習CANopen --- [3] NMT報文

本文主要講述CANopen中的NMT報文,即網絡管理(Network ManagemenT),該服務可以用於啓動網絡和監控設備。 NMT報文由NMT主機發送,對從機進行啓動、監控和重啓,在CANopen網絡中只允許有一個活動的NM

原创 學習open62541 --- [30] StatusCode便捷查看

OPC UA提供了很多服務,當使用這些服務時,一般都會有個返回值,表示使用過程中是否發生錯誤,這個返回值就是StatusCode,在open62541裏其類型是UA_StatusCode typedef uint32_t UA_S

原创 OPC UA開源庫介紹

本文主要簡單介紹一下OPC UA相關的開源庫,這樣大家可以根據需要去選擇使用。關於OPC UA的本質,這篇博客講的挺好,可以看下。 以下排名不分先後。 1. open62541 這個是本人經常使用的庫,支持跨平臺,支持異步,文檔

原创 CRC32計算方法

最近項目中要使用crc32來計算checksum,先是使用python3的zilib庫進行計算,算出的值作爲參考(使用zlib.crc32()方法)。然後使用網上拷貝的C代碼來算,結果算出的crc32值與zlib.crc32()算

原创 學習open62541 --- [29] 數據源的使用細節

在這篇文章中簡單介紹了數據源的使用,本文會進一步介紹數據源的使用細節,可以讓我們更好的使用它。 一 數據源API 數據源的API有以下幾個, UA_StatusCode UA_Server_addDataSourceVariab

原创 C++構造函數初始值列表的必要性

一 疑問 最近看到一段代碼,如下, #include <iostream> class Little { public: void func() { std::cout << "hello 123\n"; } };

原创 C/C++函數參數爲指針時的注意事項

我們在編寫函數時,有時參數會有指針,這時候就需要注意了。下面以例子來解釋注意事項。 一 例子原型 假設我們有個簡單的C++類(C原理類似), 如下, class Test { public: Test() { m_pt

原创 Python把整數轉換成16進制字符串

我們想把一個整型數據轉換爲字符串,常用的方式是直接使用str(),但是有時想轉成16進制的字符串形勢,如125轉爲'0x7D'這種,下面就講述2種方法來實現這個目的, 1. 使用hex() data = 125 print(hex

原创 golang gui庫fyne的簡單嘗試

fyne是基於go編寫的GUI庫,可以運行在桌面端和移動端,樣式風格使用的是Material Design,其github地址是https://github.com/fyne-io/fyne 本文主要講述如何在Windows下初步

原创 學習open62541 --- [28] NodeSet釋義

NodeSet就是節點集合的意思,NodeSet可以提供一套設置好的節點,用戶可以直接拿來使用,不用自己去重新創建,每個NodeSet有一個自己的NameSpace。 本文主要講述NodeSet在open62541裏是如何起作用的

原创 學習CANopen --- [2] PythonCANopen簡單用法

本文主要講述如何在Linux下使用python進行簡單的CANopen通信,使用了一個叫CANopen for Python的庫,地址是https://github.com/christiansandberg/canopen 該庫

原创 學習CANopen --- [1] CANopenSocket簡單用法

本系列文章主要是來學習CANopen的理論知識以及相關實踐,使用開源軟件CANopenSocket進行學習,不需要使用實際的CAN設備,比較方便。 軟件地址是https://github.com/CANopenNode/CANop

原创 學習open62541 --- [26] Discovery(使用LDS)

Discovery中文的意思是發現,在OPC UA中Discovery是用來發現網絡中的存在OPC UA Server,是個比較實用的功能。 在之前的系列文章中,使用Client去連接Server,必須事先知道Server的地址和

原创 學習open62541 --- [27] Discovery(使用LDS-ME)

在上一篇文章中,我們講述瞭如何使用LDS進行Discovery,本章講述如何使用LDS-ME進行Discovery,ME是Multicast Extension的縮寫,即多播擴展。 既然使用LDS可以Discovery,那麼爲何還