Code – die besten Beiträge

datei mit namen deps.js und DATUM 01.01.2098 gefunden?

mit dem Editor die 3,72MB recht große Datei mal angeschaut - ganz am Ende steht was von Amazon. Für was ist das gut?

 Copyright 2014 Amazon.com,
 * Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Amazon Software License (the "License").
 * You may not use this file except in compliance with the
 * License. A copy of the License is located at
 * 
 *   http://aws.amazon.com/asl/
 * 
 * or in the "license" file accompanying this file. This file is
 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, express or implied. See the License
 * for the specific language governing permissions and
 * limitations under the License. 
 */
if(void 0===e)throw new Error("AWS SDK must be loaded before loading the Sync Manager.");var t,r,a,i,s,o,n,u,p;e.CognitoSyncManager=function(t){t=t||{};this.provider=t.credentials||e.config.credentials,this.identityPoolId=this.provider.params.IdentityPoolId,this.region=t.region||e.config.region,this.logger=t.log,"function"!=typeof this.logger&&(this.logger=function(){}),this.local=new e.CognitoSyncManager.LocalStorage({DataStore:t.DataStore?t.DataStore:e.CognitoSyncManager.StoreLocalStorage}),this.remote=new e.CognitoSyncManager.RemoteStorage({identityPoolId:this.identityPoolId,provider:this.provider,region:this.region}),this.remote.setUserAgent("CognitoJavaScriptSDK/1")},e.CognitoSyncManager.prototype.openOrCreateDataset=function(t,r){var a=this,i=new RegExp("^[a-zA-Z0-9_.:-]{1,128}$");i.test(t)?this.local.createDataset(this.getIdentityId(),t,function(t,i){if(t)return r(t,null);r(null,new e.CognitoSyncManager.Dataset(i,a.provider,a.local,a.remote,a.logger))}):r(new Error("Dataset name must match the pattern "+i.toString()))},e.CognitoSyncManager.prototype.listDatasets=function(e){this.local.getDatasets(this.getIdentityId(),e)},e.CognitoSyncManager.prototype.refreshDatasetMetadata=function(e){var t=this;this.remote.getDatasets(function(r,a){var i=[],s=function(e){t.local.updateDatasetMetadata(t.getIdentityId(),e,o)},o=function(t,r){i.push(r),a.length>0?s(a.shift()):e(null,i)};a.length>0?s(a.shift()):e(null,[])})},e.CognitoSyncManager.prototype.wipeData=function(){this.provider.clearCachedId(),this.local.wipeData()},e.CognitoSyncManager.prototype.getIdentityId=function(){return this.provider.identityId},(e=e||{}).CognitoSyncManager=e.CognitoSyncManager||
JavaScript, Code, Programmiersprache

Wie kann ich zwei MFRC522-RFID-Reader gleichzeitig mit einem Raspberry Pi 3 Model B verwenden?

Hallo zusammen,

ich versuche seit über einem Monat, zwei MFRC522-RFID-Reader gleichzeitig mit meinem Raspberry Pi 3 Model B (Version 1.2) zu betreiben, leider ohne Erfolg.

Mein Ziel ist es, dass beide Reader parallel arbeiten und unabhängig voneinander Tags erkennen und auslesen können. Ich verwende Python mit dem

spidev

-Modul und habe jedem Reader eine eigene SPI-Schnittstelle zugewiesen:

  • Reader 1: SPI0 (Bus 0, Device 0), RST auf GPIO25
  • Reader 2: SPI1 (Bus 1, Device 0), RST auf GPIO17

Beide Reader sind korrekt verkabelt. SPI1 ist über Device Tree aktiviert, und ich verwende keine gemeinsamen CS-Pins. Ich habe eine eigene Klasse für MFRC522 geschrieben, um jeweils ein SPI-Device und einen RST-Pin zu verwenden. Hier ist der relevante Python-Code:

python
import spidev
import RPi.GPIO as GPIO
import time


class MFRC522:
    def __init__(self, spi_bus, spi_device, rst_pin):
        self.spi = spidev.SpiDev()
        self.spi.open(spi_bus, spi_device)
        self.spi.max_speed_hz = 1000000
        self.spi.mode = 0
        self.rst = rst_pin


        GPIO.setwarnings(False)
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(self.rst, GPIO.OUT)
        GPIO.output(self.rst, 1)
        self.reset()


    def reset(self):
        GPIO.output(self.rst, 0)
        time.sleep(0.1)
        GPIO.output(self.rst, 1)
        time.sleep(0.1)


    def send(self, addr, val):
        self.spi.xfer2([(addr << 1) & 0x7E, val])


    def read(self, addr):
        val = self.spi.xfer2([((addr << 1) & 0x7E) | 0x80, 0])
        return val[1]


    def scan_for_tag(self):
        self.send(0x01, 0x0C)  # PCD_TRANSCEIVE
        self.send(0x0D, 0x87)  # BitFramingReg


        self.send(0x0C, 0x26)  # Request idle
        time.sleep(0.01)
        return self.read(0x0A) != 0  # FIFOLevelReg


    def get_uid(self):
        self.send(0x0D, 0x87)
        self.spi.xfer2([0x93, 0x20])  # Anticollision
        time.sleep(0.01)
        resp = self.spi.xfer2([0x93, 0x20] + [0]*5)
        uid = resp[2:6]
        return ':'.join([hex(x)[2:].upper().zfill(2) for x in uid])


    def cleanup(self):
        self.spi.close()
        GPIO.cleanup(self.rst)


# Konfiguration der Reader
reader1 = MFRC522(spi_bus=0, spi_device=0, rst_pin=25)  # SPI0
reader2 = MFRC522(spi_bus=1, spi_device=0, rst_pin=17)  # SPI1


try:
    print("Starte RFID-Scanner (STRG+C zum Beenden)")
    while True:
        if reader1.scan_for_tag():
            uid1 = reader1.get_uid()
            print(f"Reader 1 UID: {uid1}")


        if reader2.scan_for_tag():
            uid2 = reader2.get_uid()
            print(f"Reader 2 UID: {uid2}")


        time.sleep(0.5)


except KeyboardInterrupt:
    print("\nBeende...")


finally:
    reader1.cleanup()
    reader2.cleanup()


Das Problem: Keiner der beiden Reader erkennt zuverlässig Tags. Der zweite reagiert manchmal, oft aber gar nicht oder liefert keine UID. Ich habe bereits unterschiedliche Polling-Intervalle, Resets und sogar die Versorgungsspannung überprüft, aber ohne Erfolg.
so habe ich meine MFRC522 Reader angeschlossen:

Hat jemand Erfahrung damit oder Ideen, wie ich beide MFRC522 zuverlässig gleichzeitig betreiben kann? Gibt es vielleicht Timing-Probleme, Konflikte zwischen den SPI-Bussen oder brauche ich spezielle Initialisierung?

Ich bin für jede Hilfe dankbar!

Bild zum Beitrag
Code, Programmiersprache, Python, RFID, RFID-Chip, Raspberry Pi, ChatGPT

Python Code testen

Ich habe einen Python code geschrieben und würde mich über ehrliche tester freuen

import os
#os.system('cls' if os.name == 'nt' else 'clear')
liste = []
def addToClipBoard(text):
    with open("temp_clipboard.txt", "w", encoding="utf-8") as f:
        f.write(text)
    os.system("type temp_clipboard.txt | clip")
    os.remove("temp_clipboard.txt")
def hinzufügen():
    produkt = input("Welches Produkt möchten sie hinzufügen ")
    anzahl = int(input(f"Wie oft möchten sie {produkt} kaufen "))
    add = [str(produkt), str(anzahl)]
    liste.append(add)
def anzeigen():
    for i in range(0, len(liste)):
        print(liste[i][0], liste[i][1])
def entfernen():
    print("Welches Produkt möchten sie entfernen ")
    for i in range(0, len(liste)):
        print(f"{i + 1}: ",liste[i][0], liste[i][1])
    auswahl = int(input("")) - 1
    os.system('cls' if os.name == 'nt' else 'clear')
    print("Produkt wurde entfernt!")
    del liste[auswahl]

while True:
    auswahl = int(input("1: Produkt hinzufügen \n2: Produkt entfernen \n3: Liste anzeigen \n4: Liste leeren \n5: Liste kopieren\n"))
    os.system('cls' if os.name == 'nt' else 'clear')

    if auswahl == 1:
        try:
            hinzufügen()
        except ValueError:
            print("Fehler!")
            continue
    elif auswahl == 2:
        try:
            entfernen()
        except IndexError:
            print("Fehler!")
            continue
    elif auswahl == 3:
        anzeigen()
        if liste == []:
            print("Deine Einkaufsliste ist leer")
            continue
    elif auswahl == 4:
        liste = []
        print("Liste wurde geleert!")
    elif auswahl == 5:
        outlist = str(liste)
        outlist = "\n".join([f"{produkt}: {anzahl}" for produkt, anzahl in liste])

        print("Liste wurde in die Zwischenablage kopiert")
        addToClipBoard(str(outlist))

Schreibt gerne eure meinung und startet das Programm im Terminal

Code, Programmiersprache, Python, Pycharm

Meistgelesene Beiträge zum Thema Code