El mejor método para la comparación de cadenas (HEX)

sugerir un método mejor y más eficiente para esto

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()

Entonces, ¿cuál es la mejor manera de hacer esta comparación? Solo quiero verificar los datos hexadecimales recibidos del búfer en serie (a) y verificar con la lista de cadenas de solicitud disponibles tx1, tx2, tx3 ..... txn y enviar la respuesta a de rx1,rx2,rx2......rxn...

preguntado el 02 de mayo de 12 a las 19:05

¿Alguna razón para no hacer lo que estás haciendo? ¿Desaceleración notable? -

tengo casi 26 solicitudes y respuestas, así que si lo hago con este método, piense en agregar cualquier nueva solicitud y respuesta, será un poco agitado y también espero que este método se ralentice ... -

Para su información, el título de esta pregunta es completamente irrelevante para lo que realmente está preguntando. -

@dkamins, solo tengo un conjunto de requisitos y respuestas en una cadena hexadecimal y solo quiero comparar la solicitud y la respuesta respectiva del sensor ... así que quiero hacerlo de manera optimizada, -

1 Respuestas

Una opción sería usar un diccionario:

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

contestado el 02 de mayo de 12 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.