2017年6月28日 星期三

AT command 標準AT command 翻譯

AT command

標準AT command 翻譯,轉自網路…

一、 一般命令
1、 AT+CGMI 給出模塊廠商的標識。
2、 AT+CGMM 獲得模塊標識。
這個命令用來得到支持的頻帶(GSM 900,DCS 1800 或PCS 1900)。
當模塊有多頻帶時,回應可能是不同頻帶的結合。
3、 AT+CGMR 獲得改訂的軟件版本。
4、 AT+CGSN 獲得GSM模塊的IMEI(國際移動設備標識)序列號。
5、 AT+CSCS 選擇TE特徵設定。
這個命令報告TE用的是哪個狀態設定上的ME。
ME於是可以轉換每一個輸入的或顯示的字母。這個是用來發送、讀取或者撰寫短信。
6、 AT+WPCS 設定電話簿狀態。這個特殊的命令報告通過TE電話簿所用的狀態的ME。
ME於是可以轉換每一個輸入的或者顯示的字符串字母。
這個用來讀或者寫電話簿的入口。
7、 AT+CIMI 獲得IMSI。
這命令用來讀取或者識別SIM卡的IMSI(國際移動簽署者標識)。
在讀取IMSI之前應該先輸入PIN(如果需要PIN的話)。
8、 AT+CCID 獲得SIM卡的標識。這個命令使模塊讀取SIM卡上的EF-CCID文件。
9、 AT+GCAP 獲得能力表。(支持的功能)
10、 A/ 重複上次命令。只有A/命令不能重複。這命令重複前一個執行的命令。
11、 AT+CPOF 關機。這個特殊的命令停止GSM軟件堆棧和硬件層。命令AT+CFUN=0的功能與+CPOF相同。 12、 AT+CFUN 設定電話機能。這個命令選擇移動站點的機能水平。
13、 AT+CPAS 返回移動設備的活動狀態。
14、 AT+CMEE 報告移動設備的錯誤。
這個命令決定允許或不允許用結果碼「+CME ERROR:」或者「+CMS ERROR:」代替簡單的「ERROR」。
15、 AT+CKPD 小鍵盤控制。仿真ME小鍵盤執行命令。
16、 AT+CCLK 時鐘管理。這個命令用來設置或者獲得ME真實時鐘的當前日期和時間。
17、 AT+CALA 警報管理。這個命令用來設定在ME中的警報日期/時間。(鬧鈴)
18、 AT+CRMP 鈴聲旋律播放。這個命令在模塊的蜂鳴器上播放一段旋律。有兩種旋律可用:到來語音、數據或傳真呼叫旋律和到來短信聲音。
19、 AT+CRSL 設定或獲得到來的電話鈴聲的聲音級別。

二、 呼叫控制命令
1、 ATD 撥號命令。這個命令用來設置通話、數據或傳真呼叫。
2、 ATH 掛機命令。
3、 ATA 接電話。
4、 AT+CEER 擴展錯誤報告。這個命令給出當上一次通話設置失敗後中斷通話的原因。
5、 AT+VTD 給用戶提供應用GSM網絡發送DTMF(雙音多頻)雙音頻。這個命令用來定義雙音頻的長度(默認值是300毫秒)。
6、 AT+VTS 給用戶提供應用GSM網絡發送DTMF雙音頻。這個命令允許傳送雙音頻。
7、 ATDL 重撥上次電話號碼。
8、 AT%Dn 數據終端就緒(DTR)時自動撥號。
9、 ATS0 自動應答。
10、 AT+CICB 來電信差。
11、 AT+CSNS 單一編號方案。
12、 AT+VGR,AT+VGT 增益控制。這個命令應用於調節喇叭的接收增益和麥克風的傳輸增益。
13、 AT+CMUT 麥克風靜音控制。
14、 AT+SPEAKER 喇叭/麥克風選擇。這個特殊命令用來選擇喇叭和麥克風。
15、 AT+ECHO 回音取消。
16、 AT+SIDET 側音修正。
17、 AT+VIP 初始化聲音參數。
18、 AT+DUI 用附加的用戶信息撥號。
19、 AT+HUI 用附加的用戶信息掛機。
20、 AT+RUI 接收附加用戶信息。

三、 網絡服務命令
1、 AT+CSQ 信號質量。
2、 AT+COPS 服務商選擇。
3、 AT+CREG 網絡註冊。獲得手機的註冊狀態。
4、 AT+WOPN 讀取***作員名字。
5、 AT+CPOL 優先***作員列表。

四、 安全命令
1、 AT+CPIN 輸入PIN。
2、 AT+CPIN2 輸入PIN2。
3、 AT+CPINC PIN的剩餘的嘗試號碼。
4、 AT+CLCK 設備鎖。
5、 AT+CPWD 改變密碼。

五、 電話簿命令
1、 AT+CPBS 選擇電話簿記憶存儲。
2、 AT+CPBR 讀取電話簿表目。
3、 AT+CPBF 查找電話簿表目。
4、 AT+CPBW 寫電話簿表目。
5、 AT+CPBP 電話簿電話查詢。
6、 AT+CPBN 電話簿移動動作。
這個特殊命令使電話簿中的條目前移或後移(按字母順序)
7、 AT+CNUM 簽署者號碼。
8、 AT+WAIP 防止在下一次重起時初始化所有的電話簿。
9、 AT+WDCP 刪除呼叫電話號碼。
10、 AT+CSVM 設置語音郵件號碼。

六、 短消息命令
1、 AT+CSMS 選擇消息服務。
支持的服務有GSM-MO、SMS-MT、SMS-CB。
2、 AT+CNMA 新信息確認應答。
3、 AT+CPMS 優先信息存儲。這個命令定義用來讀寫信息的存儲區域。
4、 AT+CMGF 優先信息格式。執行格式有TEXT方式和PDU方式。
5、 AT+CSAS 保存設置。保存+CSAS和+CSMP的參數。
6、 AT+CRES 恢復設置。
7、 AT+CSDH 顯示文本方式的參數。
8、 AT+CNMI 新信息指示。這個命令選擇如何從網絡上接收短信息。
9、 AT+CMGR 讀短信。信息從+CPMS命令設定的存儲器讀取。
10、 AT+CMGL 列出存儲的信息。
11、 AT+CMGS 發送信息。
12、 AT+CMGW 寫短信息並存儲。
13、 AT+CMSS 從存儲器中發送信息。
14、 AT+CSMP 設置文本模式的參數。
15、 AT+CMGD 刪除短信息。刪除一個或多個短信息。
16、 AT+CSCA 短信服務中心地址。
17、 AT+CSCB 選擇單元廣播信息類型。
18、 AT+WCBM 單元廣播信息標識。
19、 AT+WMSC 信息狀態(是否讀過、是否發送等等)修正。
20、 AT+WMGO 信息覆蓋寫入。
21、 AT+WUSS 不改變SMS狀態。
在執行+CMGR或+CMGL後仍保持UNREAD。

七、 追加服務命令
1、 AT+CCFC 呼叫繼續。
2、 AT+CLCK 呼叫禁止。
3、 AT+CPWD 改變追加服務密碼。
4、 AT+CCWA 呼叫等待。
5、 AT+CLIR 呼叫線確認限制。
6、 AT+CLIP 呼叫線確認陳述。
7、 AT+COLP 聯絡線確認陳述。
8、 AT+CAOC 費用報告。
9、 AT+CACM 累計呼叫計量。
10、 AT+CAMM 累計呼叫計量最大值。
11、 AT+CPUC 單價和貨幣表。
12、 AT+CHLD 呼叫相關的追加服務。
13、 AT+CLCC 列出當前的呼叫。
14、 AT+CSSN 追加服務通知。
15、 AT+CUSD 無組織的追加服務數據。
16、 AT+CCUG 關閉的用戶組。

八、 數據命令
1、 AT+CBST 信差類型選擇。
2、 AT+FCLASS 選擇模式。
這個命令把模塊設置成數據或傳真***作的特殊模式。
3、 AT+CR 服務報告控制。這個命令允許更為詳細的服務報告。
4、 AT+CRC 劃分的結果代碼。這個命令在呼叫到來時允許更為詳細的鈴聲指示。
5、 AT+ILRR 本地DTE-DCE速率報告。
6、 AT+CRLP 無線電通信線路協議參數。
7、 AT+DOPT 其他無線電通信線路參數。
8、 AT%C 數據壓縮選擇。
9、 AT+DS 是否允許V42二度數據壓縮。
10、 AT+DR 是否報告V42二度數據壓縮。
11、 AT\N 數據糾錯選擇。

九、 傳真命令
1、 AT+FTM 傳送速率。
2、 AT+FRM 接收速率
3、 AT+FTH 用HDLC協議設置傳真傳送速率。
4、 AT+FRH 用HDLC協議設置傳真接收速率。
5、 AT+FTS 停止特定時期的傳送並等待。
6、 AT+FRS 接收沉默。

十、 第二類傳真命令
1、 AT+FDT 傳送數據。
2、 AT+FDR 接收數據。
3、 AT+FET 傳送頁標點。
4、 AT+FPTS 頁轉換狀態參數。
5、 AT+FK 終止會議。
6、 AT+FBOR 頁轉換字節順序。
7、 AT+FBUF 緩衝大小報告。
8、 AT+FCQ 控制拷貝質量檢驗。
9、 AT+FCR 控制接收傳真的能力。
10、 AT+FDIS 當前會議參數。
11、 AT+FDCC 設置DCE功能參數。
12、 AT+FLID 定義本地ID串。
13、 AT+FPHCTO 頁轉換超時參數。

十一、V24-V25命令
1、 AT+IPR 確定DTE速率。
2、 AT+ICF 確定DTE-DCE特徵結構。
3、 AT+IFC 控制DTE-DCE本地流量。
4、 AT&C 設置DCD(數據攜帶檢測)信號。
5、 AT&D 設置DTR(數據終端就緒)信號。
6、 AT&S 設置DST(數據設置就緒)信號。
7、 ATO 回到聯機模式。
8、 ATQ 決定手機是否發送結果代碼。
9、 ATV 決定DCE響應格式。
10、 ATZ 恢復為缺省設置。
11、 AT&W 保存設置。
12、 AT&T 自動測試。
13、 ATE 決定是否回顯字符。
14、 AT&F 回到出廠時的設定。
15、 AT&V 顯示模塊設置情況。
16、 ATI 要求確認信息。
這命令使GSM模塊傳送一行或多行特定的信息文字。
17、 AT+WMUX 數據/命令多路復用。

十二、特殊AT命令
1、 AT+CCED 電池環境描述。
2、 AT+CCED 自動RxLev指示。
3、 AT+WIND 一般指示。
4、 AT+ALEA 在ME和MSC之間的數據密碼模式。
5、 AT+CRYPT 數據密碼模式。
6、 AT+EXPKEY 鍵管理。
7、 AT+CPLMN 在PLMN上的信息。
8、 AT+ADC 模擬數字轉換度量。
9、 AT+CMER 移動設備事件報告。
這個命令決定是否允許在鍵按下時是否主動發送結果代碼。
10、 AT+WLPR 讀取語言偏好。
11、 AT+WLPW 寫語言偏好。
12、 AT+WIOR 讀取GPIO值。
13、 AT+WIOW 寫GPIO值。
14、 AT+WIOM 輸入/輸出管理。
15、 AT+WAC 忽略命令。
這個特殊命令允許忽略SMS、SS和可用的PLMN。
16、 AT+WTONE 播放旋律。
17、 AT+WDTMF 播放DTMF旋律。
18、 AT+WDWL 下載模式。
19、 AT+WVR 配置信差的聲音速率。
20、 AT+WDR 配置數據速率。
21、 AT+WHWV 顯示硬件的版本。
22、 AT+WDOP 顯示產品的出廠日期。
23、 AT+WSVG 聲音增益選擇。
24、 AT+WSTR 返回指定狀態的狀態。
25、 AT+WSCAN 掃瞄。
26、 AT+WRIM 設置或返回鈴聲指示模式。
27、 AT+W32K 是否允許32kHz掉電方式。
28、 AT+WCDM 改變缺省旋律。
29、 AT+WSSW 顯示內部軟件版本。
30、 AT+WCCS 編輯或顯示訂製性質設置表。
31、 AT+WLCK 允許在特定的***作符上個性化ME。
32、 AT+CPHS 設置CPHS命令。
33、 AT+WBCM 電池充電管理。
34、 AT+WFM 特性管理。是否允許模塊的某些特性,如帶寬模式、SIM卡電壓等。
35、 AT+WCFM 商業特性管理。是否允許Wavecom特殊特性。
36、 AT+WMIR 允許從當前存儲的參數值創建定制的存儲鏡像。
37、 AT+WCDP 改變旋律的缺省播放器。
38、 AT+WMBN 設置SIM卡中的不同郵箱號碼。

十三、SIM卡工具箱命令
1、 AT+STSF 配置工具箱實用程序。
2、 AT+STIN 工具箱指示。
3、 AT+STGI 獲得從SIM卡發來的預期命令的信息。
4、 AT+STCR 主動提供的結果:工具箱控制反應。

GSM模塊SMS相關AT命令使用說明

[轉載] GSM模塊SMS相關AT命令使用說明

GSM模塊SMS相關AT命令使用說明
(本文可以自由轉載,但必須註明出處)  
[日期:2006-1-28]來源:www.21icbbs.com 通信技術版 作者:飛雪季節

適合人群:首次接觸G網模塊人員
凡是利用GSM模塊二次開發的,不管是用來做公話,還是GPRS通信,其中短消息基本都要使用的。本文大致介紹一下短消息相關的AT命令使用方法。
詳細的AT指令說明,可以參考 07.05,或者西門子MC35I的AT手冊,西門子手冊感覺還是很不錯的。

    由於本文表達的錯誤給您帶來的物資損失和精神損傷,本人概不負責。
1、    短消息的格式
我所見到的模塊短消息基本都提供2種格式,TEXT和PDU。文本模式相對來說比較簡單,
特別適合傳輸那些字符什麼的,對於老外來說,基本就發26個字幕,簡直太方便了。
PDU模式需要進行編碼,目前的漢字傳輸好多都採用PDU模式。由於本人對PDU和怎麼發漢字基本一竅不通,這段就暫時忽略了。

一般模塊默認的都是PDU模式,你可以使用如下命令切換到TEXT模式:
AT+CMGF=1

如果想再切換到PDU模式,使用:
AT+CMGF=0
即可,以下短消息發送&讀取都採用TEXT模式,因為PDU我不是很懂。

2、    怎樣給我發送一條短消息?
現在你手裡有了G網模塊,但首先你要確保如下操作已經完成:
1)    模塊上電並且AT命令同你的PC串口通信順暢。
2)    SIM卡沒有欠費,並且已經登陸GSM網絡(可以使用AT+CREG?查詢,如果返回1或者5表示正常)。
3)     AT+CMGF=1設置完畢。

有了以上的過程,那麼你就可以給我發信息了,你要使用的AT命令是:AT+CMGS。
假如我的手機號是:13636371111(後四位是假的)。
1)    從串口輸入:AT+CMGS=」13636371111」 然後按回車鍵。
2)    這個時候你可以看到有個大於號 『>』彈出,提示你可以輸入消息的內容了。
假如你想發送「hello world」,直接在』>』後面輸入即可,輸入完了後按』CTRL^Z」,
稍微等一下,你的信息也就發出去了,如果編程好像是0x1B(記不清了,你可以查下ASCII表)。

全部過程如下:
AT+CMGS="13636371111"
> hello world
+CMGS: 199
OK

你需要一直等到OK返回,才能確定是成功發出,中間的那個東西可以先不管。
如果你輸入 「 hello world」後,但又不想發了,按ESC可以取消發送,就不再介紹。

3、    怎樣打開傳送回報?
手機上我們都可以找到一個菜單,可以選擇傳送回報的功能,也就是說別人收到你的信息後,
短消息中心會給你一個確認信息,假如是發給心上人,這個功能尤其重要。

對於模塊我們沒有菜單可選,但我們有 AT+CSMP 這樣一條AT命令,在TEXT模式下,
對於手機上的那個選項可以通過這條命令實現,這個命令的具體含義我搞得不是很清楚,
也懶得去研究,曾經有個人告訴我按照下面設置後,傳送回報就可以回來:
AT+CSMP=33
   但即使你這樣設置後,別人收到後,傳送回報你可能還是看不到,
   你還需要設置另外一條AT命令:「AT+CNMI=2,1,,1」,下面就會介紹到這個命令的用法。
   對於PDU模式,控制傳送回報有很大差別。

4、    AT+CNMI的用法。
到目前為止,你至少還有如下的疑惑:

1)    來了新短信,我怎麼知道?
2)    我擔心時間長了SIM卡會寫壞,FLASH也可能寫壞,或者我單片機很強短信不需要存儲,就要模塊直接給我,我該怎麼辦?
3)    我要看傳送回報!

  上面一切疑慮都可以從AT+CNMI中得到答案。
我手頭上有個西門子MC35的手冊,CNMI的幾個參數如下:
AT+CNMI =[<mode>][,<mt>][,<bm>][,<ds>][,<bfr>]
方括號表示參數是可選的,簡要說明下:

<mode>  用來選擇來了新短信,提示信息是否需要從串口直接打出,一般取2。
<mt>    用來選擇新短信的提示方式,取1的話,就比較簡單,比如「+CMTI: "SM",3」,告訴你新短信存在SIM卡裡,序號是3,稍後告訴你怎樣讀取。取2的話,來了新短信就會不作存儲,直接從串口顯示出來。
<ds>   用來選擇傳送回報,如果想看回報的話,一般取1(同AT+CSMP結合使用)。

其他參數不作說明。
這裡提供3組參數可以供你使用:
1)    AT+CNMI=2,1,,1 這組參數可以提供新信息提示,以及傳送回報的功能
2)    AT+CNMI=2,2,,1 這組參數來了新信息直接顯示到串口,不作存儲,仍然打開傳送回報。
3)    AT+CNMI=2,1 這組參數,一般的模塊都會有新信息提示,不會打開回報功能(打開可能會干擾單片機處理)     以上僅供參考,不同廠家模塊實現形式以及支持參數可能會有不同,需要實際測試。

5、    怎樣讀取SIM卡或者手機內部的信息?
比如我們收到這樣的信息:「+CMTI: "SM",3」,知道來了新信息,並且存儲在SIM卡,第3個位置區。我們怎麼去讀取呢?
比較EASY,用AT+CMGR來讀取,如下:
AT+CMGR=3,回車後,即可看到短信內容,比較簡單,這裡就不舉例了。
還有一個用來讀取短信的命令,AT+CMGL,可以列出手機內部的全部AT命令,
比如:
AT+CMGL=」ALL」,回車後可以返回當前存儲區的所有短信,結果自己實踐即可。
+CMGL還有另外3個參數,可以參考手冊,並且PDU還有些不同,參數使用的是數字。
6、    怎樣選擇存儲區?
現在的模塊一般都提供2-3個存儲區,SIM卡,手機(FLASH), SIM卡+FLASH。
我們可以使用 AT+CPMS?進行選擇,關於CPMS的3個參數,這裡簡要介紹一下,比較容易搞混,並不是表示SIM卡或者手機分別有3個存儲區。
設置命令如下:AT+CPMS=<mem1>[,<mem2>][,<mem3>]]
<mem1> Memory to be used when listing, reading and deleting messages:
<mem2> Memory to be used when writing and sending messages:
<mem3> Received messages will be placed to this storage if routing to TE is not
set.
上面是我為了省事直接從西門子手冊COPY的,需要仔細理解。組合著多試幾次就知道了。
7、    怎樣刪除一條短信?
使用AT+CMGD,比如:
AT+CMGD=1 將刪除<mem1>內部的第一條信息(注意模塊返回OK都是刪除成功,有些模塊會返回ERROR,其實表示當前這個位置沒有短信息)。
AT+CMGD還有個全刪的功能,比如:
AT+CMGD=1,4 將刪除<mem1>存儲區內部的全部短信息。(注意第二個參數還有3個,可以看手冊,並且並不是所有廠家模塊都支持全刪)
到這為此吧,已經弄了2個小時了,我要去睡覺了,明天還要起早上班。  
關於短消息的編程,2年前做過一次,是首次接觸AT命令,啥都不會,網上搜索只能零零碎碎的找到點,
結果是沒怎麼做好。體會初學者的苦衷,現在已經不作了,把我所知道的拿出來分享下,獻給初學者。
為了處理好代碼,還是要仔細研究07.05協議和廠家提供的手冊,然後對照實際驗證,盡量不要瞎猜,
即使在一個地方蒙對了,到另外城市你的東西可能就不能用了。
如果有想要代碼的話,再等一等,現在在測試PPP的代碼。

python serial com port demo code

link form =>http://pizgchen.blogspot.tw/2014/08/pyserial.html


安裝 pySerial

您可以使用 pySerial 透過 COM port 與 Arduino 聯繫。

官網 http://pyserial.sourceforge.net/#


下載

切換至下載頁面 https://pypi.python.org/pypi/pyserial,點擊 pyserial-2.7-win32.exe (md5)。


安裝

雙擊  pyserial-2.7-win32.exe,然後依照視窗提示安裝即可。它會被安裝到 C:\Python27\Lib\site-packages\serial\ 這個位置。


開啟 COM4 並送出訊息

COM port 的編號是從 0 開始,所以  serial.Serial(3) 表開啟 COM4。

import serial
ser = serial.Serial(3)  # open COM4 port
print ser.name          # check which port was really used
ser.write("hello")      # write a string
ser.close()             # close port


以名稱方式開啟 COM port 並讀取訊息

超時設為 1 秒,讀取資料時如果時間超過 1 秒沒接收到資料就中斷接收。

import serial
ser = serial.Serial('COM4', 19200, timeout=1)
x = ser.read()          # read one byte
s = ser.read(10)        # read up to ten bytes (timeout)
line = ser.readline()   # read a '\n' terminated line
ser.close()


稍後才設定 COM 的參數

您不必一開始就指定某個特定的 COM port 必須使用多少鮑率等參數,而是可以隨著程式的進行隨時改變參數,方法如下所示:

>>> import serial
>>> ser = serial.Serial()
>>> ser.baudrate = 19200
>>> ser.port = 0
>>> ser
Serial<id=0xa81c10, open=False>(port='COM1', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
>>> ser.open()
>>> ser.isOpen()
True
>>> ser.close()
>>> ser.isOpen()
False


獲取可用的 COM port

import serial.tools.list_ports

coms=serial.tools.list_ports.comports()
for a in coms:
     print a



讓 Arduino 板子 pin 13 的 LED 閃爍

Python code:

import serial

def main():
    sp = serial.Serial()
    sp.port = 'COM4'
    sp.baudrate = 9600
    sp.timeout = 5

    sp.open()
    sp.readline() #to give the hardware handshake time to happen
    sp.write(chr(1))
    value = sp.readline()
    print value
    sp.write(chr(0))
    sp.close()

if __name__ == "__main__":

    main()


Arduino code:

const int ledPin = 13;

void setup(){
    Serial.begin(9600);
    pinMode(ledPin, OUTPUT);
}

void loop(){
    while(Serial.available()){
        switch(Serial.read()) {
          case 0:
            digitalWrite(ledPin, LOW);
            break;
          case 1:
            digitalWrite(ledPin, HIGH);
            break;
        }  
        delay(20);
    }

}


您可能也喜歡

Arduino and Python
http://playground.arduino.cc/interfacing/python

pyFirmata
https://github.com/tino/pyFirmata

Python Arduino Prototyping API
https://github.com/vascop/Python-Arduino-Proto-API-v2


<Python Serial Port Extension>


1. wxTerminal.py
http://sourceforge.net/p/pyserial/code/HEAD/tree/trunk/pyserial/examples/wxTerminal.py


2. wxSerialConfigDialog.py
http://sourceforge.net/p/pyserial/code/HEAD/tree/trunk/pyserial/examples/wxSerialConfigDialog.py

2017年6月27日 星期二

JavaScript即未來:14個JavaScript框架

link form => https://kknews.cc/tech/mmllm2g.html
JavaScript即未來:14個JavaScript框架
當今的市場需要快速開發,但是,重複造輪子是沒有必要的。不論你是一個 JavaScript 新手還是一個資深的 JavaScript 開發者,使用框架和庫都能極大提高你的工作效率。 -- Dr. Michael J. Garbade

本文導航
-熱門的開源 JavaScript 框架和庫 …… 12%
-1. Angular.js …… 18%
-2. Backbone.js …… 25%
-3. D3.js …… 30%
-4. React.js …… 35%
-5. jQuery …… 42%
-6. Ember.js …… 48%
-7. Polymer.js …… 53%
-8. Three.js …… 58%
-9. PhantomJS …… 61%
-10. BabylonJS …… 65%
-11. Boba.js …… 69%
-12. Underscore.js …… 73%
-13. Meteor.js …… 79%
-14. Knockout.js …… 84%
-值得注意的是: Node.js …… 86%



原文網址:https://kknews.cc/tech/mmllm2g.html

Javascript 得到了眾多的技術領導者的擁護和支持,其中一位就是 WordPress 的作者 Matt Mullenweg , 他表示 WordPress 開發者[1] 應該學習 JavaScript , 這也清晰地向 WordPress 社區傳達了 JavaScript 在未來的重要性。 同時,這一觀點也被普遍接受。向著更先進的技術靠攏與過渡也同時保證了 WordPress 在未來的挑戰中不會落於人後。

JavaScript 同時也是眾多站在開源立場的技術中的佼佼者。與現在所流行的觀點相反,JavaScript 不是一個工程,而是一個由其核心團隊共同制定和維護的開放標準。ECMAScript[2] , 這是另一個和 JavaScript 相關的名字, 它雖然不是開源的,但它也有一個開放的標準。
ADVERTISEMENT
當你在瀏覽 GitHub 的時候你就可以發現 JavaScript 在當今有多麼流行了。而且就倉庫的數量[3] 而言,JavaScript 絕對位於所有的程式語言當中最頂尖的那一層次。 同時,在 Livecoding.tv 上你也能看出 JavaScript 有多麼突出,這裡的用戶發布的關於 JavaScript 的視頻的數量比其他的話題多得多。在寫這篇文章的時候(2016 年底),Livecoding.tv 上已經有 45,919 個 用戶原創的 JavaScript 視頻教程[4] 。
熱門的開源 JavaScript 框架和庫
回歸到主題, 龐大的社區是 JavaScript 的一個得天獨厚的優勢,同時這也推動了 JavaScript 的蓬勃發展。這裡有數以百千計的成熟的 JavaScript 框架和庫供開發者使用,同時這些最優秀的框架和庫都是開源的。對當前的 JavaScript 開發者來說,能夠使用這些優秀的框架和庫來進行快速開發已經是必須技能了。當今的市場需要快速開發,但是,重複造輪子是沒有必要的。不論你是一個 JavaScript 新手還是一個資深的 JavaScript 開發者,使用框架和庫都能極大提高你的工作效率。
ADVERTISEMENT
好了,讓我們開始吧!
1. Angular.js
Angular.js[5] 是目前最熱門的 JavaScript 框架之一。它用於開發者構建複雜的 web 應用。Angular.js 背後的思想是它的單頁應用 model。同時它 也支持 MVC 架構。在 Angular.js 中 ,開發者可以在前端中使用 JavaScript 代碼,並從字面上擴展 HTML 詞彙。
Angular.js 自 2009 年出現以來已經有了很大的改進。Angular 1 當前的穩定版本是 1.5.8/1.2.30 。你也可以試一試 Angular 2 ,相對於 Angular 1 來說它有了重大的改進,但這個新版本仍未在全球範圍內被普遍使用。
在 Angular.js 中,數據綁定是完成工作的一個重要概念。在用戶與接口的交互中,當交互完成,view 就會自動更新,隨即新值與 model 交互以確保一切都是同步的。底層的邏輯在 model 中執行完成後,DOM 也會隨即更新。
ADVERTISEMENT
2. Backbone.js
複雜 web 應用並不適用於所有場景。一些較簡單的 web 應用框架例如 Backbone.js[6] 就非常適合學習 web app 開發。Backbone.js 是一個簡單的框架,可以快速方便地構建簡單的 web 應用。和 Angular.js 一樣,Backbone.js 也支持 MVC 。Backbone.js 還有一些其它關鍵特性如路由,RESTful API 支持,適當的狀態管理等等。你甚至還可以用 Backbone.js 來構建單頁應用。
當前的穩定版本是 1.3.3,可以在 GitHub[7] 中找到。
3. D3.js
D3.js[8] 是一個優秀的 JavaScript 庫,它允許開發者創建具有數據處理功能的富 web 頁面。D3.js 使用 SVG、HTML 和 CSS 來實現這一切功能。使用 D3.js ,你可以更輕鬆地將數據綁定到 DOM 及啟用數據驅動事件。使用 D3.js ,你還可以創建高質量的數據驅動的 web 頁面來提供一個更易於理解的視覺效果來呈現數據。查看示例 : LCF 符號哈密頓圖[9] ,由 D3.js 強力驅動。
4. React.js
React.js[10] 是一個使用起來很有趣的 JavaScript 框架。和其它的 JavaScript 框架不同,React.js 志在構建一個高可擴展的前端用戶介面。React.js 出現於 2013 年,它採用了 BSD 開源協議。它因其能夠開發複雜且漂亮的用戶介面所帶來的優勢而迅速發展壯大。
React.js 背後的核心思想是虛擬 DOM 。虛擬 DOM 在客戶端和服務端之間扮演著一個中間人的角色並帶來了顯著的性能提升。虛擬 DOM 的改變和伺服器端 DOM 一樣,只需要更新所需的元素,相對於傳統的 UI 渲染來說極大提升了渲染速度。
你還可以使用 Recat 來實現 meterial 風格的設計,使你能夠開發具有無與倫比的性能的 web 應用。
5. jQuery
jQuery[11] 是一個非常流行的 JavaScript 庫,它擁有眾多特性例如事件處理、動畫等。當你在做一個 web 項目的時候,你不會想要把時間浪費在為一些簡單的功能寫代碼上。jQuery 為減少你的工作量提供了一些易於使用的 API 。這些 API 在所有的常見的瀏覽器中都能夠使用。使用 jQuery, 你可以無縫地控制 DOM 以及 Ajax 這樣在近幾年來擁有大量需求的任務。使用 jQuery,開發者不必擔心一些低級的交互,同時可以使他們的 web 應用的開發更加容易與迅速。
jQuery 同時便於分離 HTML 和 JavaScript 代碼,使開發者能夠編寫簡潔而跨瀏覽器兼容的代碼。並且使用 jQuery 創建的 web 應用在將來也易於改善和擴展。
6. Ember.js
Ember.js[12] 是一個 Angular.js 和 React.js 的功能混合體。當你在瀏覽社區的時候你能明顯地感受到 Ember.js 的熱門程度。Ember.js 的新特性也不斷地在添加。它在數據同步方面與 Angular.js 很像。 雙向的數據交換可以確保應用的快速性和可擴展性。同時,它還能夠幫助開發者創建一些前端元素。
和 React.js 的相似之處在於,Ember.js 提供了同樣的伺服器端虛擬 DOM 以確保高性能和高可擴展。同時, Ember.js 提倡簡化代碼,提供了豐富的 API。Ember.js 還有非常優秀的社區。
7. Polymer.js
如果你曾想過創建你自己的 HTML5 元素,那麼你可以使用 Polymer.js[13] 來做這些事。 Polymer 主要集中於通過給 web 開發者提供創建自己的標籤的功能來提供擴展功能。例如,你可以創建一個和 HTML5 中的 <video> 類似的具有自己的功能的 <my_video> 元素。
Polymer 在 2013 年被 Google 引入並以 三句版 BSD[14] 協議發布。
8. Three.js
Three.js[15] 又是另一個 JavaScript 庫,主要用於 3D 效果開發。如果你在做遊戲開發的動畫效果,那麼你可以利用 Three.js 的優勢。Three.js 在底層中使用 WebGL 使 Three.js 可以輕鬆地被用於在螢幕上渲染 3D 物體。舉一個比較知名的使用 Three.js 的例子就是 HexGLA,這是一個未來派賽車遊戲。
9. PhantomJS
使用 JavaScript 工作就意味著和不同的瀏覽器打交道,同時,當提及瀏覽器的時候,就不得不討論資源管理。在 PhantomJS[16] 中,由於有 Headless WebKit 的支持,所以你可以隨時監測你的 web 應用。Headless WebKit 是 Chrome 和 Safari 使用的渲染引擎中的一部分。
這整個過程是自動化的,你所需要做的只是使用這個 API 來構建你的 web 應用。
10. BabylonJS
BabylonJS[17] 與 Three.js 不相伯仲, 提供了創建平滑而強大的 3D web 應用的 JavaScript API。它是開源的,且基於 JavaScript 和 WebGL 。創建一個簡單的 3D 物體,比如一個球體是非常簡單的,你只需要寫短短几行代碼。通過這個庫提供的 文檔[18],你可以很好地掌握它的內容。 同時 BabylonJS 的主頁上也提供了一些優秀的 demo 來當作參考。在其官網上你可以找到這些 Demo。
11. Boba.js
Web 應用總是有一個共通的需求,那就是分析。如果你還在苦於將數據的分析與統計插入到 JavaScript 的 web 應用中,那麼你可以試一下 Boba.js[19]。Boba.js 可以幫助你將分析的數據插入到你的 web 應用中並且支持舊的 ga.js 。你甚至可以把數據指標和 Boba.js 集成在一起,只需要依賴 jQuery 即可。
12. Underscore.js
Underscore.js[20] 解決了 「當我面對一個空白 HTML 頁面並希望即刻開始工作,我需要什麼」 這個問題。當你剛開始一個項目,你可能會感到失落或者重複一系列你在之前項目中常做的步驟。 為了簡化開啟一個項目的過程和給你起個頭,Underscore.js 這個 JavaScript 庫給你提供了一系列的方法。例如,你可以使用你在之前項目中常用的 Backbone.js 中的 suspender 或者 jQuery 的一些方法。
一些實用的幫助例如 「filter」 和 「invoke the map」 可以給你起個好頭,以助於你儘可能快的投入到工作中。 Underscore.js 同時還自帶了一個套件來簡化你的測試工作。
13. Meteor.js
Meteor.js[21] 是一個快速構建 JavaScript 應用的框架。它是開源的且它能夠用於構建桌面應用、移動應用和 web 應用。Meteor.js 是一個全棧的框架同時允許多平台的端到端開發。 你可以使用 Meteor.js 來實現前端和後端功能,同時它也能密切監視應用的性能。Meteor.js 的社區非常龐大,所以它會有不斷的新特性更新或者是 bug 修復。Meteor.js 也是模塊化的,同時它能配合一些其它的優秀的 API 使用。
14. Knockout.js
Knockout.js[22] 在這些庫中可能是最被低估的一個。它是一個基於 MIT 開源協議的開源 JavaScript 框架。作者是 Steve Sanderson[23]。它基於 MVVM 模式。
值得注意的是: Node.js
Node.js[24] 是一個強有力的 JavaScript 運行時環境。它可以被用於使用真實世界數據來構建快速且可擴展的應用。它既不是一個框架也不是一個庫,而是一個基於 Google Chrome 的 V8 引擎的運行時環境。你可以用 Node.js 來創建多元化的 JavaScript 應用,包括單頁應用、即時 web 應用等等。從技術層面上來講,由於它的事件驅動式架構,所以 Node.js 支持異步 I/O 。這種做法使得它成為開發高可擴展應用的一個極好的解決方案的選擇。查看 Node.js[25]在 livecoding.tv 上的視頻。
總結
JavaScript 是 web 開發中的通用語言。它之所以快速發展不僅僅是因為它所提供的內容,更多的是因為它的龐大的開源社區的支持。以上提到的框架和庫對任何一個 JavaScript 開發者來說都是必須知道的。它們都提供了一些途徑來探索 JavaScript 和前端開發。上面提及的大部分框架和庫頻繁地在 Livecoding.tv 上出現,其大部分來自對 JavaScript 及其相關技術感興趣的軟體工程師。



原文網址:https://kknews.cc/tech/mmllm2g.html

2017年6月22日 星期四

install online upload tool by linux

$sudo apt-get install lrzsz

install online upload tool by linux 


$rz -y 


Template - EJS

https://www.kdzone.net/2016/01/node-express-3-template-ejs.html

當然現在線上有多的JavaScript Template
比較多人知道的就是Jade 跟 EJS


[有javascript or php背景的 推薦用]
EJS

[有html&&python的 推薦用]
Jade 

[有些可以關注的]
 
1.感覺很快,但是目前還在bate板當中可以關注 - Paperclip.js

2.由twitter開發的- Hogan

3.這個是跟是我自己有在關注的 Jiko
當然還有更多只是我們今天已EJS作為一個教學

實作EJS:
1.先安裝EJS
 npm install ejs --save

2.修改

app.js
 var express = require('express');
 var app = express();
 app.set('view engine', 'ejs');
 app.get('/', function(req, res) {
  res.render('default', {
   title: '首頁',
   users: ['Kai', 'aYen', 'Kyousuke']
  });
 });
 app.get('/me', function(req, res) {
  res.send('<h1>我的FB</h1>' + 'https://www.facebook.com/witkaiy');
 });
 app.get('/who/:name?', function(req, res) {
  var name = req.params.name;
  res.send(name + ' 在這邊歐');
 });
 app.get('/who/:name?/:title?', function(req, res) {
  var name = req.params.name;
  var title = req.params.title;
  res.send('<p>名稱: ' + name + '<br>值稱: ' + title + '</p>');
 });
 app.get('*', function(req, res) {
  res.send('沒有東西噢');
 });
 var server = app.listen(3000, function() {
  console.log('Listening on port 3000');
 });  

3.新增
./views/default.ejs

 <!DOCTYPE html>
 <html>
 <head>
  <meta charset="utf-8">
  <title>實作EJS</title>
 </head>
 <body>
 <h1><%= title %></h1>
 <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quod, praesentium dolor velit culpa cupiditate odio nihil voluptates aliquid eum dolore eligendi quas nobis nam nesciunt odit pariatur minus cum.</p>
 <ul>
 <% for(var i=0; i<users.length; i++) {%>
  <li><%= users[i] %></li>
 <% } %>
 </ul>
 </body>
 </html>



1.這邊看到第一個不同的是:
 app.set('view engine', 'ejs');
這邊我宣告了我們的view engine為ejs

然後render default 這一頁面 我們可以看到render出來的畫面,是把
{
   title: '首頁',
   users: ['Kai', 'aYen', 'Kyousuke']
  }

宣告的資料 放進去後產出HTML畫面

2017年6月20日 星期二

MongoDB 教程 link


http://www.runoob.com/mongodb/mongodb-indexing.html

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

内容列表

NoSQL 简介
介绍NoSQL基础概念。
MongoDB 简介
介绍MongoDB基础概念。
window平台安装MongoDB
介绍如何在window平台上安装MongoDB。
Linux平台安装MongoDB
介绍如何在Linux平台上安装MongoDB。
MongoDB 连接
介绍 MongoDB 数据库,对象,集合应用。
PHP安装MongoDB扩展
介绍PHP安装MongoDB扩展的方法。
MongoDB 插入文档
介绍MongoDB 数据插入操作。
MongoDB 更新文档
介绍 MongoDB 更新数据操作。
MongoDB 删除文档
介绍 MongoDB 删除数据操作。
MongoDB 查询
介绍 MongoDB 数据查询操作。
MongoDB条件操作符
介绍MongoDB条件操作符的使用。
MongoDB $type 操作符
介绍 MongoDB 条件操作符$type的使用。

2017年6月15日 星期四

Virtual Machine 中進行開發專案優點 => VM & Docker

[Virtual Machine 中進行開發專案優點]

在OS 更新頻煩的 現時環境 避面受非技術因素干擾需要穩定的作業環境!

開發者有很多方式去建構自己的開發環境,以 PHP 開發來說,你可以手動ㄧ一安裝每個需要的軟體,像是PHP, Apache, MySQL, phpMyAdmin, 或是你可以選擇別人打包好的軟體包,像是XAMPP, MAMP, WAMP,或是透過像Homebrew、APT/YUM 這種套件管理程式來協助你安裝軟體。

然而隨著 Web Application 的架構日益複雜,新的技術和 framework 也不斷產生,像是 NodeJS、MongoDB、 AngularJS、Memcached 等等,若是以專案為導向的公司,可能還需要因應不同的專案來配置不同的軟體架構。然而不同的軟體彼此之間可能會有衝突,像是如果A專案使用 PHP 5.3, 但是B專案使用 PHP 5.5, 你該怎麼辦? 若是你更新了你的電腦作業系統,或是電腦整個掛點了,你該怎麼辦?有新的成員加入團隊,要重頭開始協助他安裝開發所需要的環境?
另外,除了開發者本身的開發環境外,大型的軟體公司通常還會有 Staging Server 和 Production Server,另外針對軟體測試通常還會有另外的測試環境。我想大家常常聽到的一句話就是 "這在我電腦上可以跑啊!",環境的不同常常導致這樣的問題產生,因此如何確保這些環境都能一樣,減少不確定的變因,是開發過程中一個相當重要的議題。
因此,我們可以發現以下的問題,在我們的開發生涯當中,多少都會遇過:
1. 設定過程繁雜且很難重複:安裝開發環境相當花時間,當電腦壞掉或是有新進成員,安裝環境常常讓人一個頭兩個大。
2. 環境無法獨立:不同的專案需要不同的開發環境,軟體版本可能互相影響。
3. 開發環境和 production 環境不同:要開發者的使用和 production 一樣的作業系統,基本上是不太可能的。

Virtualization(虛擬化) to the rescue

虛擬化其實不是一個很新的概念,不過通常用在實際的Production環境上,但隨著上述的問題不斷產生,已經有越來越多的開發者將虛擬化的概念帶到自身的開發環境中,甚至有許多的開放原始碼軟體,本身就提供打包好的虛擬化環境,讓開發者可以快速建構開發環境,例如 Laravel 官方提供的 Laravel Homestead 讓開發者可以快速部署開發環境。而 WordPress 社群也有開發者提供了像 Vagrantpress 或是 VVV 等工具。另外很最近火紅的 Docker, 也是虛擬化的工具選項之一。

有什麼好處呢?

1. 開發速度加快,不用花一堆時間在繁雜的設定上。
2. 不會因為作業系統更新或是電腦壞掉要重新修復或設定開發環境。
3. 你的電腦可以保持乾淨, 不會安裝一堆軟體在自己的作業系統上。
4. 開發環境和實際的 Production 環境可以保持一致
5. 你還是可以繼續使用你偏好的作用系統。 如果你喜歡 Windows,那麼你還是可以繼續使用它。
6. 專案不會彼此影響。不同的專案可以跑在不同VM上,不會互相干擾。


dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt Docker 映像介紹

 dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt Docker 映像介紹 1. 基本概述 名稱: dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt 維護者: Dorowu 用途: 提供基於 Ub...