2015年8月17日 星期一
[仙境傳說] Linux下執行Openkore遇到Unable to load the file config.txt.問題
基本上,閱讀完上一篇[仙境傳說]在ubuntu上運行OpenkoreTW後,照理說環境就已經建構完成。
但是為什麼有人再打開終端機,嘗試開啟外掛時卻會遇到Unable to load the file config.txt的問題,如下圖:
由於config.txt應該處於 openkore/control資料夾內,如果資料夾內檔案是存在的那又是為什麼找不到呢?
2015年8月8日 星期六
[Linux C] ANSI逃脫碼與printf顏色教學
注意:Windows的console是不支援ANSI逃脫碼,想在Windows的console換色,本篇並不適合。
- ANSI逃脫碼介紹
圖一、CSI標準格式 |
注意:通常n1是填入 \x1b,為什麼呢?因為在ASCII TABLE內0x1B代表的就是escape,也就是所謂的逃脫字元!
![]() |
圖二、ASCII TABLE - 0x1B |
2015年8月4日 星期二
[Linux C] C語言MD5雜湊運算教學
本篇稍為記錄一下如何使用openssl的library快速的做MD5雜湊運算。
--
首先,要在C語言計算MD5,有一些公開的library可以幫助我們快速計算一些雜湊運算,當然MD5也是被包含在內的。
這邊介紹使用OpenSSL,基本上這個package在各版本的linux上的package list內都找的到。
筆者本次是使用Ubuntu 15.04版本,所以像我就是使用 sudo apt-get install openssl 快速透過package manager安裝。
基本上使用方法很簡單,步驟就是
--
首先,要在C語言計算MD5,有一些公開的library可以幫助我們快速計算一些雜湊運算,當然MD5也是被包含在內的。
這邊介紹使用OpenSSL,基本上這個package在各版本的linux上的package list內都找的到。
筆者本次是使用Ubuntu 15.04版本,所以像我就是使用 sudo apt-get install openssl 快速透過package manager安裝。
基本上使用方法很簡單,步驟就是
[Linux C] C語言檢查檔案是否存在
在C上是有函式可以檢查該process是否有足夠權限存取某個檔案的。
該函式叫做access(const char *pathname, int mode)
來檢單看一下man page上關於access函式的介紹吧!
--
2015年7月10日 星期五
[Linux C] C語言上Modbus RTU CRC16計算教學與實作
一、Modbus CRC-16
Modbus CRC-16是屬於邏輯運算的一種,假設現在有一個串資料是0x01, 0x25,想要運算,其算法如下:
- 步驟一:先將一個16bit(在C中可以使用unsigned short)暫存器設為0xFFFF,這邊先命名該暫存器為crc。
- 步驟二:將crc與資料的1個byte做XOR運算,這邊的舉例第一次就是與0x01做XOR,第二次就是0x25
- 步驟三:接下來,將crc向右位移1個bit,並且最高有效位元(MSB)填0。
- 步驟四:在位移前的crc,若其最低有效位元(LSB)是1,則將位移後的CRC對0xA001做運算。
- 接下來繼續重複步驟3~4,直到做滿8次。
- 步驟五:接下來將Data的下一個byte拿來做步驟二到四,直到全部資料皆運算完為止。
我們來看個圖例吧!下圖是將1個byte的資料:0x01拿來運算的過程。
[Linux C] libwebsocket 隨手筆記
此篇稍為記錄一下在C上面時做websocket時遇到的問題...
---
(a) callback function
return 0;
之前不小心return ;造成websocket的connection都無法建立
---
(b)libwebsocket_write
想要將資料寫出去必須使用libwebsocket_write的函式回傳
下面來個簡單的範例!
char *text = "Hello World!"; int len = strlen (text) + 1; unsigned char *buf = malloc(LWS_SEND_BUFFER_PRE_PADDING + len + LWS_SEND_BUFFER_POST_PADDING); /* copy string including terminating NUL */ memcpy (buf + LWS_SEND_BUFFER_PRE_PADDING, text, len ); libwebsocket_write(wsi, buf + LWS_SEND_BUFFER_PRE_PADDING, len, LWS_WRITE_TEXT); free(buf);
2015年7月9日 星期四
[Linux] libudev抓取裝置描述
本篇是打算記錄一下使用libudev抓取device某些描述的方法。
例如:VID/PID本身是兩串數字,但是在/usr/share/misc/usb.ids這個文件裡面是有對應的字串的。
題外話..VID跟PID可以再http://www.linux-usb.org/usb.ids找到其對應
所以有需要的時候可以從上述網址更新一下你的usb.ids
--
我們來看一下簡單的範例,透過linux指令lsusb -v可以看到很多裝置的資訊。
訂閱:
文章 (Atom)