欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣使用Square Reader和Android設(shè)備讀取任何磁條卡

454398 ? 來源:工程師吳畏 ? 作者:工程師吳畏 ? 2019-11-19 17:01 ? 次閱讀

步驟1:了解格式

怎樣使用Square Reader和Android設(shè)備讀取任何磁條卡

磁性編碼條帶數(shù)據(jù)遵循通用標準。磁條由3條物理上分開的“磁道”組成。磁道1最靠近卡的底部,磁道3最高。 Square的讀取器位于讀取軌道2的位置。軌道2是最常用的軌道,但是大多數(shù)信用卡也使用軌道1。軌道2包括卡號和有效期。音軌1包括那個加號。根據(jù)特定的卡,可能還會有其他數(shù)據(jù)。這些磁道的寬度規(guī)定為0.11英寸,因此要使用Square的讀取器讀取磁道1,我們只需要重新布置條紋,使磁道1與讀取頭對齊即可。

每個磁道中的數(shù)據(jù)均通過磁編碼域翻轉(zhuǎn)。長話短說:一系列的域翻轉(zhuǎn)對波形進行編碼,該波形被解釋為二進制。此編碼中的二進制0是任意頻率。 1是該頻率的兩倍。

數(shù)據(jù)以一組前導(dǎo)零開始,以建立基本頻率。在可變數(shù)目的零之后,出現(xiàn)開始標記。對于音軌2,開始標記為“;”。每個字符被編碼為整數(shù),最低有效位在前。對于磁道2,每個字符包含4個數(shù)據(jù)位和1個奇偶校驗位。為每個字符設(shè)置奇偶校驗位,以使1的數(shù)量為奇數(shù)。如果為每個字符的整數(shù)值加上48(ASCII編碼為“ 0”),則將顯示ASCII字符。除了數(shù)字“ 0”到“ 9”之外,磁道2還可以編碼一些其他字符,包括“;”。 (開始標記),“ =“(字段分隔符)和“?” (末尾)。

步驟2:制作墊片以讀取音軌1

磁卡的磁道1比磁道2更靠近卡的邊緣.11英寸。由于Square讀卡器被設(shè)置為讀取磁道2,因此如果我們在磁道中粘貼一些東西,讀取器將卡提升.11英寸時,讀取頭將與軌道1對齊,而不是與軌道2對齊。

您可以通過從另一張卡上剪切0.11英寸的條來創(chuàng)建墊片。我還發(fā)現(xiàn)廉價垃圾袋的纏結(jié)也差不多。

第3步:錄制一些音頻

就電話而言,Square閱讀器只是一個麥克風。因此,要從卡中獲取數(shù)據(jù),我們需要記錄音頻。請參閱其他Android文檔(例如本教程:http://eurodev.blogspot.com/2009/09/raw-audio-manipulation-in-android.html)以獲取詳細說明,或使用RhombusLib(請參閱最后的鏈接) )。以下是一些Java代碼,可以開始在Android應(yīng)用中記錄音頻:

AudioRecord audioRecord =新的AudioRecord(MediaRecorder.AudioSource.MIC,

頻率,channelConfiguration,

audioEncoding,bufferSize);

audioRecord.startRecording();

錄音時,我們需要不斷從錄音機中讀取數(shù)據(jù)并將其放入緩沖區(qū)中。

//創(chuàng)建一個DataOutputStream以寫入音頻數(shù)據(jù)

ByteArrayOutputStream os = new ByteArrayOutputStream ();

BufferedOutputStream bos =新的BufferedOutputStream(os);

DataOutputStream dos =新的DataOutputStream(bos);

short bufferVal;

short [] buffer = new short [bufferSize];

while(recording){

bufferReadResult = audioRecord.read(buffer,0,bufferSize);

for(int i = 0; i bufferVal = buffer [i];

dos.writeShort(buffer [i]);

}

}

dos.close();

byte [] audioBytes = os.toByteArray();

上面的代碼是從RhombusLib中提取并簡化的。錄制后,您將擁有一個字節(jié)數(shù)組,代表麥克風中的樣本,可以進行分析。

步驟4:解碼音頻

因此,現(xiàn)在我們的設(shè)備上有很多音頻。我們?nèi)绾谓獯a它?我的代碼基于Android教程,該教程顯示了如何記錄數(shù)據(jù)然后進行回放。就我而言,我確保將音頻保存為16位PCM編碼。我以44100hz采樣。在Android(以及其他地方,我想)上,16位PCM數(shù)據(jù)意味著每個樣本都是一個帶符號的16位值。因為我們只關(guān)心頻率,所以我們只需要關(guān)心“零交叉”之間有多少時間。過零是指信號從正向變?yōu)樨摚粗嗳弧?0位將由2個交叉點之間的間隔表示,而1將在大約相同的時間段內(nèi)有一個額外的交叉點。

每個磁道中的卡數(shù)據(jù)以一些(可變)數(shù)0開始,以建立基本頻率。我所做的是聽取高于某個“安靜”閾值的第一個樣本,然后計算零交叉之間的樣本數(shù)。該數(shù)字將成為0的基值。由于這些卡是手工刷卡的,因此從掃描開始到結(jié)束,實際頻率將有所變化。因此,我做了一個簡單的方法,確定自上次零交叉以來的樣本數(shù)量是否更接近基本頻率或兩倍于基本頻率(基本樣本數(shù)量的一半)。然后,它會相應(yīng)地調(diào)整預(yù)期的基本頻率。只要兩個邏輯位之間的變化很小,此方法就可以很好地工作。而且它們幾乎肯定會。

檢測零交叉,我們需要查看每個樣本的符號并將其與前一個樣本的符號進行比較。如果它們不同(一個正,一個負),則信號在這些樣本之間越過0。

基本算法是遍歷字節(jié)數(shù)組,提取樣本。計算零交叉之間的樣本數(shù),并將其與0或1的預(yù)期計數(shù)進行比較。好的,經(jīng)過一番揮舞之后,我們現(xiàn)在有了一個二進制數(shù)據(jù)序列,我們想回過頭來。轉(zhuǎn)換成ASCII。最常見的編碼(也是我編寫的唯一處理程序)將每個字符編碼為一定數(shù)量的位,再加上一個奇偶校驗位。對于音軌2,字符為4位,奇偶校驗為1,組成5位組。從最低有效位到最高讀取位,最后一位是奇偶校驗位。將奇偶校驗位設(shè)置為使組中的1的個數(shù)為奇數(shù)。在我的實現(xiàn)中,我只是忽略了奇偶校驗位,但這將有助于確定讀取是否正確。在磁道1中,字符的6位加上奇偶校驗。

磁道的字符集也有所不同,但是兩者都是ASCII子集,具有一些偏移量。對于僅編碼一些符號和數(shù)字的磁道2,字符集從48開始,這是“ 0”的ASCII碼。因此,如果我們得到0,0,0,0,1作為我們的角色,則將其變成0,加48,得到48。類似地,1,0,0,0,0為1。1 + 48 = 49 = ASCII“ 1”。

對于軌道1,字符集以“”(空格)開頭,即ASCII32。因此,我們在解碼的數(shù)字值上加上32,得到ASCII字符。之后,我們有了數(shù)據(jù),因此剩下的一切都只是在掛接UI膠水。

責任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3946

    瀏覽量

    128018
  • BSQUARE
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    8767
  • 磁條卡
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    6892
收藏 人收藏

    評論

    相關(guān)推薦

    Android 實現(xiàn)讀卡器讀取各種卡號的信息

    。ConstraintLayout是Android開發(fā)中非常強大的一個布局管理器,它允許你以相對位置的方式定義界面中的元素,使得布局更加靈活和易于管理。下面是對這段代碼的簡單解釋: :這是XML聲明,指定了XML的版本為
    的頭像 發(fā)表于 12-30 15:45 ?185次閱讀
    <b class='flag-5'>Android</b> 實現(xiàn)讀卡器<b class='flag-5'>讀取</b>各種卡號的信息

    網(wǎng)絡(luò)讀卡器qt代碼示例,包含獲取本地ip地址。讀取IC卡號,讀取扇區(qū)數(shù)據(jù)

    getAllIPAddresses() { QStringList ips; QList list = QNetworkInterface::allAddresses(); for (int i = 0; i //解析讀取
    的頭像 發(fā)表于 12-30 09:22 ?184次閱讀
    網(wǎng)絡(luò)讀卡器qt代碼示例,包含獲取本地ip地址。<b class='flag-5'>讀取</b>IC<b class='flag-5'>卡</b>卡號,<b class='flag-5'>讀取</b>扇區(qū)數(shù)據(jù)

    android手機上emulate應(yīng)用程序的方法

    Android手機上模擬(emulate)應(yīng)用程序的方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android環(huán)境,以便在沒有實際物理設(shè)備的情況下運行
    的頭像 發(fā)表于 12-05 15:33 ?507次閱讀

    使用TF的常見問題

    、視頻、文檔等數(shù)據(jù)。 1. TF無法被識別 問題描述: 當你將TF插入設(shè)備時,設(shè)備無法識別或讀取TF
    的頭像 發(fā)表于 11-04 09:54 ?1771次閱讀

    谷歌正式向Pixel設(shè)備推送Android 15穩(wěn)定版

    10月17日最新資訊,谷歌今日已正式向Pixel系列設(shè)備推送Android 15穩(wěn)定版更新。目前,已有部分Pixel設(shè)備成功完成升級,而更大范圍的推送預(yù)計將在本周末進行。
    的頭像 發(fā)表于 10-17 16:31 ?528次閱讀

    智能IC測試設(shè)備的技術(shù)原理和應(yīng)用場景

    提供工作電壓,完成數(shù)據(jù)的讀寫操作。 數(shù)據(jù)處理: 測試設(shè)備向IC發(fā)送各種指令(如讀取數(shù)據(jù)、寫入數(shù)據(jù)、修改數(shù)據(jù)等),并接收來自IC的響應(yīng)。 通過分析響應(yīng)數(shù)據(jù),測試
    發(fā)表于 09-26 14:27

    物聯(lián)網(wǎng)產(chǎn)品在生產(chǎn)測試過程中快速讀取貼片SIM卡號的方案

    卡號,讀卡表產(chǎn)品可以解決在研發(fā)測試過程中,方便讀取物聯(lián)網(wǎng)貼片卡號的問題。 二、該問題帶來的危害及影響 如果不讀出設(shè)備的SIM卡號,無法將設(shè)備
    的頭像 發(fā)表于 09-23 16:14 ?434次閱讀
    物聯(lián)網(wǎng)產(chǎn)品在生產(chǎn)測試過程中快速<b class='flag-5'>讀取</b>貼片SIM卡號的方案

    如何讀取多張的UID,有償

    應(yīng)用場景是在一摞卡片,需要通過循環(huán)讀取卡片的UID,來獲取所有卡片的UID。但是普通MFRC522模組的磁場強度無法給多張供電,想咨詢?nèi)绾谓o一摞供電,當然模組可以移動,或許只需要給部分卡片供電即可。紅包200元,財力有限,請
    發(fā)表于 08-17 21:50

    丟掉數(shù)據(jù)線,你還會調(diào)試Android設(shè)備嗎?

    ADB(AndroidDebugBridge)作為Android開發(fā)中非常重要的工具,開發(fā)者可以使用ADB設(shè)備在電腦上對Android設(shè)備
    的頭像 發(fā)表于 08-14 17:09 ?464次閱讀
    丟掉數(shù)據(jù)線,你還會調(diào)試<b class='flag-5'>Android</b><b class='flag-5'>設(shè)備</b>嗎?

    谷歌宣布對Android設(shè)備流媒體服務(wù)進行重大擴展

    8月8日,谷歌宣布對其Android設(shè)備流媒體服務(wù)進行重大擴展,此舉旨在進一步賦能開發(fā)者,讓他們能夠遠程接入并測試更多品牌及型號的真實Android物理設(shè)備。自2014年該服務(wù)問世以來
    的頭像 發(fā)表于 08-08 16:30 ?735次閱讀

    怎樣修改LVGL的lv_port_fs文件,讓它使用rt-thread的DFS文件系統(tǒng)中的API函數(shù)讀取SD中的圖片?

    我想問一下,怎樣修改LVGL的lv_port_fs文件,可以讓它使用rt-thread的DFS文件系統(tǒng)中的API函數(shù)(這些API函數(shù)在rt-thread的dfs_posix.c中)讀取SD中的圖片?
    發(fā)表于 07-11 06:53

    歐姆龍如何合法地解除PLC的讀取保護

    讀取保護狀態(tài),以防止未授權(quán)的訪問或修改。 本文將討論如何合法地解除PLC的讀取保護,以便在需要時進行正常的維護和升級操作。 了解PLC的讀取保護機制 在嘗試解除讀取保護之前,首先需要了
    的頭像 發(fā)表于 06-11 17:12 ?2851次閱讀

    X Square獲得1050萬美元A輪融資

    近日,專注于人工智能與機器人領(lǐng)域技術(shù)創(chuàng)新的X Square公司成功獲得了一筆1050萬美元的A輪融資。此次融資由Wavemaker Partners領(lǐng)投,同時獲得了SEEDS Capital和Goldbell Corporation的參與投資。
    的頭像 發(fā)表于 05-31 11:45 ?1155次閱讀

    Square Enix北美、歐洲分社調(diào)整發(fā)行策略,啟動裁員計劃

    近期,Square Enix發(fā)布的財務(wù)報告顯示,公司正計劃對海外業(yè)務(wù)部門進行全面重組,并通過結(jié)構(gòu)性改革來降低歐洲及美國辦公室的運營成本。
    的頭像 發(fā)表于 05-14 10:09 ?424次閱讀

    ST25DV04可以讀取實體IC嗎?

    我最近打算使用ST25DV04做一個NFC,這款芯片可以讀取實體IC,獲取IC信息,并模擬IC刷卡嗎?
    發(fā)表于 03-18 07:04