2015年9月10日 星期四

integer <--> char string, float(double) <--> char string

integer -> char string
char * itoa ( int value, char * str, int base );
http://www.cplusplus.com/reference/cstdlib/itoa/

char string -> integer
int atoi (const char * str);
http://www.cplusplus.com/reference/cstdlib/atoi/


float(double) -> char string
char * gcvt ( double value, int ndigits, char * buffer );
http://www.kev.pulo.com.au/pp/RESOURCES/cplusplus/ref/cstdlib/gcvt.html
說明:gcvt()將num轉成ASCII code,ndigits顯示位數。
gcvt()與ecvt()和fcvt()不同的地方在於,gcvt()轉換後的字串包含小數點或正負符號。

char * ecvt(double value, int ndigit, int *decpt, int *sign);
char * fcvt(double value, int ndigit, int *decpt, int *sign);
說明:ecvt把double轉成字串。value要轉換的double,儲存最多ndigit個char,並加('\0')作結尾。如果value數字個數超過ndigit,低位數字被捨入。如果少於ndigit個數字,以'0'填滿。
  只有數字才存儲在該字串中,小數點位置和+-,會存在decpt和sign中。decpt指小數點位置,0或負數指出小數點在第一個數字的左邊。sign指正負符號,正數或0,sign為正數,否則為負數。

  fcvt() 和 ecvt() 的一個不同的地方是第 2 個參數表示的是小數點後顯示的位數,它的轉換也是四捨五入的。fcvt()->全部顯示幾個位數,ecvt()->小數點後面幾個位數


char string -> float(double)
double atof (const char* str);
http://www.cplusplus.com/reference/cstdlib/atof/

scanf(Read formatted data from stream(File *))

Function define: int scanf(const char * format,.......);

Header: #include<stdio.h>

函數說明: scanf()會將輸入的數據根據參數format來轉換並格式化數據

Scanf()格式轉換的一般形式如下
%[*][size][l][h]type

以中括號括起來的參數為選擇性參數,而%與type則是必要的。
* 代表該對應的參數數據忽略不保存。
size 為允許參數輸入的數據長度。
l 輸入的數據數值以long int 或double型保存。
h 輸入的數據數值以short int 型保存。

type的幾種形式
%d 輸入的數據會被轉成一有符號的十進制數字(int)。
%i 輸入的數據會被轉成一有符號的十進制數字,若輸入數據以「0x」或「0X」開頭代表轉換十六進制數字,若以「0」開頭則轉換八進制數字,其他情況代表十進制。
%0 輸入的數據會被轉換成一無符號的八進制數字。
%u 輸入的數據會被轉換成一無符號的正整數。
%x 輸入的數據為無符號的十六進制數字,轉換後存於unsigned int型變量。
%X 同%x
%f 輸入的數據為有符號的浮點型數,轉換後存於float型變量。
%e 同%f
%E 同%f
%g 同%f
%s 輸入數據為以空格字符為終止的字符串。
%c 輸入數據為單一字符(char)。
[] 讀取數據但只允許括號內的字符。如[a-z]。
[^] 讀取數據但不允許中括號的^符號後的字符出現,如[^0-9].

返回值  成功則返回參數數目,失敗則返回-1,錯誤原因存於errno中。

Sample:
Read a line
while(EOF != fscanf(streams, "%[^\n]\n", buffer)) {
printf("%s\n", buffer);
}

Read a lot of varibles
while(fscanf(streams, "%d %s %s %s", &d1, &s2, &s3, &s4) != EOF ){
printf("%s\n", s2);
}

Reference:
http://stackoverflow.com/questions/20108334/traverse-file-line-by-line-using-fscanf
http://www.cplusplus.com/reference/cstdio/fscanf/
https://msdn.microsoft.com/zh-tw/library/6ybhk9kc.aspx

2015年6月18日 星期四

機油參數 - 機油認證 - API(美國石油協會)

API(American Petroleum Institute, 美國石油協會)

API認證標記(爆星圖(Starburst),如下圖):有此爆星圖標記即表示此機油符合「國際潤滑劑標準化和核可委員會」(International Lubricant Standardization and Approval Committee, ILSAC),所制定的引擎保護及節能標準,此機構(ILSAC)由美、日等國之大車廠所組成。



API服務標誌(甜甜圈標誌(Donut),如下圖):



甜甜圈內分成三部分:
內 圈(黏度等級):就是SAE的認證,請參考之前文章
上半圈(性能級別)
    API機油認證極別由兩組英文字組成,
    S(Service)->汽油引擎用油類別(適用於裝有汽油引擎的轎車、廂型貨車和輕型卡車)
    C(Commercial)->柴油引擎用油類別(適用於裝有柴油引擎的重型卡車和其他柴油車)
    G->客車所使用機油

    SN(2011), SM(2010), SL(2004), SJ(2001)->英文字母越大,代表越新認證,也代表越嚴苛,後面的數字表示只支援之前的車款,而更早的認證已經廢止。
CJ-4(2010), CI-4(2002), CH-4(1998)->英文字母越大,代表越新認證,也代表越嚴苛,後面的數字表表示符合的排放標準年度,而更早的認證已經廢止。

    新的認證均優於舊的認證,可用於舊的認證車款。

下半圈(附加)
3->帶有節能
5->包含CI-4 Plus的服務標誌

參考文章:
http://www.pqiamerica.com/apiserviceclass.htm
http://www.api.org/~/media/files/certification/engine-oil-diesel/publications/engine-oil-guide_chinese-2012.pdf?la=en


2015年4月2日 星期四

機油參數 - 機油認證 - ACEA(歐洲汽車製造商協會)

ACEA(European Automobile Manufacturers' Association, 歐洲汽車製造商協會) 

用一個英文字來表示機油類別與一個數字來表示等級,例如:A3

A: 汽油車機油(gasoline engines)
B: 輕型柴油車機油(light duty diesel engines)
C: 有觸媒轉換器的引擎(catalyst compatible oils for gasoline and diesel engines with after treatment devices)
E: 重型柴油車機油(Heavy Duty Diesel engine oils)

2004年已經把Ax/Bx合在一起顯示,所以常常看到的都是A3/B4 or A5/B5


A/B(gasoline and diesel engine oils)
A1/B1
適合汽油及輕型柴油引擎之機油,需具備低摩擦(friction)、低黏性(viscosity)等特性,且高溫及高剪(high shear rate)切黏度(HTHS)測試值在2.6 ~ 3.5 mpa.s 之間

A3/B3
適合高性能汽油及輕型柴油引擎之機油,依引擎製造廠規範使用,可延長換油里程,需具備低黏度、全年使用之需求,且符合引擎製造廠所定義之嚴苛使用情況

A3/B4
適合高性能汽油及採用缸內直噴之輕型柴油引擎,同時符合A3 / B3等級之標準
Stable, stay-in-grade oil intended for use in high performance gasoline and direct injection diesel engines, but also suitable for applications described under A3/B3.

A5/B5
適合高性能汽油及輕型柴油引擎之機油,可延長換油里程,須具備低摩擦(low friction)、低黏度(low viscosity)且高溫及高剪切黏度(shear rate)(HTHS)測試值在2.9 ~ 3.5 mpa.s 之間

Cx(Catalyst compatibility oils)
C1
適合裝有柴油微粒子濾清器(DPF)與三相觸媒轉化器(TWC)之各類高性能汽油及輕型柴油引擎。此等級之油品必須具備低摩擦、低黏度與低SAPS的特性,且能耐高溫及高剪切黏度(HTHS)測試值在2.9以上。可延長DPF及TWC的壽命且有助減少油耗。

注意:這些油有最低的SAPS的限制且某些引擎有可能不適用

C2
適合裝有柴油微粒子濾清器(DPF)與三相觸媒轉化器(TWC)之各類高性能汽油及輕型柴油引擎。此等級之油品必須具備低摩擦、低黏度的特性,且能耐高溫及高剪切黏度(HTHS)測試值在2.9以上。可延長DPF及TWC的壽命且有助減少油耗。

注意:某些引擎有可能不適用

C3
適合裝有柴油微粒子濾清器(DPF)與三相觸媒轉化器(TWC)之各類高性能汽油及輕型柴油引擎。此等級之油品需耐高溫及高剪切黏度(HTHS)測試值在3.5以上。可延長DPF及TWC的壽命且有助減少油耗。

注意:某些引擎有可能不適用

C4
適合裝有柴油微粒子濾清器(DPF)與三相觸媒轉化器(TWC)之各類高性能汽油及輕型柴油引擎。此等級之油品需具備Low SAPS的特性,且能耐高溫及高剪切黏度(HTHS)測試值在3.5以上,可延長DPF、TWC壽命並有助減少油耗。

注意:某些引擎有可能不適用

SAPS : Sulphated(硫酸) Ash(灰), Phosphorus(磷), Sulphur(硫)
DPF : Diesel Particulate Filter
TWC : Three way catalyst
HTHS : High temperature / High shear rate viscosity

Ex(Heavy Diesel Engine)
E4
具備優異的潤滑、抗磨擦、低油泥及活塞清淨效果,推薦用於歐盟環保標準Euro1、Euro2、Euro3、Euro4或Euro5且經常使用於非常嚴苛狀態下之重負荷柴油引擎,但不適用於裝設柴油微粒子濾清器(DPF)、一些有廢氣再循環系統(EGR)引擎或含SCR NOx減少系統的引擎

E6
具備優異的潤滑、抗磨擦、低油泥及活塞清淨效果,推薦用於歐盟環保標準Euro1、Euro2、Euro3、Euro4、Euro5和Euro6等配備汙染防治控制系統且經常使用於非常嚴苛狀態下之重負荷柴油引擎。適用於配備廢氣再循環系統(EGR)、柴油微粒子濾清器(DPF)及含SCR NOx減少系統,之各類重負荷柴油引擎。E6 等級油品特別建議使用於裝設柴油微粒子濾清器(DPF)或是設計要求使用低硫含量之柴油引擎

E7
具備優異的潤滑、抗磨擦、低油泥及活塞清淨效果,推薦用於歐盟環保標準Euro1、Euro2、Euro3、Euro4和Euro5等配備汙染防治控制系統且經常使用於非常嚴苛狀態下之重負荷柴油引擎。適用於多數配備廢氣再循環系統(EGR)及含SCR NOx減少系統之各類重負荷柴油引擎,但不適用於裝設柴油微粒子濾清器(DPF)之柴油引擎

E9
具備優異的潤滑、抗磨擦、低油泥及活塞清淨效果,推薦用於歐盟環保標準Euro1、Euro2、Euro3、Euro4、Euro5和Euro6等配備汙染防治控制系統且經常使用於非常嚴苛狀態下之重負荷柴油引擎。適用於配備廢氣再循環系統(EGR)、柴油微粒子濾清器(DPF)及含SCR NOx減少系統,之各類重負荷柴油引擎。此等級油品特別建議使用於裝設柴油微粒子濾清器(DPF)或是設計要求使用低硫含量之柴油引擎。



細節可以參考下面的文件:
http://www.acea.be/uploads/publications/2012_ACEA_Oil_Sequences.pdf
http://gail.federchimica.it/docs/default-source/congresso-ueil-2010/Curran.pdf?sfvrsn=0

2015年3月16日 星期一

機油參數 - 機油黏度 - SAE(汽車工程師協會)

黏度級數
機油黏度目前世界各國皆以美國汽車工程師協會(Society of Automotive Engineers,簡稱 SAE)所制定的 SAE J 300為標準, 此規範引擎低溫及高溫工作狀態。

低溫時,測定機油的低溫啟動能力(Cold Cranking)及低溫泵送能力(Cold Pumping),確保在特定溫度時的機油黏度足以啟動引擎並可被機油泵浦適當的壓送到各部組件潤滑,符合該測試黏度者,則以該黏度等級加上 "W" 字體標示。
高溫時,以100°C時的運動黏度(Kinematic viscosity)以及150°C 時的高溫高剪應力(HTHS)黏度為分級基準,符合該黏度範圍者,則直接以該黏度等級標示,如 SAE 30。

單級機油:當機油黏度與SAE分類中不論夏季或冬季級數中的單級級數相應時,稱之為單級機油,例如一個"SAE10W"(冬)或 "SAE30"(夏)機油就叫單級。

複級機油:機油如果同時符合一個夏季級數及一個冬季級數就是複級機油,例如"SAE 5W/30就是複級機油。


SAE 機油黏度黏度範圍150°C高切力黏度(cP)
低溫測試100°C 黏度CST
曲柄轉動黏度(cP), 溫度泵動黏度, 溫度最小值最大值
0W3250, -3060000, -403.8
5W3500, -2560000, -353.8
10W3500, -2060000, -304.1
15W3500, -1560000, -255.6
20W4500, -1060000, -205.6
25W6000, -560000, -159.3
205.69.32.6
309.312.52.9
4012.516.32.9(0W/40, 5W/40, 10W/40)
4012.516.33.7(15W/40, 20W/40, 25W/40)
5016.321.93.7
6021.926.13.7

2015年1月12日 星期一

Focus 水箱水(自行更換)

MK II 水箱容量

TDCI -> 8.4公升
1.8, 2.0 -> 6.5公升

準備工具:
1. Prestone AF-888 100% 容量 1加侖 (3.78公升)
2. 泰山純水、黑松天霖純水、 維大力家庭純水、統一H2O Water純水 - 建議12公升以上

更換步驟:
1. 熄火
2. 副水箱的兩條回流管拔掉接到水桶
3. 發動引擎,往副水箱一直灌水,直到回流管接近透明(也可等到大循環,這樣更乾淨)
4. 把水箱精全部加入副水箱,直到回流管變成水箱精顏色,把回流管接回去。
5. 車子繼續發動,水變少就加水直到車子做大循環(車子的風扇轉動),把水加到Max。
6. 收工。