Binär-Wrapper für ISDN
-
Dieser Thread wurde von Moderator/in davie aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
.filmor schrieb:
Gemeint war die API des Betriebssystems.
BTW, dein Shellskript leitet nichts um, dass macht die Pipe (|), sondern schreibt den Kram aus /dev/com0 in die Datei meinprogramm.cpp
Ich habe mir jetzt den Wiki - Eintrag durchgelesen. Ich habe dann auch in der Linux API gesucht aber ich habe dort keine FUnktion ausfindig machen können mit der ich den COM - Port einlesen kann. Ich glaube ich brauche die ABI - Binärschnittstelle denn ich will ja genau die Binären Daten haben. Wo finde ich Docs dazu? Bei Google hab ich nix gefunden? Oder kann jemand vielleicht ein kleines Beispiel geben wie ich mit der Binärschnittstelle Daten vom COM - Port einlese?
Ich glaube es ist einfacher das ganze über das Shellskript zu lenken. Aber mit welcher Linux - API - Funktino kann ich die Daten aus der Pipe einlesen ??? Wenn ich es so aufrufe:
cat /dev/ttyS0 | isdnwrppr.cpp
-
Da solltest du auf jeden Fall nicht die CPP verwenden, sondern dein fertiges Programm
cat /dev/ttyS0 | isdnwrppr.exe
Und zweitens wird bei dieser Schreibweise afaik die Ausgabe des cat-Befehls als Standard-Eingabe deines Programms verwendet (stdin bzw. cin).
-
Schau mal in die FAQ.
-
Hallo.
Ich konnte dort nichts finden zum Thema ISDN?
Sitze übrigens immer noch an dem Problem aber schreibe jetzt erstmal das Web-Frontend.
-
wenn ich jetzt nicht falsch liege, solltest du dir erst über die begrifflichkeiten klar werden, die du verwendest, denn die isdn anlage ist über einen seriellen com port an den computer angeschlossen. du möchtest nun die anlage steuern. soll heissen du müsstest afaik nur die /dev/tty* (je nach com port wo die anlage hängt) öffnen und die entsprechenden steuerbefehle an die anlage senden, dann die antwort auswerten. die funktionen zum öffnen, schließen, schreiben und lesen könnten da sein fopen(), fclose(), write(), read() und konsorten.
was du aber an die anlage schicken musst, weiss kein compiler das musst du selber wissen bzw das kann dir der hersteller deiner isdn anlage sagen (wenn du ihn nach der richtigen sache fragst)
nur um eine html tabelle zu erzeugen mysql, php und eine template engine zusätzlich zum programm zu benutzen halte ich für überflüssigst, kostet alles nur platz, der bei einem "mini computer" (ich denke mal du meinst einen embedded pc, siehe mein 1. satz) recht knapp bemessn ist üblicherweise. investier da einfach mal ein paar stunden in das programm und u hast eins das schneller läuft, weniger speicher benötigt, dazu noch unter 100kB auf der festplatte benutzt. und stell dir vor, auch ohne mysql und php kann man stabile anwendungen erstellen
-
LukazZ schrieb:
Hallo.
Ich konnte dort nichts finden zum Thema ISDN?
Sitze übrigens immer noch an dem Problem aber schreibe jetzt erstmal das Web-Frontend.
Nö, da steht aber wie du mit der seriellen Schnittstelle arbeitest und danach hattest du ja zu letzt gefragt.
-
schon mal danke für die antworten
Ich mus gar keine stuerbefehle an die anlage senden. ich muss nur eine bestimmte nummer am telefon eingeben , dann schickt die immer die daten über den parallelen ausgang wenn einer anruft oder angerufen wird.
Und ob das Programm viel platz brauch oder nicht ist nicht so wichtig. Speicherplatz und cpu kostet ja nicht vile... und wenn es zu wenig wird nehme ich einfach einen etwas größeren mini-pc. zahlen tut schließlich der kunde
Ich habe das mal probiert mit fopen , aber er liefert keine binärdaten sondern NULL und in errno haut er mir immer den EACCESS rein. muss ich vielleicht die parallel-shell in die fstab eintragen!? oder kann ich aus dem programm raus irgendwie root-rechte anfrodern?
-
LukazZ schrieb:
Ich mus gar keine stuerbefehle an die anlage senden. ich muss nur eine bestimmte nummer am telefon eingeben , dann schickt die immer die daten über den parallelen ausgang wenn einer anruft oder angerufen wird.
komisch gestern war es noch der com-port (also ein serieller)
LukazZ schrieb:
Und ob das Programm viel platz brauch oder nicht ist nicht so wichtig. Speicherplatz und cpu kostet ja nicht vile... und wenn es zu wenig wird nehme ich einfach einen etwas größeren mini-pc. zahlen tut schließlich der kunde
servicewüste deutschland... tut mir leid aber ich krieg beisowas grad hass... leute die sagen sie wäre "spezialisten", tönen was von c++ und linux rum, schiessen mit mücken auf elefanten... und dann "zahlt doch der kunde". falls dir unser kapitalistisches system von angebopt und nachfrage nicht bekannt ist, er muss nicht zahlen...
LukazZ schrieb:
Ich habe das mal probiert mit fopen , aber er liefert keine binärdaten sondern NULL und in errno haut er mir immer den EACCESS rein. muss ich vielleicht die parallel-shell in die fstab eintragen!? oder kann ich aus dem programm raus irgendwie root-rechte anfrodern?
bittewas?!
was is eine parallel-shell?
und was soll die in der fstab?
hat deine isdn anlage etwa ein dateisystem?
und was willst du mit root rechten? du machst mir angst... du willst ein userspace programm sinnloserweise als root laufen lassen?tut mir leid wenn ich jetzt geflamed habe (sorry @ mods)
-
Ob das jetzt der COM-Port oder der serielle Anschluss ist ist doch egal - die sind ja vom prinzip her das selbe und werden in linux auch nicht unterschieden.
[quote=fallen]und dann "zahlt doch der kunde". falls dir unser kapitalistisches system von angebopt und nachfrage nicht bekannt ist, er muss nicht zahlen... [/quote]
der kunde ist ein guter bekannter von meinem vater und daher habe ich auch den auftrag. er hat gesagt das er mir matterial zahlt und wenn ich sage er soll das nehmen dann macht er das auch hoffe ich zumindest. er ist nämlich auch der meinung dass qualität eben seinen preis hat.
[quote=fallen]was is eine parallel-shell?
und was soll die in der fstab?
hat deine isdn anlage etwa ein dateisystem?
und was willst du mit root rechten? du machst mir angst... du willst ein userspace programm sinnloserweise als root laufen lassen? [/quote]
parallel-shell ist die shell von dem parallelen port (tty ist unter linux immer eine shell!!!)
ja, die anlage schickt ja binärdaten über das kabel und die kommen in linux ja in form der datei /dev/ttyS0 an - also muß da ja ein dateisystem vorliegen sonst währen die daten ja in irgendeinem stream oder neztwerk protokoll.
und root-rechte brauche ich ja wenn der normale user keinen zugriff kriegt (EACES fehler) weil der root hat ja überall zugriff. sicherheitstechnisch ist das auch unbedenklich denn das liegt ja sicher im keller und da kommt keiner ran - außer die telekom wenn einer manipolierte isdn-daten sendet aber das kann man quais auscschließen.Ich denke ich werde es so realisieren - schon mal vielen dank für die hifle!
eine frage bleibt jedoch noch - wie kriege ich die binärdaten sicher in die mysql-tabelle. es könnten ja bytes auftreten die in mysql query-fehler erzeugen. auserdem könnte die packetgröße überschritten werden - avber die kann ich am server ja hochstellen?? gibt es eine escape-funktion für binärdaten? für strings kenne ich diese schon! oder muss ich die selbst schreiben - wnen ja : wie?!?!?!