09 Temmuz 2020, 05:06:12

Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME


Sahte kutuphane yapmak

Başlatan z, 07 Mayıs 2020, 07:32:36

z

07 Mayıs 2020, 07:32:36 Son düzenlenme: 07 Mayıs 2020, 07:56:27 z
GPIO adinda Raspi kutuphanelesi var ve donanimla baglantili.

Windows ortaminda raspi icin kod yazarken bu kuphane olmadigi icin ilerleyemiyorum (kod yazamiyorum)

Bende sahte bir GPIO kutuphanesi yazmaya karar verdim. Boylece en azindan algoritmik kodlamalarima devam edebilecegim.

Asagidaki kutuphaneyi olusturdum her sey cok iyi gidiyordu fakat ana programda asagidaki satira

        GPIO.setup(13, GPIO.IN, pull_up_down=GPIO.PUD_UP)

TypeError: setup() got an unexpected keyword argument 'pull_up_down' hatasi aliyorum.

Ana programda

        GPIO.setup(11, GPIO.OUT)
        GPIO.setup(13, GPIO.IN, pull_up_down=GPIO.PUD_UP)

setup fonksiyonu ust satirda 2 parametre ile alttaki satirda ise 3 parametre ile cagrilmis.
ustelik pull_up_down=GPIO.PUD_UP diye de bir esitlik yapilmis.

Sahte kutuphanede bu sorunu nasil asacagim.

Ana programdaki kodlarda hic bir sey degistirmeyecegim. Ne yapacaksam sahte kutuphanede yapmam lazim.

Amacim: Program kodlarimi sahte kutuphane olmadan raspberrye tasidigimda sorunsuz calisacak.
Windowsda ise kodlarimi algoritmik anlamda gelistirebilecegim, duzgun calismayacak fakat hata da vermeyecek.



class GPIO:
    
def BOARD(param):
        return(
1)

    
def setwarnings(param):
        return()

    
def setup(self,p1,p2):
        return

    
def OUT(selfp1p2):
        return

    
def IN(selfp1p2):
        return

    
def PUD_UP(selfp1p2):
        return

    
def setmode(param):
        print(
"")

z

07 Mayıs 2020, 08:35:28 #1 Son düzenlenme: 07 Mayıs 2020, 09:12:57 z
def setup(channel, state, initial=-1, pull_up_down=-1):
        return

Boyle cozuldu.

Internette benim gibi ayni amacla yola cikanlar varmis.

https://stackoverflow.com/questions/5122465/can-i-fake-a-package-or-at-least-a-module-in-python-for-testing-purposes

Asagidaki kodlari GPIO.py icine kaydedip

Ana programda da

from GPIO import *

        GPIO.setmode(GPIO.BOARD)
        GPIO.setwarnings(False)
        GPIO.setup(11,GPIO.OUT)
        GPIO.setup(13,GPIO.IN, pull_up_down=GPIO.PUD_UP)

gibi satirlar kullansaniz da en azindan kodunuz calisiyor ve hata vermiyor.

Tabiki GPIO satirlari anlamsiz isler yapacak. Fakat GPIO fonksiyonlarinda return degerlerini kendiniz tanimlayarak kodlarinizi da test edebilirsiniz.


class GPIO:

    
def BOARD():
        return(
1)

    
def setwarnings(param):
        return()

    
#def setup(self,p1):
    #    global pull_up_down
    #    return


    
def setup(channelstateinitial=-1pull_up_down=-1):
        return

    
def add_event_detect(channelstateinitial=-1callback=-1):
        return

    
def OUT(selfp1):
        return 
1,2

    def IN
(selfp1p2):
        global 
callback
        callback
=p2
        
return

    
def PUD_UP(selfp1p2):
        return

    
def setmode(param):
        print(
"")

    
def RISING(param):
        print(
"")

muhittin_kaplan