Neueste Beiträge

#61
Deutsche Strahlenmessgeräte (BRD) / Aw: target nanoSPEC
Letzter Beitrag von NuclearPhoenix - 25. März 2024, 22:26
Zitat von: marvin am 25. März 2024, 18:43sieht das so besser aus?

Sie dürfen in diesem Board keine Dateianhänge sehen.
Definitiv besser. Das sieht "nur" nach einem Problem mit der Kalibrierung aus.
#62
Deutsche Strahlenmessgeräte (BRD) / Aw: target nanoSPEC
Letzter Beitrag von wrdmstr inc. - 25. März 2024, 20:09
jein, es sieht so aus als wäre das ein ausschnitt vom spektrum und zwar da wo jetzt 500kev stehen, müsste ungefähr der 80kev "peak" liegen und das ganze mehr gestaucht, und iwo weiter rechts ist auch kein peak zu sehen der vom K40 bei 1462kev liegen müsste (in jeder Wohnung nach paar Minuten sichtbar wegen dem Zement) so ie hier: https://www.geigerzaehlerforum.de/index.php/topic,2071.0.html
#63
Allgemeine Diskussionen / Aw: Radium Prüfgerät
Letzter Beitrag von NoLi - 25. März 2024, 18:46
Könnte ein Elektrometer zur Radiumaktivitätsbestimmung sein.

Norbert
#64
Deutsche Strahlenmessgeräte (BRD) / Aw: target nanoSPEC
Letzter Beitrag von marvin - 25. März 2024, 18:43
sieht das so besser aus?

Sie dürfen in diesem Board keine Dateianhänge sehen.
#65
Deutsche Strahlenmessgeräte (BRD) / Aw: target nanoSPEC
Letzter Beitrag von marvin - 25. März 2024, 16:19
Zitat von: NuclearPhoenix am 25. März 2024, 16:12Ich frag das nur, weil man nach jedem event immer einen Strichpunkt (standardmäßig) hinzufügen muss, falls du das nicht schon machst. Sonst weiß die Software nicht wo eine Nummer aufhört und eine andere beginnt, da kommt dann irgendein Blödsinn raus.

Für die Event Daten muss kein String geparsed werden. Ich sammle die beide bytes ein, rechne sie zusammen und schiebe den Wert direkt in "bufferPulseData"...

  /*
    Decode nanoSpec event data

    nanoSpec eventData consists of two bytes that encode 11 bit
    event data:

    bit 7      marks the incoming char as event data
    bit 6      marks high or low event data (0 - low / 1 - high)
    bit 5      on the high byte marks an overflow of the "true event counter",
               if this is high, events might be missing in the cumulated event data
    bit 5 - 0  in the  low event data are bit  5 - 0 in the event data
    bis 4 - 0  in the high event data are bit 10 - 6 in the event data

    So, following operations decode two characters from the serial input
    to one event data word:

            10EEEEEE        rxByte 1 (low)
    0000000010EEEEEE        in 1
    0000000000111111        (and)
    0000000000EEEEEE        ev

                  11xHHHHH  rxByte 2 (high)
          0000000011xHHHHH  in 2
          0000000000011111  (and)
          00000HHHHH000000  (shl 6)
          00000HHHHHEEEEEE   ev
*/
  private addRawNanoSpec(uint8Array: Uint8Array): void {

    if (SerialManager.orderType === 'chron') { // CHRONOLOGICAL EVENTS
      for (const rxByte of uint8Array) {
        let rxNum:number = rxByte;
       
        if (rxByte > 127) {           // Event Data

          if ((rxNum & 0x40) == 0) {  // low data
            this.eventData = rxNum & 0x3F
          } else {                    // high data
            this.eventData = this.eventData | ((rxNum & 0x1F) << 6)
            if (this.eventData < 0 || this.eventData > SerialManager.adcChannels)
              continue; // Fixed value range. !FIX SERIAL COMMUNICATION ERRORS!
           
            if (this.bufferPulseData.length > SerialManager.maxSize) { // Protect from overflow and crashes
              console.warn('Warning: Serial buffer is saturating!');
              return;
            }

            this.bufferPulseData.push(this.eventData);
           
          }
        } else {  // Console Data
          if (this.rawConsoleData.length > this.consoleMemoryTotal - 1) {
            //console.warn('Serial console log is out of memory, deleting old history...');
            this.rawConsoleData = '';
          }
          this.rawConsoleData += String.fromCharCode(rxByte);
        }
      }
    } else if (SerialManager.orderType === 'hist') { // HISTOGRAM DATA
      // Kommt noch...
    }
  }
#66
Deutsche Strahlenmessgeräte (BRD) / Aw: target nanoSPEC
Letzter Beitrag von NuclearPhoenix - 25. März 2024, 16:12
Ich frag das nur, weil man nach jedem event immer einen Strichpunkt (standardmäßig) hinzufügen muss, falls du das nicht schon machst. Sonst weiß die Software nicht wo eine Nummer aufhört und eine andere beginnt, da kommt dann irgendein Blödsinn raus.
#67
Deutsche Strahlenmessgeräte (BRD) / Aw: target nanoSPEC
Letzter Beitrag von marvin - 25. März 2024, 15:52
Zitat von: NuclearPhoenix am 25. März 2024, 15:32Und der Ausgang zur Konsole, wie werden die Daten dort ausgegeben?

Ich schreibe die daten da nur rein. Beim nanoSpec kann man die Konsole während der Übertragung der Messdaten verwenden.

Wie gesagt, das ist bisher alles quick&dirty, aber das decoding sieht eigentlich gut aus.

Wenn man das mit dem nanoSpec ernsthaft integrieren will, muss man das handlich der Konsole anders machen, und start/stop Record am besten über die nanoSpec Kommandos regeln.

Ich muss mir jetzt erstmal noch die Konfiguration des nanoSpec ansehen, und irgendeine Quelle besorgen, damit man was sehen kann. Ich weiss eben auch nicht ob der PMT noch in Ordnung ist.
#68
Deutsche Strahlenmessgeräte (BRD) / Aw: target nanoSPEC
Letzter Beitrag von NuclearPhoenix - 25. März 2024, 15:32
Und der Ausgang zur Konsole, wie werden die Daten dort ausgegeben?
#69
Deutsche Strahlenmessgeräte (BRD) / Aw: target nanoSPEC
Letzter Beitrag von marvin - 25. März 2024, 15:25
Zitat von: NuclearPhoenix am 25. März 2024, 15:04Achso ups, habe ich falsch verstanden. Wie formattierst du die Daten denn? Das ist das wichtigste, alles andere klappt dann "einfach so".

Die Daten kommen wie folgt:
low byte  = 10LLLLLL
high byte = 11xHHHHH

bit 7 markiert "Event Daten"
bit 6 low/high byte
bit 5 beim high byte = 1 sagt, dass events verloren gegangen sind (dazu am bsten im Handbuch lesen :) )

Verarbeitung: (pseudocode)

  wenn rx > 127
    wenn rx AND 0b01000000 = 0 // low byte
      event = rx AND 0b00111111
    sonst   // high byte
      event = event OR (rx << 6)
  sonst
     "konsole daten"

also im prinzip keine hexerei, high/low unterscheiden, maskieren, rüberschieben :)


Edit: aaaah.. ich hab jetzt erst "gemerkt" wer du bist :D

Wenn ich zuhause bin kopiere mel meinen Code hierher...

ich hab im prinzip erstmal quick&dirty eine "addRawNanoSpec" routine gebaut, und rufe die in readUntilClosed auf.

alles < 127 schreibe ich in rawConsoleData, und die Events direkt per this.bufferPulseData.push(event) in die spectrum daten...
#70
Deutsche Strahlenmessgeräte (BRD) / Aw: target nanoSPEC
Letzter Beitrag von marvin - 25. März 2024, 15:10
Zitat von: wrdmstr inc. am 25. März 2024, 14:03stell ich mich grad an oder putty streikt
ich clicke doch  links auf serial ,zb com4 ,19200,8, 1, none, xon/xoff und DTR Kabel Pin4 auf DTR

weder noch. Meine Information Ursprünglich war falsch. bzw hab ich die Pinbelegung aus dem Handbuch mißverstanden.

mit "to DTR" war DTR am PC gemeint, nicht am nanoSpec selbst...

Putty macht beim Öffnen der seriellen Schnittstelle DTR direkt an. Wenn man ein einfaches DB9 verlängerungskabel nimmt, ist der nanospec dann direkt im RESET. (Ich hab mir einen zwischenstecker gebaut, der die Verbindung zu pin 4 unterbricht.

Probier mal folgendes:
- Serielles Kabel abziehen
- putty mit 19200 8N1 / ohne handshake anschalten
- nanoSpec einschalten
- kabel aufstecken
- Return drücken

dann sollte die Bootloader meldung kommen.

Wenn das Programmieren der Firmware geklappt hat, sollte der nanoSpec nach dem Abziehen des seriellen kabels ein "lauflicht" mit den drei waagerechten segmenten der 7-segment anzeige machen, und dann irgendwann nur noch mit einem der senkrechten segmente blinken.

Programmieren mit
W 58
dann L
dann copy/paste aus der ".hex" datei.