Code – die neusten Beiträge

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

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

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

Mögliche fehler?

moin, ich habe einen code für cmd geschrieben, der mir den archivierungsprozess erleichtern soll, er funktioniert und alles schön und gut, bloß dass - warum auch immer - im archivlaufwerk, leere ordner stehen und auf dem ursprungsdatenträger nach dem Löschen und umbenennen natürlich auch - da soll es aber auch so sein. nächstes problem: ich habe jetzt testordner erstellt um der sache auf den grund zu gehen und stelle fest dass nicht alle ordner leer sind, nur ein paar, aus meiner sicht zufällig ausgewählte.

set "quelle=I:\Ordner 1\Ordner 2\TestOrdner" & set "ziel=V:\Ordner 1\Ordner 2" & set "liste=C:\Users\*meinUser*\Documents\OrdnerListe.txt"

for /f "usebackq delims=" %N in ("%liste%") do (

  echo Verarbeite Ordner: %N  

  robocopy "%quelle%\%N" "%ziel%\%N" /E /COPY:DATSO /R:3 /W:10 /MT:8 /LOG+:kopierlog.txt

)

das ist der code schnipsel für das kopieren, bevor eine frage dazu kommt: nein, die verzeich isse sind nicht fehlerhaft, die sollen genau so sein wie sie dort sind.

das funktioniert einwandfrei und wenn man nach dem kopieren nachschaut sind auch alle verzeichnisse, unterverzeichnisse und dateien vorhanden.

set "quelle=I:\Ordner 1\Ordner 2\TestOrdner"

set "liste=C:\Users\*meinUser*\Documents\OrdnerListe.txt"

for /f "usebackq delims=" %N in ("%liste%") do (

  del /f /s /q "%quelle%\%N\*"

  for /d %U in ("%quelle%\%N\*") do rmdir /s /q "%U" 

  ren "%quelle%\%N" "%N - Archiv"

)

das is der code schnipsel für das automatische löschen der Inhalte der Unterordner (hier im beispiel der ersten Unterordner von "TestOrdner") und das dann anschließende umbenennen jener mit einer ergänzung "- Archiv"

die ordner die kopiert bzw gelöscht und umbenannt werden sollen stehen in dieser OrdnerListe.txt datei

kann mir bitte jemand sagen was ich da falsch gecoded haben könnte oder was cmd vllt falsch interpretiert? und dazu dann bitte gleich einen entsprechenden verbesserungs vorschlag?

achso, der code ist in 2 schnipseln damit der code weniger anfällig ist für fehler (ironischerweise), natürlich würde man ihn auch als einen einzigen ausführen können, wenn man es wollen würde

Batch, cmd, Code, Programmiersprache

verständinsproblem addressausgabe dynamische Liste?

Hallo,

ich habe eine Liste in C erstellt, dies scheint wohl zu funktionieren, allerdings habe ich ein Problem mit der Ausgabe der Adresse der einzelnen Elemente in der Liste

Zunächst rufe ich für alle Files die Funktion "appenFileName_v" auf.
zum schluss rufe ich dann noch einmal die Funktion: "printList_v" auf um zu überprüfen ob alle elemente vorhanden sind

struct fileList_ts
{
  char* name;
  struct fileList_ts* next;
};
static struct fileList_ts* fileList_ps = NULL;
static void appendFileName_v(char* value)
{
  struct fileList_ts *newElement_ps;
  if (fileList_ps == NULL) // check if there is already an element in the list
  {
    if((fileList_ps = malloc(sizeof(struct fileList_ts))) == NULL)
    {
      ESP_LOGE(TAG, "no free memory for starting list");
    }
    else
    {
      ESP_LOGI(TAG, "address fileList_ps: %p", &fileList_ps);
      fileList_ps->name = (char *)malloc(strlen(value) + 1);
      strcpy(fileList_ps->name, value);
      fileList_ps->next = NULL;
    }
  }
  else
  {
    newElement_ps = fileList_ps; // point to first element
    while(newElement_ps->next != NULL) // go to last element
    {
      newElement_ps = newElement_ps->next;
    }
    if((newElement_ps->next = malloc(sizeof(struct fileList_ts))) == NULL) // reserve memory for the new element
    {
      ESP_LOGE(TAG, "no free memory for the new element");
    }
    else
    {
      newElement_ps = newElement_ps->next; // point to new memory
      newElement_ps->name = (char *)malloc(strlen(value) + 1);
      ESP_LOGI(TAG, "address newElement: %p", &newElement_ps);
      strcpy(newElement_ps->name, value);
      newElement_ps->next = NULL;
    }
  }
}

static void printList_v(void)
{
    struct fileList_ts *pointer = fileList_ps;
    while(pointer != NULL) {
        ESP_LOGI(TAG, "printList: %p %s", &pointer, pointer->name);
        pointer = pointer->next;
   }
}


Die Ausgabe ist dann wie folg:

I (634) SD_CARD: address fileList_ps: 0x3ffb2fbc  SYSTEM~1
I (634) SD_CARD: address newElement: 0x3ffb8f10  HELLO.TXT
I (634) SD_CARD: address newElement: 0x3ffb8f10  FOO.TXT
I (634) SD_CARD: address newElement: 0x3ffb8f10  DREIECK.BMP
I (644) SD_CARD: address newElement: 0x3ffb8f10  DREIECK.PNG
I (644) SD_CARD: address newElement: 0x3ffb8f10  KREUZ.BMP
I (664) SD_CARD: address newElement: 0x3ffb8f10  TEST.BMP
I (664) SD_CARD: address newElement: 0x3ffb8f10  TEST2.BMP
I (664) SD_CARD: printList: 0x3ffb8f10 SYSTEM~1
I (664) SD_CARD: printList: 0x3ffb8f10 HELLO.TXT
I (674) SD_CARD: printList: 0x3ffb8f10 FOO.TXT
I (674) SD_CARD: printList: 0x3ffb8f10 DREIECK.BMP
I (674) SD_CARD: printList: 0x3ffb8f10 DREIECK.PNG
I (694) SD_CARD: printList: 0x3ffb8f10 KREUZ.BMP
I (694) SD_CARD: printList: 0x3ffb8f10 TEST.BMP
I (694) SD_CARD: printList: 0x3ffb8f10 TEST2.BMP

Die Namen sind also alle in der Liste drinn. Nur wundert es mich, dass die Adresse überall die selbe ist.

Code, Programmiersprache, Liste, C (Programmiersprache)

Kennt ihr auch die geheimen Zeichen und Codes, die man ständig in den Nachrichten, (Kino-)Filmen, TV-Serien, Musik- & Social-Media-Videos sieht?

Die Zeichen der Geheimgesellschaften oder bzw. Geheimdienste. Sie übermitteln damit heimlich Nachrichten oder identifizieren sich gegenseitig in sozialen Netzwerken.

Ihr findet die Zeichen in Nachrichten, Social-Media, (Kino-)Filmen, TV-Serien, Musik(-Videos), Büchern, Kunst, Social-Networks,...

Codewörter dazu in Büchern, Liedtexten, o.ä.

Wenn ihr erst einmal darauf achtet, seht ihr es irgendwann überall.

- Das sind Codezahlen:

7,11,13,17,18,23,33,66,77,42,44,88,333,666,777

- Besondere Zeichen:

  • ☝️ Zeigefinger (es ist DAS Symbol, wie am Ende von "The sign" von Ace of Base https://www.youtube.com/watch?v=iqu132vTl5Y
  • ☀️Sonne = (Zeigefinger zeigt oft dorthin) (Sonnenkult) Deswegen in fast allen Filmen Szenen mit der Sonne
  • Pyramide = Machthierarchie (aus dem alten Ägypten, Pharaonen)
  • Das allsehende Auge (auch Sonnenzeichen = Überwachung)
  • Eulen = Weisheit und Nachtjäger - überall auf der Seite der "Guten" in sozialen Netzwerken, alternativen Kanälen und Filmen
  • Bienen = Diener eines Staates (besonders das Portal IMdB.com = I aM D(th)e Bee). Dort gibt es viele Schlüsselwörter

- Gegenstände:

  • Gitarre - das wichtigste Standardzeichen
  • Schlüsselbund (z.B. offen sichtbar am Gürtel) = Schlüssel-Wörter (Codes)
  • große Mikrofone (die besonders auffallen) Mittlerweile auch Headsets
  • Theatervorhang (oft im Hintergrund) = Theatervorstellung, Schauspiel

- Kleidung:

  • 😎 Sonnenbrille: wie Agenten ("I wear my sunglasses at night" - Markenzeichen in vielen Filmen, wie Sie Leben, Matrix, Blues Brothers, usw.
  • Karierte Hemden, insbesondere Flanell hemden (Karo = Schachbrettmuster, wie auf den Böden der Logen)
  • Schlapphüte (oder ähnliche Hüte, wie früher Geheimagenten)
  • T-Shirts o.ä. mit Aufschrift ("Obey") - wie aus dem Film "Sie leben"

- Handzeichen (Prominente, Politiker):

  • Die "Merkel-Raute" mit den Händen (wie Winkel und Zirkel Symbol der Freimaurer)
  • 👌die 3 Sechsen mit den Fingern (OK Zeichen)
  • die "Hidden Hand" Gestik (Napoleon u.v.a.)
  • 🤘Das gehörnte Satanszeichen (Zeigefinger und kleiner Finger ausgestreckt)

- Ägyptische Zeichen (da kommt es alles her):

  • die Pyramide, in verschiedensten Varianten. Das Templerkreuz (und alle ähnlichen) ist die Pyramide von oben.
  • Die Löwen (Symbole der Macht und des Schutzes).
  • Die Obelisken (Vatikan, Washington, London,... - sie tragen oft auch ägyptische Namen) - Symbol der Herrschaft und des Gelingens. Zeichen der Könige.
  • Das allsehende Auge.
  • Die geflügelte Sonne(-nscheibe), Flügel des Horus (insbesondere in militärischen Abzeichen).
  • Duat - Stern im Ring (Zeichen der Unterwelt - bzw. Reise durch die Unterwelt mit Transformation), besonders beim Militär

Sonstige Erkennungszeichen:

  • V, W oder M (kommen in Filmen ständig hervorgehoben vor - Firmennamen, Schilder, irgendwo im Hintergrund) : Hat u.a. mit (heiliger) Geometrie zu tun.

Was in fast allen Filmen auffällt:

  • EXIT - Zeichen : Kommen überall vor, man kann sie nicht übersehen. Beginn oder Ende einer kryptografischen Nachricht
  • Feuerlöscher: Hängen und stehen überall herum
  • Schulbus - Vollkommen veraltet, aber überall dabei
  • Diese Dinge werden oft eingeblendet obwohl vollkommen unwichtig:
  • Nummernschilder (Codes)
  • Türschildbeschriftungen (Codes)
  • Bücher mit Titel (Kryptografisches Codebuch-Verfahren)

Viele dieser Dinge sind eigentlich überflüssig in Filmen. Jede Filmsekunde ist wichtig und kostet viel Geld. Es wäre unsinnig so unwichtige Szenen ständig drinnenzulassen, wenn sie nicht eine wichtige geheime Bedeutung hätten.

Ich kenne noch dutzende geheime Zeichen mehr, vielleicht im nächsten Beitrag.

Gruß an alle Geheimgesellschaftler und Geheimdienstler 🤡

Fragt "Oben" nach warum ich das tue - und bedankt euch dort.

Wenn ihr euch traut - ich wette nicht. ☀️ 😎☝️

Fernsehen, Kino, Netzwerk, geheim, Passwort, Kommunikation, Social Media, Code, Geheimdienst, Geheimnis, Kryptographie, Unsinn, Verschwörungstheorie, Identifizierung, Symbol, TV-Serie, Netflix

Codierung falsch, aber alle?

moin, ich habe einen code geschrieben, der für mich ordner und deren inhalte kopieren soll, von einen Datenträger auf den anderen, quasi ein archivierungshelfer. den code schreibe ich gleich unten hin aber mir ergibt sich da folgendes problem: ich will nicht alle ordner eines verzeichnisses archivieren, sondern nur ausgewählte, dafür habe ich eine liste, in der all jene stehen, die kopiert werden sollen, mein problem dabei ist aber, dass die codierung nicht erkannt wird, egal welche! ich habe die liste in einem .txt dokument gespeichert ---- an der stelle will ich anmerken dass der code wohleher ein befehl für cmd ist --- und sämtliche mögliche codierungen ausprobiert, alle namen die kein ß,ä,ö oder ü haben, werden gelesen, erkannt und dann kopiert, so wie es sein soll, aber durch die codierung sucht er z.b. statt nach einem ü nach einer hochgestellten 3 ???? (ANSI) ich weiß nicht mehr weiter, ich weiß nur zu 100% dass es an der codierung liegt, denn wenn ich mir die liste von cmd ausgeben lasse passiert das oben geschriebene, alles wird normal geschrieben, außer ä ö ü und ß.

was kann ich tun???

hier mein code:

set "quelle=I:\Ordner 1\ZZZTester" & set "ziel=V:\Ordner 1\TestOrdner" & set "liste=C:\Users\*mein User*\Documents\OrdnerListeTESTER.txt"

for /f "usebackq delims=" %N in ("%liste%") do (

  echo Verarbeite Ordner: %N  

  robocopy "%quelle%\%N" "%ziel%\%N" /E /COPY:DATSO /R:3 /W:10 /MT:8 /LOG+:kopierlog.txt

)

cmd, Code, Programmiersprache

ESP32 Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled?

Hallo,

ich habe ein Problem mit meinem Code auf einem ESP32.
ich habe einen array von struct, welchen ich beschreiben möchte:

file_1.c

typedef struct{
  uint8_t green;
  uint8_t red;
  uint8_t blue;
}ledStrip_ts;
... ... ...
static ledStrip_ts lightbar_as[100];
... ... ...
      if (true == getPixelData_b(&graphicData_s.numOfCols_u32, &graphicData_s.numOfRows_u32, (uint8_t*)&lightbar_as[0]))... ... ...  

file_2.c:

bool getPixelData_b(uint32_t* numOfCols_pu32, uint32_t* numOfRows_pu32, uint8_t* pixelData_pu8)
{
.... .... ....
                bmpColorData_ps = bmpGetGraphicData_v(numOfCols_pu32, numOfRows_pu32);
                ESP_LOGI(TAG, "%p    numOfCols_pu32: %lu  numOfRows_pu32: %lu", bmpColorData_ps, *numOfCols_pu32, *numOfRows_pu32);
... ... ...
                uint32_t counter1 = 0;
                uint32_t counter2 = 0;
                uint32_t counter3 = 0;
                uint32_t y = 0;
                for(uint32_t x=0; x<(*numOfRows_pu32); x++)
                {
                    for(y=0; y<(*numOfCols_pu32); y++)
                    {
                        pixelData_pu8[counter1++] = bmpColorData_ps[counter2].green;
                        pixelData_pu8[counter1++] = bmpColorData_ps[counter2].red;
                        pixelData_pu8[counter1++] = bmpColorData_ps[counter2].blue;
                        ESP_LOGI(TAG, "r: 0x%02X    g: 0x%02X    b: 0x%02X", pixelData_pu8[counter3+1], pixelData_pu8[counter3], pixelData_pu8[counter3+2]);
                        counter2++;
                        counter3+=3;
                    }
                    counter2 += (4 - (y%4));    // Compression = 0 (BI_RGB): Bilddaten sind unkomprimiert, bedeutet
                                                // "Jede Bildzeile ist durch rechtsseitiges Auffüllen mit Nullen auf ein 
                                                // ganzzahliges Vielfaches von 4 Bytes ausgerichtet." (Wikipedia)
                }
... ... ...

Laut Ausgabe (und das ist richtig, sind es 14x14 pixel.
105 Elemente werden geschrieben, dann bekomme ich den Error.
Doch eigentlich ist mein Buffer doch 100 Elemente * 3 Byte (uint8_t red, green, blue). Also 300 Byte.

Als Ausgabe bekomme ich dann:

I (1414) GRAPHIC: r: 0xFF    g: 0xFF    b: 0xFF
I (1414) GRAPHIC: r: 0xFF    g: 0xFF    b: 0xED
Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.


Core  0 register dump:
PC      : 0x400d836e  PS      : 0x00060730  A0      : 0x800d7e4e  A1      : 0x3ffbcf70
A2      : 0x3ffb2e38  A3      : 0x0000013b  A4      : 0x3ffb2e3c  A5      : 0x00000007
A6      : 0x00000077  A7      : 0x0000013b  A8      : 0x0000013d  A9      : 0x3ffb2f74
A10     : 0x00000165  A11     : 0x3ffb2f78  A12     : 0xc0ee0164  A13     : 0x00000586
A14     : 0x3f403a78  A15     : 0x000000ff  SAR     : 0x00000004  EXCCAUSE: 0x0000001c
EXCVADDR: 0xc0ee0164  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffffd




Backtrace: 0x400d836b:0x3ffbcf70 0x400d7e4b:0x3ffbcfc0 0x400d7f3c:0x3ffbcff0 0x40088075:0x3ffbd020
--- 0x400d836e: getPixelData_b at C:/Projekte/ESP32/leuchtstab/main/graphic.c:101


--- 0x400014fd: strlen in ROM
--- 0x4000150d: strlen in ROM


--- 0x400d836b: getPixelData_b at C:/Projekte/ESP32/leuchtstab/main/graphic.c:101
--- 0x400d7e4b: lightbarExec_v at C:/Projekte/ESP32/leuchtstab/main/lightbar.c:116
--- 0x400d7f3c: lightbarTask_v at C:/Projekte/ESP32/leuchtstab/main/lightbar.c:184 (discriminator 1)
--- 0x40088075: vPortTaskWrapper at C:/Espressif/frameworks/esp-idf-v5.4/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

Wenn ich nur ein 3x2 pixel bild nehme, funktioniert es ohne probleme.

Code, C (Programmiersprache), ESP32

ChatGPT sieht ein Problem in meiner Method und ich verstehe nicht wirklich wo das Problem liegt (C# Programmieren)?

Ich lerne C# und habe ein kleines Programm entwickelt, In dem man Random eine Zahl rollt, die Größer sein soll als ein Random gerolltes Ziel. Ist die eigene Zahl kleiner als das Ziel hat man verloren, ist sie größer hat man gewonnen. Nun habe ich das Programm einmal ChatGPT überblicken lassen, und es sieht ein Problem in meiner StartReset variable in meiner ShouldPlay Methode und ich habe nicht ganz verstanden worin das Problem liegt, da mein Programm auch so ohne Probleme läuft und der Compiler weder Fehler, noch Warnungen anzeigt. Vielleicht kann mir ein Mensch besser erklären, worin ChatGPT das Problem sieht?

```

Random random = new Random();
Console.WriteLine("Would you like to play? Y/N)");
if (ShouldPlay(true))
{
  PlayGame();
}
void PlayGame()
{
  var play = true;
  while (play)
  {
    var target = random.Next(0, 6);
    var roll = random.Next(0, 7);
    Console.WriteLine($"Roll a number greater than {target} to win!");
    Console.WriteLine($"You rolled a {roll}");
    Console.WriteLine(WinOrLose(roll, target));
    Console.WriteLine("\nPlay again? (Y/N)");
    play = ShouldPlay(false);
  }
}
bool ShouldPlay(bool startReset)
{
  while (true)
  {
    Console.WriteLine("Please enter Y or N");
    string? userInput = Console.ReadLine();
    string? loweredInput = userInput?.ToLower();
    if (loweredInput == "y")
    {
      return true;
    }
    else if (loweredInput == "n")
    {
      return false;
    }
  }  
}
string WinOrLose(int roll, int target)
{
  if (roll > target)
  {
    return "You won!";
  }
  else
  {
    return "You lose!";
  }
}

```

programmieren, C Sharp, Code, Programmiersprache, Visual Studio, Algorithmus

Wie lernt man Python/Pandas schnell?

Hallo,

ich soll für die Uni Pandas in Python lernen. Nur ist es so, dass von der Uni kein Kurs dafür angeboten wird. Das heißt, ich muss es mir selbst beibringen.

Deshalb hätte ich ein paar Fragen: Ich habe keinerlei Erfahrung in Python. Ich habe zwar durch Java 1 etwas in die Programmierung hineingeschnuppert und Standardsachen wie if-Schleifen, Methoden und sowas gelernt, allerdings kenne ich weder die Syntax in Python noch sonst irgendetwas.

Jetzt das Problem: Am nächsten Donnerstag ist bereits das erste Praktikum, welches ich komischerweise in Mathe 2 habe (also im Kurs Mathe 2 haben wir als Praktikum Pandas, aber darum geht es nicht), sondern, ich soll bis nächste Woche Donnerstag Pandas lernen und auf Moodle steht, dass Sachen drankommen, wie Funktionen, Parameter, Schleifen, IF-Anweisungen, etc.. In Python programmieren kann.

Ich habe mir bereits Visual Studio Code heruntergeladen und eingerichtet, sodass ich an sich loslegen kann, aber ich kann halt keine Python-Syntax. Wie soll ich also Pandas machen?

Hättet ihr Tipps, Empfehlungen, Vorschläge, Videos, wie ich es schnell lernen kann?

Vielleicht gibt es ja unter euch auch Programmierer, die verstehen, was ich meine und mir Videos oder andere hilfreiche Sachen empfehlen können. Also ich brauche alles:

  • Wie fängt man in Python an?
  • Legt man einfach los oder muss man wie bei Java erst sowas machen wie "public static void main", um loszulegen?
  • Wie ist die Syntax?
  • Ist es auch am Ende mit ; oder mit was?
  • Parameter, erklärt, wie, warum, Klammern? Befehle? Am besten einfach wirklich alles dazu.

Meine Idee wäre jetzt einfach: Ich versuche mir durch YouTube, etc. Python-Grundlagen beizubringen und dann schnell Pandas zu testen und zu hoffen, dass es klappt.

Ich hoffe, ihr versteht, was ich meine und könnt mir helfen. Falls ihr Fragen habt, sagt gerne Bescheid. Ich bin über jede Hilfe dankbar.

Code, Programmiersprache, Python, Python 3

Wie kann ich den Fehler "package.json" beheben?

Hallo zusammen,

ich habe ein wirklich ungeduldiges Problem.

Es geht darum, einen Quellcode für einen 3D-Drucker zu ändern, den ich von Knutwurst heruntergeladen habe. Es handelt sich um einen Quellcode für den Anycubic Mega P mit DGUS-Klonbildschirm, Tmc2208-Treiber, BlTouch.

Ich würde es gerne mit Visual Studio Code bearbeiten, aber jedes Mal stoße ich auf das Problem, wie im Titel beschrieben, unabhängig davon, ob es sich um die neueste Version oder eine ältere Version handelt.

Ich habe mich an die Anleitung im Knutwurst Wiki gehalten, erst den Quellcode runterladen, dann in VSC öffnen und die Version auf dem entsprechenden Drucker auswählen, schließlich zum ersten Mal zum Kompilieren auf (Build) drücken.

Der letzte Schritt gibt immer den gleichen Fehler.

Habe auch alles Mögliche mit Arduino Ide versucht, hatte aber keinen Erfolg

Weitere Informationen finden Sie hier:

Version von Visual Studio Code

  • Die neueste Version

Quellcodes die ich bereits ausprobiert habe

  • 1.5.4 und 1.3.1

Name des Quellcodes

  • MEGA_P_DGUS_TMC_BLT_10_v1.5.4.hex

Ich brauche dringend Hilfe und werde leider ungeduldig, ich habe monatelang an dem 3D-Drucker herumgebastelt und jetzt scheitert es am Quellcode. Ich muss den Quellcode ändern, sonst kann ich die neue Leistung der Heizpatrone und der Lüfter nicht ändern.

Bild zum Beitrag
Code, Programmiersprache, Upgrade, 3D-Drucker, Quellcode, source code, Visual Studio Code, Anycubic

Greenfoot/Schiffe-versenken: Wieso schießt der Gegner mehrmals?

Hey, bei meinem Java-Code für Greenfoot spielt man selbst gegen den Computer, der, nachdem man selbst geschoßen hat, auch einen zufälligen Schuss setzt.

Der Gegner schießt momentan allerdings mehrmals. Hat jemand eine Idee, woran das liegt? 🙂

import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)
import java.util.*;

/**
 * Ergänzen Sie hier eine Beschreibung für die Klasse Schiff.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Schiff extends Actor {
  public Schiff(String image) {
    setImage(image);
  }

  /**
   * Act - tut, was auch immer Schiff tun will. Diese Methode wird aufgerufen, 
   * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. 
   */
  public void act() {
    mausKlick();
  }

  public void mausKlick() {
    if (Greenfoot.mouseClicked(this)) {
      int xPos = Greenfoot.getMouseInfo().getX();
      int yPos = Greenfoot.getMouseInfo().getY();
      ((Schiffeversenken)this.getWorld()).addObject(new Treffer(), xPos, yPos);
    }
    else if (Greenfoot.mouseClicked(((Schiffeversenken)this.getWorld()).rechts)) {
      int xPosi = Greenfoot.getMouseInfo().getX();
      int yPosi = Greenfoot.getMouseInfo().getY();
      ((Schiffeversenken)this.getWorld()).addObject(new KeinTreffer(), xPosi, yPosi);
      gegner();
    }
  }

  public void gegner() {
    int[] xKoordinate = new int[7];
    int[] yKoordinate = new int[7];
    int x = 0;

    for (int i = 67; i < 326; i = i + 43) {
      xKoordinate[x] = i;
      x++;
    }

    int y = 0;

    for (int i = 154; i < 398; i = i + 40) {
      yKoordinate[y] = i;
      y++;
    }

    Random random = new Random();
    int xIndex = random.nextInt(7);
    int yIndex = random.nextInt(7);
    int zufallx = xKoordinate[xIndex];
    int zufally = yKoordinate[yIndex];
    List<Schiff> schiffe = getWorld().getObjectsAt(zufallx, zufally, Schiff.class);

    if (!schiffe.isEmpty()) // Wenn ein Schiff gefunden wurde
    {
      ((Schiffeversenken)this.getWorld()).addObject(new Treffer(), zufallx, zufally); // Füge ein Treffer-Objekt hinzu
    }
    else // Wenn kein Schiff gefunden wurde
    {
      ((Schiffeversenken)this.getWorld()).addObject(new KeinTreffer(), zufallx, zufally); // Füge ein NichtTreffer-Objekt hinzu
    }
  }
}
programmieren, Java, Code, Programmiersprache, Greenfoot

JQuery Code umschreiben value "1" und value "2"?

Kann man den Code so umschreiben oder ändern, dass wenn man zurück auf keine_dieser_Krankheiten anklickt, dass dann alle Felder _Erkrankungen den value "1" zurück bekommen?

$(document).ready(function() {
  let krankheitenCheckboxes = $("input[type='checkbox'][name$='_Erkrankungen']").not("#keine_dieser_Krankheiten");
  let keineCheckbox = $("#keine_dieser_Krankheiten");
  
  function updateValues() {
    krankheitenCheckboxes.each(function() {
      let hiddenInput = $("input[type='hidden'][name$='_Erkrankungen']");
      if ($(this).prop("checked")) {
        hiddenInput.val("2");
      } else {
        hiddenInput.val("1");
      }
    });
  }
  
  krankheitenCheckboxes.on("change", function() {
    if ($(this).prop("checked")) {
      keineCheckbox.prop("checked", false);
      $("input[type='hidden'][name='keine_dieser_Krankheiten']").val("1");
    }
    updateValues();
  });
  
  keineCheckbox.on("change", function() {
    if (keineCheckbox.prop("checked")) {
      // Setzt alle _Erkrankungen Felder auf "1"
      krankheitenCheckboxes.each(function() {
        $(this).prop("checked", false);
        let hiddenInput = $("input[type='hidden'][name$='_Erkrankungen']");
        hiddenInput.val("1");
      });
      $("input[type='hidden'][name='keine_dieser_Krankheiten']").val("2");
    } else {
      $("input[type='hidden'][name='keine_dieser_Krankheiten']").val("1");
    }
    updateValues();
  });
  
  updateValues();
});
HTML, Webseite, JavaScript, HTML5, Code, JQuery, Programmiersprache, Script, Webentwicklung, Frontend

Meistgelesene Beiträge zum Thema Code