CAPITEL und Pipes
CAPITEL und Pipes
Hat es schon jemand geschafft über Pipes mit CAPITEL zu kommunizieren?
Hintergrund: Ich habe mir eine Benachrichtigungsfunktion für eingegangene Anrufe gebaut. Die hat aber noch "tacktische Löcher".
CAPITEL bietet die Möglichkeit Informationen statt in eine Log-Datei in eine NamedPipe zu schreiben. Bisher ist es mir nicht gelungen von REXX aus an diese Pipe heranzukommen.
MfG
Wilfried
Hintergrund: Ich habe mir eine Benachrichtigungsfunktion für eingegangene Anrufe gebaut. Die hat aber noch "tacktische Löcher".
CAPITEL bietet die Möglichkeit Informationen statt in eine Log-Datei in eine NamedPipe zu schreiben. Bisher ist es mir nicht gelungen von REXX aus an diese Pipe heranzukommen.
MfG
Wilfried
Hi Wilf 
hmm.. täusche ich mich, oder gab es nicht sogar einen anruf-monitor für capi-tel?
ist schon lange her, dass ich das ding genutzt habe, bin aber der meinung sowas gehabt zu haben damals.
evtl. hat ja jemand anderes noch einen tipp

hmm.. täusche ich mich, oder gab es nicht sogar einen anruf-monitor für capi-tel?
ist schon lange her, dass ich das ding genutzt habe, bin aber der meinung sowas gehabt zu haben damals.
evtl. hat ja jemand anderes noch einen tipp
Für meine Telefonanlage schon: PMISTEC...oder gab es nicht sogar einen anruf-monitor für capi-tel?
Gruß
Lutz
Schau dir mal RXU1a.ZIP an. Liegt auf HOBBES und hat viele Funktionen um mit Pipes und Queues umzugehen.wilfried hat geschrieben:Hat es schon jemand geschafft über Pipes mit CAPITEL zu kommunizieren?
Hintergrund: Ich habe mir eine Benachrichtigungsfunktion für eingegangene Anrufe gebaut. Die hat aber noch "tacktische Löcher".
CAPITEL bietet die Möglichkeit Informationen statt in eine Log-Datei in eine NamedPipe zu schreiben. Bisher ist es mir nicht gelungen von REXX aus an diese Pipe heranzukommen.
MfG
Wilfried
MfG
Klaus
Hallo Klaus,klaus hat geschrieben:
Schau dir mal RXU1a.ZIP an. Liegt auf HOBBES und hat viele Funktionen um mit Pipes und Queues umzugehen.
MfG
Klaus
mit RXU1a.ZIp habe ich es auch schon probiert. Ohne Erfolg. Möglicherweise sitzt das Problem zwischen meinen Ohren.
MfG
Wilfried
- Frank Wochatz
- Beiträge: 1142
- Registriert: So 22. Dez 2013, 22:04
- Wohnort: Berlin
- Kontaktdaten:
Funktioniert denn Dein Pipe-Konstrukt auf Deinem Rechner, wenn Du Daten von einer Rexx-Session in die andere schiebst?
Erstellt Dein Skript den Pipe-Server, oder versuchts Du ev. mit einem Clientscript die Pipe zu lesen?
Erstellt Dein Skript den Pipe-Server, oder versuchts Du ev. mit einem Clientscript die Pipe zu lesen?
Hallo Frank,
ich muss zugeben das ich bisher mit Pipes keine Erfahrung habe.
Ich bin davon ausgegeangen das ich bei Capitel einen gültigen Pipe anstatt der Logdatei eintrage und dann eine REXX starte die diese Pipe zu lesen versucht.
Alle mir bekannten Quellen zum Thema Pipes sind nicht sonderlich ergiebig.
Was mache ich falsch?
ich muss zugeben das ich bisher mit Pipes keine Erfahrung habe.
Ich bin davon ausgegeangen das ich bei Capitel einen gültigen Pipe anstatt der Logdatei eintrage und dann eine REXX starte die diese Pipe zu lesen versucht.
Alle mir bekannten Quellen zum Thema Pipes sind nicht sonderlich ergiebig.
Was mache ich falsch?
- Frank Wochatz
- Beiträge: 1142
- Registriert: So 22. Dez 2013, 22:04
- Wohnort: Berlin
- Kontaktdaten:
Ich schätze Du musst die Pipe erstmal erstellen, da das vermutlich nicht von Capitel erledigt wird. Guck Dir mal das Printmonscript an, das ich früher für ePDF benutzt habe. Das erstellt eine Pipe und liest dann aus der Pipe und schreibt den Output in eine Datei. Du musst das Script natürlich anpassen, Pipe-Name ändern etc.. Und Du brauchst RXU dafür.
Code: Alles auswählen
/* Print2PS.cmd v0.4 for ePDF */
"cls"
/* setup */
/* named-pipe server setup */
pipename = '\pipe\ePDF'
openmode = 'WIN'
pipemode = 'WTR'
instance_count = 1
outbuf = 4096
inbuf = 4096
timeout = -1
readbufsize = 4096
/* ps dump setup */
EOF = x2c(4) /* end of file */
oldpath = directory() /* working dir */
/* ERROR HANDLING */
SIGNAL ON SYNTAX NAME errorHandler
SIGNAL ON ERROR NAME errorHandler
SIGNAL ON FAILURE NAME errorHandler
/* - - - - - init RXU - - - - - */
if rxfuncquery('rxuinit') then do
Call RxFuncAdd 'rxuinit','rxu','rxuinit'
Call rxuinit
end
/* - - - - - init RexxUtil - - - - - */
if rxfuncquery('SysLoadFuncs') then do
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs
end
dosrc = rxcreatenpipe('hpipe',pipename,openmode,pipemode,instance_count,
,outbuf,inbuf,timeout)
if dosrc <> 0 then
do
say 'RxCreateNPipe failed with rc =' dosrc
exit
end
ReadFromPipe:
/* - - - - - get temp dir and file - - - - - */
tempdir = value(TEMP,,'OS2ENVIRONMENT')
if tempdir = '' then tempdir = value(TMP,,'OS2ENVIRONMENT')
if tempdir = '' then tempdir = directory()
rc = directory(tempdir)
if rc = 0 then do
say "Error: invalid temp directory: " tempdir
signal exit
end
if lastpos('\', tempdir) >< length(tempdir) then tempdir = tempdir||'\'
tempfile=SysTempFileName(tempdir||postscript.???)
say;say 'Waiting for PostScript data ...';say
dosrc = rxconnectnpipe(hpipe)
if dosrc <> 0 then
do
say 'RxConnectNPipe failed with rc =' dosrc
exit
end
say " Write PostScript data to file: "tempfile
FoundEOF = 0
dosrc = rxread('data',hpipe,readbufsize)
do while word(dosrc,1) = 0 & word(dosrc,2) > 0
/* check EOF */
if pos(EOF, data) > 0 then do
FoundEOF = 1
rc = charout(tempfile, substr(data,1,pos(EOF, data)))
end
else if FoundEOF >< 1 then rc = charout(tempfile, data)
/* else flush pipe */
dosrc = rxread('data',hpipe,readbufsize)
end
say " ...done!"
rc=stream(tempfile,'c','close')
/* start ePDF */
rc = directory(oldpath)
say " Launching ePDF..."
"@start ePDF.EXE -PS:'"||tempfile||"'"
/* flush pipe -------- */
/*
do until chars(pipename ) = 0
ps_char = charin(hpipe,,readbufsize)
end
*/
call rxdisconnectnpipe hpipe
call ReadFromPipe
exit
errorHandler:
if hpipe >< "" & hpipe >< "HPIPE" then do
call rxdisconnectnpipe hpipe
call rxcloseh hpipe
end
exit
Hallo Frank,
vielen Dank für das Beispiel!
Es ist mir damit gelungen an die Debug-Informationen zu gelangen die Capitel liefern kann.
(filename_debug=\pipe\capitel) in capitel.cfg
Das was normalerweise in die Logdatei geschrieben wird habe ich damit bisher noch nicht über die Pipe angeboten bekommen.
(filename_log=\pipe\capitel in capitel.cfg)
Ich probiere weiter ...
vielen Dank für das Beispiel!
Es ist mir damit gelungen an die Debug-Informationen zu gelangen die Capitel liefern kann.
(filename_debug=\pipe\capitel) in capitel.cfg
Das was normalerweise in die Logdatei geschrieben wird habe ich damit bisher noch nicht über die Pipe angeboten bekommen.
(filename_log=\pipe\capitel in capitel.cfg)
Ich probiere weiter ...
- Frank Wochatz
- Beiträge: 1142
- Registriert: So 22. Dez 2013, 22:04
- Wohnort: Berlin
- Kontaktdaten:
Wilfried,
versuch doch mal verschiedene Pipe-Namen für Log und Debug...
versuch doch mal verschiedene Pipe-Namen für Log und Debug...