Új hozzászólás Aktív témák

  • atesss

    addikt

    Üdv !
    Raspberry Pi-n használok egy AD átalakítót, és az eddig Píthon kódomat most megpróbáltam kicsit úgy átalakítani - a jobb átláthatóság érdekében - hogy minden változó csak a szükséges függvényben legyen érvényes.
    Illetve a hardverhez kapcsoló adat (jelen esetben pl. a csatornáknak a címe) is csak az adott hardver-kezelő függvényben legyen megadva.
    Viszont így eléggé "körülményes" lett a kód végére:
    Main függvény releváns részei:
    I2C_address = 0x48
    ADCCh0_sum_1s = ADCCh0_sum_1s + adc_measure("A0")
    ADCCh1_sum_1s = ADCCh1_sum_1s + adc_measure("A1")
    ADCCh2_sum_1s = ADCCh2_sum_1s + adc_measure("A2")
    ADCCh3_sum_1s = ADCCh3_sum_1s + adc_measure("A3")
    És a két releváns függvényem:
    def adc_measure(channel_name):
      global I2C_address
        channel = get_channel_from_name(channel_name)
        try: 
          bus.write_byte(I2C_address,channel)
        except IOError: 
            pass
        try: 
          adc_dummyread = bus.read_byte(I2C_address)
        except IOError: 
            pass
        time.sleep(0.001)
        try: 
          adc_value = bus.read_byte(I2C_address)
        except IOError: 
            pass
        # print("ADC readed value on Channel Name",channel_name, "(Hexa-ID: ", hex(channel),"): ",adc_value)
        # print('------')
        time.sleep(0.001)
        return adc_value
       
    def get_channel_from_name(channel_name):
        A0 = 0x40
        A1 = 0x41
        A2 = 0x42
        A3 = 0x43
        if channel_name == "A0":
            channel = A0
        if channel_name == "A1":
            channel = A1
        if channel_name == "A2":
            channel = A2
        if channel_name == "A3":
            channel = A3
        # print("Non-converted channel name:  ",channel)
      return channel
    A kikommentezett print-eket csak debug célra használtam.

    A "névkonvertáló" függvényt hogyan tudnám elhagyni ?
    (Ha viszont direkt feltétel, hogy nem akarom a main-ben megadni az A0, A1, A2, A3 -at.)
    Mert én hiába kerestem, nem találtam olyan függvényt, amivel ezt a funkciót egyszerűbben végre tudnám hajtani. Hogyan lehetne kiváltani az " = A0" ... " = A3" értékadó sorokat ?

Új hozzászólás Aktív témák