Time of Update: 2018-12-03
轉載請註明出處作者:小馬PBOC的IC卡大部分資料都是TLV格式的. EMV的手冊簡單的編碼規則說明.我下面很詳細的分析TLV的編碼格式並給出相應的TLV解碼的虛擬碼. TLV是tag, length和value的縮寫.一個基本的資料元就包括上面三個域. Tag唯一標識該資料元, length是value域的長度. Value就是資料本身了. 舉個例子, 下面是一個tlv格式的AID(應用標識符)位元組串”9F0607A0000000031010”, 其中9F06是tag, 07是長度, A00
Time of Update: 2018-12-03
目前全球的趨勢是IC卡將要取代磁條卡, 國內的銀行也正在慢慢試驗發卡. 中國人民銀行早在05年就發布了PBOC 2.0的規範, 它其實就是EMV2000的中文版. 既然卡的標準變了,那麼卡的受理終端也要改造,國內一些公司的POS裝置已經過了相關認證, 有些裝置已經在08北京奧運會期間, 受理老外的EMV卡了. 全球的EMV遷移主要是分三個步驟: 第一階段, 取代所以的銀行磁條卡. 第二階段實現SDA和DDA(離線資料認證).
Time of Update: 2018-12-03
五、定義模式規則你可以使用模式規則來定義一個隱含規則。一個模式規則就好像一個一般的規則,只是在規則中,目標的定義需要有"%"字元。"%"的意思是表示一個或多個任一字元。在依賴目標中同樣可以使用"%",只是依賴目標中的"%"的取值,取決於其目標。有一點需要注意的是,"%"的展開發生在變數和函數的展開之後,變數和函數的展開發生在make載入Makefile時,而模式規則中的"%"則發生在運行時。1、模式規則介紹模式規則中,至少在規則的目標定義中要包含"%",否則,就是一般的規則。目標中的"%"定義表
Time of Update: 2018-12-03
轉載請註明出處作者:小馬這幾天調一個程式時,遇到一個和OnOK, OnCancel有關的bug, 於是整理一下寫了下面這篇文章.首先OnOK是對ID_OK的響應,
Time of Update: 2018-12-03
六、多行變數 還有一種設定變數值的方法是使用define關鍵字。使用define關鍵字設定變數的值可以有換行,這有利於定義一系列的命令(前面我們講過“命令包”的技術就是利用這個關鍵字)。define指示符後面跟的是變數的名字,而重起一行定義變數的值,定義是以endef關鍵字結束。其工作方式和“=”操作符一樣。變數的值可以包含函數、命令、文字,或是其它變數。因為命令需要以[Tab]鍵開頭,所以如果你用define定義的命令變數中沒有以[Tab]鍵開頭,那麼make就不會把其認為是命令。下面的這個樣
Time of Update: 2018-12-03
轉載請註明出處作者:小馬最近在看斯坦福大學的<<programming abstractions>>課程,覺得其中的一節課講得特別好,大概50分鐘左右的一節課的視頻, 僅僅一節課,就讓我深刻體會到國內大學的電腦教育跟美國的差別. 可以回憶一下自己在學校讀書時, 老師是怎麼講C或c++語言的. 反正我就記得幾乎沒見過老師自己敲過幾行代碼, 都是照著PPT讀. 斯坦福這節課主要是講如何用C實現一個通用的線性尋找函數, 所謂通用,就是指可以尋找任何類型的資料.
Time of Update: 2018-12-03
隨著互連網的飛速發展,現在的人們都習慣了開啟瀏覽器進行工作,基於WEB的程式蜂擁而至,幾乎變得無所不能。由於WEB指令碼語言的限制,對於本機電腦的訪問受到很大的限制。開發WEB的程式員都會因為WEB的列印而煩惱,對於WEB開發人員來講,更大的挑戰還在後面。電子商務需要身份認證,需要訪問本機電腦上操作人員的U-KEY,
Time of Update: 2018-12-03
main 函數首先獲得程式的名字,大概是wget的名稱系統宏:#ifdef TARGET_OS_MAC#endif#ifdef __linux__//標識是linux系統#endif#ifdef _WIN32 || _WIN64//不同作業系統使用不同的宏#endifOption_dataLong_optionlong_name(char*)nameshort_name(char)Optmap為short_name做索引Type(enum)Has_arg base on type
Time of Update: 2018-12-03
轉載請註明出處作者:小馬公司的一個項目,要做一個基於CE6.0的應用,無奈手上的板子是5.0的, 本來想節省時間,直接向廠家要一個該板子的6.0的BSP,聯絡他們的客服說沒有這個板子的6.0的BSP,讓我自力更生. 截至到寫這篇文章時, OAL部分已經移植成功, 從DNW的輸出資訊看出,系統成功啟動起來了. 剩下就是外設驅動部分了, 驅動我是不打算全部移植的,因為我的目標是做上層的應用,這個上層應用程式會用到一些硬體資源,比如串口, LCD等, 用到哪個外設,才移植哪個驅動.
Time of Update: 2018-12-03
值 描述0x1 滑鼠左鍵0x2 滑鼠右鍵0x3 CANCEL 鍵0x4 滑鼠中鍵0x8 退格鍵0x9 TAB 鍵0xC CLEAR 鍵0xD ENTER 鍵0x10 SHIFT 鍵0x11 CTRL 鍵0x12 MENU 鍵0x13 PAUSE 鍵0x14 CAPS LOCK 鍵0x1B ESC 鍵0x20 SPACEBAR 鍵0x21 PAGE UP 鍵0x22 PAGE DOWN 鍵0x23 END 鍵0x24 HOME 鍵0x25 LEFT ARROW 鍵0x26 UP ARROW
Time of Update: 2018-12-03
轉載請註明出處作者:小馬 之前的一篇文章<PBOC/EMV之電子錢包與電子現金的區別>已經對電子現金做了一些介紹, 這篇文章站在開發人員的角度,深入的探討一下電子現金的應用. 做一個電子現金的交易, 第一步當然是選中當前的應用, 方法是調用select命令, 傳入當前的應用AID號, 如果卡片的狀態代碼返回9000,則表示選中成功. 下面舉一個例子:發送: 00 a4 04 00 08 a0 00 00 04 44 01 01 05 00卡片返回:6f 45 84 08 a0 00
Time of Update: 2018-12-03
在《阿凡達》中,卡梅隆導演藝術地表達了對西方文化與東方文明融合的期盼。但問題是,中國人還能找回自己的精神聖樹嗎?這是卡梅隆留給西方人和東方人的共同課題,曆史等待我們去解答,如果我們回答不了,我們很可能就不再會有曆史。 張庭賓 中國人,是地球上劫後餘生的納威人嗎?
Time of Update: 2018-12-03
搜狐微博上看到的, 覺得很有用, 轉一下. 不要接近峨眉山的和尚。 不要接近嶗山的道士。 不要買九寨溝的犛牛肉。 不要買三峽船上的玉器珠寶。 不要在西雙版納參加“搶親”遊戲。 不要在西安的古玩一條街購買古物。 不要在大理購買所謂“老鄉”的便宜珠寶。 不要在陽朔的酒吧裡消費。 不要招惹泰山景區的當地人。不要參觀少林寺時走“捷徑”。不要逛十三陵“***”玉石店。 不要單獨去海南旅遊。 不要在壩上草原騎馬。 不要在吐魯番買葡萄。 不要在深圳中英街購買任何物品。 不要參加北京當地的長城一日遊。
Time of Update: 2018-12-03
***************************************************************///一定要的標頭檔,聲明了函數模組和變數:#include "HelloWDM.h"/***************************************************************函數名稱:DriverEntry()功能描述:WDM程式入口**************************************************
Time of Update: 2018-12-03
轉載請註明出處作者:小馬很多人學了ARM好長時間也不清楚到底什麼是ATPCS。其實ADS安裝檔案裡有一個英文PDF文檔專門講什麼是ATPCS,但由於是英文的,很少有人完整的看過這篇文檔。 所以我想簡單介紹一下自己對ATPCS的理解(看了原文的文檔和網上的一些資料),如果想要瞭解更深入的話,可以去查看原文檔.ATPCS是ARM-Thumb Procedure Call Standard 的縮寫, 也就是ARM,Thumb的程式調用標準.
Time of Update: 2018-12-03
轉載請註明出處作者:小馬今天寫一個基於TCP/IP的資料包發送程式時, 遇到一個問題, 我發送了一個資料包過去, 服務端可以接收到,但接收到的資料長度小於我實際傳送的資料長度. 這個bug調了很久, 開始還認為是伺服器端的程式問題, 最終發現是栽在了指標上面. 發送資料包的包格式形如下面的定義:typedef struct _TestStruct{ char testA[5]; char *pTest; char
Time of Update: 2018-12-03
運行時函數名的首碼均為Rtl。一、非重疊記憶體複製RtlCopyMemory二、重疊記憶體複製RtlMoveMemory三、填充記憶體RtlFillMemory四、記憶體填零RtlZeroBytesRtlZeroMemory似乎記憶體填零的操作也可以用填充記憶體的RtlFillMemory來實現。五、記憶體比較RtlCompareMemory六、檢查記憶體是否可讀ProbeForRead七、檢查記憶體是否可寫ProbeForWrite第六、七這兩個函數不能返回TRUE或FALSE,而是會引發異常
Time of Update: 2018-12-03
轉載請註明出處作者:小馬 對於普通的使用者來說,電子錢包和電子現金(下面分別簡稱EP和EC)是幾乎沒有區別的, 為什麼這麼說呢. 因為EP和EC都是為了做小額支付而生的. 我們拿著一張IC卡去超市的POS機上消費,或是坐公交消費,只需輕輕一刷,你不必關心這張卡是基於EP的應用還是基於EC的應用. 但是, 如果你是金融電子這個行業裡的人,尤其是對於開發人員,
Time of Update: 2018-12-03
make 的運行——————一般來說,最簡單的就是直接在命令列下輸入make命令,make命令會找目前的目錄的makefile來執行,一切都是自動的。但也有時你也許只想讓make重編譯某些檔案,而不是整個工程,而又有的時候你有幾套編譯規則,你想在不同的時候使用不同的編譯規則,等等。本章節就是講述如何使用make命令的。一、make的退出碼make命令執行後有三個退出碼: 0 —— 表示成功執行。 1 —— 如果make運行時出現任何錯誤,其返回1。 2 ——
Time of Update: 2018-12-03
轉載請註明出處作者:小馬 不要以為我這篇文章是告訴你什麼是8583,告訴你map的原理,然後分析各個域是什麼意思,格式如何, 再有詳細一點的甚至告訴你如何寫程式等等. 不是, 之所以不寫上面這些,基於兩點:1 太多的人寫這些了, 網上一搜8583,出來的文章都是關於這些的. 2 作用不大, 因為這些規範上都有, 大家一看規範就明白了, 我寫了也是無用. 我篇文章適合兩類人看:1 對8583報文非常熟悉,屬於這一領域的資深工程師, 為什麼這一類人要看呢, 因為他們看了,可以給我提一些意見和建議.