2012-05-02 86 views
0

建議此最佳(HEX)字符串比較方法

a = "data read from serial port in HEX" 
TX1 = "\x10\x04" 
RX1 = "\x10\x04" 
TX2 = "\xF2\x00\x04\x43\x30\x40\x32\xED\x45" 
RX2 = "\x06\xF2\x00\x13\x50\x30\x40\x30\x30\x31\x31\x31\x30\x31\x31\x30\x30\x30\x30\x30\x30\x30\x30\xAE\xFD" 
if tx1 in a: 
    send.ser(rx1) 
    read_buufer() 
if tx2 in a: 
    send.ser(rx2) 
    read_buf() 

一個最好的和有效的方法,所以什麼是做這種比較的最好辦法....絕對想驗證從串行緩衝器接收到的十六進制數據(a)並驗證可用請求字符串tx1,tx2,tx3 ..... txn的列表併發送來自rx1,rx2,rx2 ...... rxn的響應...

+1

任何理由不做你在做什麼?明顯放緩? –

+0

我幾乎有26個請求和響應,所以如果我這樣做的方式想爲添加任何新的請求和響應它會小忙碌,也期望這種方法會放慢... – Ragav

+1

供參考此問題的標題是完全不相關的什麼你真的在問。 – dkamins

回答

2

一個選項是使用字典:

tx_rx = {TX1: RX1, TX2: RX2} 
for tx in tx_rx: 
    if tx in a: 
     send.ser(tx_rx[tx]) 
     read_buf()