Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Bestätigung für Contact ID Meldung
05-08-2017, 11:59
Beitrag: #16
RE: Bestätigung für Contact ID Meldung
(25-07-2017 20:24)keloba schrieb:  Falls auch mal jemand sowas in java machen möchte, hier mal eine Testklasse.
Code:
package de.cid;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CIDTestServer {

    // Start des Testservers auf Port 8090
    public static void main(String[] args) throws IOException {
        CIDServer server = new CIDServer();
        server.start(8090);
    }

    public void start(int port) throws IOException {
        ServerSocket server = new ServerSocket(port);
        while (true) {
            try {
                Socket client = server.accept();
                CIDClient cidClient = new CIDClient(client);
                Thread th = new Thread(cidClient);
                th.start();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
            }
        }
    }
    
    class CIDClient implements Runnable {
        Socket client;
        OutputStream out;
        InputStream in;
        CID cid;

        public CIDClient(Socket client) throws IOException {
            this.client = client;
            this.client.setTcpNoDelay(true);
            out = client.getOutputStream();
            in=client.getInputStream();
        }

        @Override
        public void run() {
            try {
                StringBuilder sb=new StringBuilder();
                while (client.isConnected()) {
                    int c=in.read();
                    if (c==-1)
                        break;
                    sb.append((char)c);
                    if ((char)c==']') {
                        // ACK als Bestätigung zurück schreiben
                        out.write(6);
                        cid=new CID(sb.toString());                        
                        System.out.println("CID: "+sb.toString());
                        sb=new StringBuilder();
                    }        
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }    
    
    class CID {
        Pattern pattern = Pattern.compile("(\\[(\\d{4})(\\s)([1][8])([123])([0-9a-fA-F]{3})([012]{2})(\\d{3}).*\\])");
        private String acct;
        private String mt;
        private String q;
        private String xyz;
        private String gg;
        private String c1;
        
        public CID(String msg) {
            parse(msg);
        }
        
        public void parse(String msg) {
            Matcher matcher = pattern.matcher(msg);
            if (matcher.matches() && matcher.groupCount()==8) {
                // ACCT MT QXYZ GG C1 C2 C3
                acct=matcher.group(2);
                mt=matcher.group(4);
                q=matcher.group(5);
                xyz=matcher.group(6);
                gg=matcher.group(7);
                c1=matcher.group(8);
            }        
        }
    }
    
}

Klasse!!! Danke für den Tipp mit out.write(6). Damit wird das ACK bei der Lupusec XT2 Plus endlich akzeptiert.
Ich hatte vorher versucht das ACK als im Stream als \u0006 über PrintWriter zu schreiben. Das hatte nicht funktioniert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Nachrichten in diesem Thema
RE: Bestätigung für Contact ID Meldung - Schmupu - 05-08-2017 11:59

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Keine Push-Meldung nach Update (Android) Hano217 12 6.842 26-08-2019 18:10
Letzter Beitrag: Rudi Ratlos
  Abschaltung der "Update-Meldung" Hano217 1 3.044 23-05-2019 21:48
Letzter Beitrag: bastelheini
  SIA und Contact ID Server Schmupu 2 7.420 28-02-2019 15:42
Letzter Beitrag: Schmupu
  Akustische Meldung, wenn Tür mehr als X Sekunden offen ist and_go 8 5.256 31-10-2018 20:45
Letzter Beitrag: Fraggle
  Meldung bei falscher PIN fuchsbau 3 3.178 01-08-2018 14:35
Letzter Beitrag: fuchsbau
  Erfahrungen Contact-ID CID/SIA lupususer 0 3.776 25-07-2017 07:59
Letzter Beitrag: lupususer
  AWAG, AWUG ... Contact ID für Alarmaufschaltung justasimpleguy 3 3.854 09-03-2017 12:30
Letzter Beitrag: noby2104
smile Meldung von offenen Türen oder Fenstern bei Unscharf-Schaltung alarmwolf 10 5.033 23-02-2017 10:23
Letzter Beitrag: Xaavier
  Batterie Lebensdauer nach Leer Meldung Ratloser 4 3.785 08-11-2016 16:44
Letzter Beitrag: Ratloser
  Öffnen / Schließen eines Türkontaktes als Meldung via CONTACT-ID verschicken der_heimerker 18 13.166 01-05-2016 21:18
Letzter Beitrag: der_heimerker



Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste