2011-05-18 67 views
0

我正在serproxy/thinkerproxy中進行小型Air應用程序中的串行通信。 我有兩個硬件設備來測試它。一種是條形碼掃描儀,它的工作原理非常完美。使用Serproxy/Thinkerproxy的Adobe Air和串行端口通信

另一個是自定義板。這也是一種工作。問題是這些字符是不可讀的。我認爲這是字符集(不知道)的問題,所以我試圖在處理ProgressEvent.SOCKET_DATA事件的函數是這樣的:

var cs:Array = new Array( 'ISO-8859-1', 
              'ISO-8859-2', 
              'ISO-8859-3', 
              'ISO-8859-4', 
              'ISO-8859-5', 
              'ISO-8859-6', 
              'ISO-8859-7', 
              'ISO-8859-8', 
              'ISO-8859-9', 
              'ISO-8859-10', 
              'ISO-8859-11', 
              'ISO-8859-12', 
              'ISO-8859-13', 
              'ISO-8859-14', 
              'ISO-8859-15', 
              'ISO-8859-16', 
              'ISO-8859-17', 
              'ISO-8859-18', 
              'ISO-8859-19', 
              'ISO-8859-20', 
              'ASMO-708', 
              'DOS-720', 
              'x-mac-arabic', 
              'windows-1256', 
              'ibm775', 
              'windows-1257', 
              'ibm852', 
              'x-mac-ce', 
              'windows-1250', 
              'gb18030', 
              'EUC-CN', 
              'gb2312', 
              'gb18030', 
              'hz-gb-2312', 
              'x-mac-chinesesimp', 
              'big5', 
              'x-Chinese-CNS', 
              'x-Chinese-Eten', 
              'x-mac-chinesetrad', 
              'cp866', 
              'koi8-r', 
              'koi8-u', 
              'x-mac-greek', 
              'windows-1253', 
              'ibm869', 
              'DOS-862', 
              'iso-8859-8-i', 
              'x-mac-hebrew', 
              'windows-1255', 
              'x-EBCDIC-Arabic', 
              'x-EBCDIC-CyrillicRussian', 
              'x-EBCDIC-CyrillicSerbianBulgarian', 
              'x-EBCDIC-DenmarkNorway', 
              'x-ebcdic-denmarknorway-euro', 
              'x-EBCDIC-FinlandSweden', 
              'x-ebcdic-finlandsweden-euro', 
              'x-ebcdic-finlandsweden-euro', 
              'x-iscii-as', 
              'unicode', 
              'unicodeFFFE', 
              'utf-7', 
              'utf-8', 
              'us-ascii', 
              'windows-1258', 
              'x-IA5', 
              'Windows-1252' 
             ); 

       for each(var csStr:String in cs){ 

        var info:String = _socket.readMultiByte(_socket.bytesAvailable, csStr); 
        temp = csStr + ":" + info; 

        if(info.length > 0) 
         dispatchEvent(new TextEvent(EVENT_ON_DATA_RECEIVED, false, false, temp)); 
       } 

包含值的唯一價值是ISO-8859-1 。並且,它看起來像這樣:enter image description here

的定製電路板應該發出這樣的:0x40的

所以,不知道什麼是這裏最好的方法(我知道有更多的字符集,我可以試試) 。有任何想法嗎?

回答

0

您是否在猜測未知編碼?看看電路板發送的原始字節,以檢查它們是否被位移。

0

您是否檢查了您的設置 - 我懷疑奇偶校驗位的設置不同。