Tijd en datum toevoegen aan logfile
Moderator: Moderators
- TomAndKobus
- Donateur
- Berichten: 766
- Lid geworden op: 12 feb 2020 12:43
- Locatie: Gouda
- Contacteer:
Tijd en datum toevoegen aan logfile
Hallo allemaal,
Ik wil graag een logfile bijhouden van wat een macro doet. Ik kan inmiddels een logfile maken met bijvoorbeeld: LogFile "m_tool.txt" 1, dan wordt keurig de datum van het aanmaken in de file gezet vervolgens met LogMSG "....." komt er een regel in de logfile . Maar aanmaken van de file hoeft maar 1 keer. Daarna verander ik in de macro: LogFile "m_tool.txt" 0. Dan worden de nieuwe log regels toegevoegd. Wat ik nu handig zou vinden is dat voor elke log regel een tijd en datum wordt toegevoegd. Dan weet je wanneer wat is gebeurd. Kan dit?
Groeten, Tom.
Ik wil graag een logfile bijhouden van wat een macro doet. Ik kan inmiddels een logfile maken met bijvoorbeeld: LogFile "m_tool.txt" 1, dan wordt keurig de datum van het aanmaken in de file gezet vervolgens met LogMSG "....." komt er een regel in de logfile . Maar aanmaken van de file hoeft maar 1 keer. Daarna verander ik in de macro: LogFile "m_tool.txt" 0. Dan worden de nieuwe log regels toegevoegd. Wat ik nu handig zou vinden is dat voor elke log regel een tijd en datum wordt toegevoegd. Dan weet je wanneer wat is gebeurd. Kan dit?
Groeten, Tom.
- Arie Kabaalstra
- Donateur
- Berichten: 13530
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
Nee, nog niet, niet rechtstreeks in elk geval..
Kun je programmeren in C#?..
https://www.oosterhof-design.com/cncapi-netframework/
Ik heb dit stukje software ook gedownload, en daarmee kun je dat mogelijk wel voorelkaar krijgen..
Simpelste manier is om met dat Framework een kleine applicatie te maken die bijvoorbeeld de waarde van een bepaalde variabele in de gaten houdt met een timer.. , als je dan een LogMsg wilt wegschrijven, dan maak je een bepaalde parameter even "hoog".. en in je applicatie wordt dat afgevangen, en dan stel je gewoon een string samen met de tijd erin.. en dan schrijf je 't vanuit die applicatie weg in je logfile
Dat klinkt moeilijker dan het is.. je stelt de string samen, en dan programmeer je iets in de trant van "RunSingleLine ("logmsg\"Time is\" Time");
de precieze Syntax ken ik nog niet uit mijn hoofd.. maar iets in die trant moet het wel worden.
'k beloof nog niets.. maar ik kan wel eens kijken of ik een "Timestamper-Plugin" kan bouwen..lijkt me een leuk beginnersprojectje om C# te proggen..
Overigens.. 't is wel even zoeken.. maar ALLES.. staat sowieso in de EdingCNC Logfiles.. time and date!..
net even getest.. See?..
maar.. een "pluginnetje" die dat gewoon netjes in de Log gooit.. is eigenlijk ook een leuke..
Kun je programmeren in C#?..
https://www.oosterhof-design.com/cncapi-netframework/
Ik heb dit stukje software ook gedownload, en daarmee kun je dat mogelijk wel voorelkaar krijgen..
Simpelste manier is om met dat Framework een kleine applicatie te maken die bijvoorbeeld de waarde van een bepaalde variabele in de gaten houdt met een timer.. , als je dan een LogMsg wilt wegschrijven, dan maak je een bepaalde parameter even "hoog".. en in je applicatie wordt dat afgevangen, en dan stel je gewoon een string samen met de tijd erin.. en dan schrijf je 't vanuit die applicatie weg in je logfile
Dat klinkt moeilijker dan het is.. je stelt de string samen, en dan programmeer je iets in de trant van "RunSingleLine ("logmsg\"Time is\" Time");
de precieze Syntax ken ik nog niet uit mijn hoofd.. maar iets in die trant moet het wel worden.
'k beloof nog niets.. maar ik kan wel eens kijken of ik een "Timestamper-Plugin" kan bouwen..lijkt me een leuk beginnersprojectje om C# te proggen..
Overigens.. 't is wel even zoeken.. maar ALLES.. staat sowieso in de EdingCNC Logfiles.. time and date!..
Code: Selecteer alles
05-03 10:56:17->CNC_EC_INFO CNC_RC_OK SetMCAGuardON:CCncKins.cpp(1313):MCAGuard switched ON
05-03 10:56:17->CNC_EC_INFO CNC_RC_OK SetTCAGuardON:CCncKins.cpp(1283):TCAGuard switched OFF because settings are zero
05-03 10:56:17->CNC_EC_INFO CNC_RC_OK Msg:intdefcmd.cpp(35):home complete
05-03 10:56:53->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2659):Enter state =<READY>, line=<LOGFILE TESTX.TXT 1>
05-03 10:56:53->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2709):logfile testx.txt 1
05-03 10:56:53->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2928):Leave state=<RUNNING_LINE>
05-03 10:57:15->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2659):Enter state =<READY>, line=<LOGMSG "KLOOI">
05-03 10:57:15->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2709):logmsg "klooi"
05-03 10:57:15->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2928):Leave state=<RUNNING_LINE>
maar.. een "pluginnetje" die dat gewoon netjes in de Log gooit.. is eigenlijk ook een leuke..
- TomAndKobus
- Donateur
- Berichten: 766
- Lid geworden op: 12 feb 2020 12:43
- Locatie: Gouda
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
Bedankt Arie, ik ga dit uitproberen, je hoort nog wel of het is gelukt
- TomAndKobus
- Donateur
- Berichten: 766
- Lid geworden op: 12 feb 2020 12:43
- Locatie: Gouda
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
Hallo Arie, Dit is toch wat te moeilijk voor mij. Ik laat dit voorlopig rusten.
Maar wat ik geleerd heb met het maken met de logfiles, is dat je heel goed kan controleren en volgen wat er gebeurd in een macro. Als ik iets aanpas, of in de toekomst nieuw maak, dan kan ik alles volgen als ik veel log in een logfile. Goed om fouten op te sporen. En als alles werkt, dan haal je de log regels weer ut de macro.
Bedankt voor de hulp, Tom.
Maar wat ik geleerd heb met het maken met de logfiles, is dat je heel goed kan controleren en volgen wat er gebeurd in een macro. Als ik iets aanpas, of in de toekomst nieuw maak, dan kan ik alles volgen als ik veel log in een logfile. Goed om fouten op te sporen. En als alles werkt, dan haal je de log regels weer ut de macro.
Bedankt voor de hulp, Tom.
- Arie Kabaalstra
- Donateur
- Berichten: 13530
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
Dat was, voor zover ik begrepen heb, ook het doel van Logfiles, het ontikkelen, en debuggen van macro's..TomAndKobus schreef: ↑06 mar 2021 08:18 Hallo Arie, Dit is toch wat te moeilijk voor mij. Ik laat dit voorlopig rusten.
Maar wat ik geleerd heb met het maken met de logfiles, is dat je heel goed kan controleren en volgen wat er gebeurd in een macro. Als ik iets aanpas, of in de toekomst nieuw maak, dan kan ik alles volgen als ik veel log in een logfile. Goed om fouten op te sporen. En als alles werkt, dan haal je de log regels weer ut de macro.
Bedankt voor de hulp, Tom.
Dat ik er ook heel andere dingen mee doe, zoals NC bestanden aanmaken, of DXF's.. daar had Bert nooit aan gedacht.. (heeft ie me zelf toegegeven)..
Je kunt het ook toepassen als "Parts-counter".
Dan pak je gewoon een parameter, en die schrijf je weg naar de Logfile (overwrite), en aan het eind van je programma tel je er 1 bij op..,
Na een sessie kun je dan in die logfile kijken hoeveel parts er gemaakt zijn..
- TomAndKobus
- Donateur
- Berichten: 766
- Lid geworden op: 12 feb 2020 12:43
- Locatie: Gouda
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
Ook een grappige toepassing, dat snap ik dan weer wel
Re: Tijd en datum toevoegen aan logfile
Kan EdingCNC vanuit een makro een extern programma opstarten?
Want dan kan je een batch (naam.bat) bestand opstarten met dit erin:
Dat schrijft de tijd bij als laatste lijn in het bestand logfile.txt
Verander time door date en het schrijft de datum.
Want dan kan je een batch (naam.bat) bestand opstarten met dit erin:
Code: Selecteer alles
time /t > logfile.txt
Verander time door date en het schrijft de datum.
When it fits stop using the hammer.
- Arie Kabaalstra
- Donateur
- Berichten: 13530
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
Jazeker kan dat, met het commando Exec , ik heb dat in mijn Draai-macro ook gebruikt, ik heb een kopie van Notepad in mijn EdingCNC map gezet, en met Exec notepad.exe partprogram.nc kan ik mijn partprogram openen.Swake schreef: ↑06 mar 2021 18:17 Kan EdingCNC vanuit een makro een extern programma opstarten?
Want dan kan je een batch (naam.bat) bestand opstarten met dit erin:Dat schrijft de tijd bij als laatste lijn in het bestand logfile.txtCode: Selecteer alles
time /t > logfile.txt
Verander time door date en het schrijft de datum.
er loopt ook nog ergens een draadje waarbij scripts gemaakt met AutoIt worden aangeroepen.
Ja!.. net even getest..
Code: Selecteer alles
time/t >> logfile.txt
Waarbij aangetekend dient te worden dat:
> de file overschrijft (dat wil je niet)
>> de tekst toevoegt.. (dat wil je wel!)
"logfile.txt" de file is waar ie naartoe schrijft, daar zul je dus de filename in moeten zetten die je in je Logfile in EdingCNC opent (of.. je gebruikt in EdingCNC dezelfde naam als die in de Batchfile, dat maakt verder geen verschil.
Wel een goeie.. ik geef dit ook even door aan EdingCNC.
ik dacht weer eens veel te moeilijk.. we vergeten snel hoe krachtig DOS Batch ook al weer was.. terwijl ik er toch vroeger heel wat leuke dingen mee geschreven heb..
- TomAndKobus
- Donateur
- Berichten: 766
- Lid geworden op: 12 feb 2020 12:43
- Locatie: Gouda
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
Hier ga ik misschien wel uit komen. Bedankt, ik kom er nog op terug of het is gelukt.
- Arie Kabaalstra
- Donateur
- Berichten: 13530
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
TomAndKobus schreef: ↑06 mar 2021 19:52 Hier ga ik misschien wel uit komen. Bedankt, ik kom er nog op terug of het is gelukt.
Code: Selecteer alles
echo %time% >> logfile.txt
het is ook mogelijk om "elapsed time" te berekenen in Batch, maar dat vraagt wat meer code.. daarmee kun je in je log vastleggen hoe lang een bepaald programma loopt.. wat ik daarvoor moet doen. dat wordt nog een uitzoekerij..
- TomAndKobus
- Donateur
- Berichten: 766
- Lid geworden op: 12 feb 2020 12:43
- Locatie: Gouda
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
Bedankt Arie en Swake. Laat mij dit morgen eerst proberen. Als het mij lukt, dan den ik niet meer nodig te hebben. Jullie horen nog van me
Re: Tijd en datum toevoegen aan logfile
Goed gezien Arie van die seconden. Het was me niet opgevallen.
Het is dan wellicht ook mogelijk om variabelen/gegevens vanuit de makro mee te geven naar die batch file (uitlezen met %1 %2 %3 en aanverwante).
Krijg je vanuit de opgeroepen batch file ook iets naar Eding in diezelfde sessie terug gestuurd? Rechtstreeks, of via errorcodes of het inlezen van een ander tekstbestand.
Batch files zijn effectief zeer krachtig, het is wel een kunst op zich want een beetje eigenaardig programmeren. De laatste versies van Windows hebben nu ook PowerShell. Ongelooflijk krachtig (maar ik haat het want er is niets meer 'eenvoudig')
Notepad++ is een wereld van verschil met de standaard Notepad. Google het eens als je die nog niet kent.
Het is dan wellicht ook mogelijk om variabelen/gegevens vanuit de makro mee te geven naar die batch file (uitlezen met %1 %2 %3 en aanverwante).
Krijg je vanuit de opgeroepen batch file ook iets naar Eding in diezelfde sessie terug gestuurd? Rechtstreeks, of via errorcodes of het inlezen van een ander tekstbestand.
Batch files zijn effectief zeer krachtig, het is wel een kunst op zich want een beetje eigenaardig programmeren. De laatste versies van Windows hebben nu ook PowerShell. Ongelooflijk krachtig (maar ik haat het want er is niets meer 'eenvoudig')
Notepad++ is een wereld van verschil met de standaard Notepad. Google het eens als je die nog niet kent.
When it fits stop using the hammer.
- Arie Kabaalstra
- Donateur
- Berichten: 13530
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
ach.. wat heet eigenaardig programmeren.. moet je je eens verdiepen in "esoterische programmeertalen"hij van hierboven schreef:Batch files zijn effectief zeer krachtig, het is wel een kunst op zich want een beetje eigenaardig programmeren.
Code: Selecteer alles
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
Ik wist het ook niet.. maar Google is mijn beste vriend.. 't merendeel van wat ik weet van het programmeren in VB, en Alles wat ik weet van C#, alsmede veel van mijn kennis van VBA, komt rechtstreeks van Google.Goed gezien Arie van die seconden. Het was me niet opgevallen.
Hmm.. dat weet ik zo niet... 't is zo dat je, als je gegevens uit EdingCNC in een andere applicatie wilt gebruiken, je moet verbinden met CNCServer.exeHet is dan wellicht ook mogelijk om variabelen/gegevens vanuit de makro mee te geven naar die batch file (uitlezen met %1 %2 %3 en aanverwante).
in C# is dat niet moeilijk, maar dan moet je wel het .NET Framework hebben (maar die kun je zo downloaden), Bovenin je cs-files zet je dan "using OosterhofDesign" (het Framework)
en in de uitvoerende code (ik heb er een Forms application van gemaakt, dus staat ie bij mij in Form1_Load, zet je:
Code: Selecteer alles
private void Form1_Load(object sender, EventArgs e)
{
G_GetCncServer.ConnectServer("");
G_CommandsJobInterpreter.Reset();
G_CommandsJobInterpreter.RunSingleLine("msg\"sono pazzi questi romani\"");
timer1.Enabled = true;
}
Notepad++ is een wereld van verschil met de standaard Notepad. Google het eens als je die nog niet kent.
https://cnczone.nl/viewtopic.php?p=27574#p27574
van 11 jaar geleden!!!... zo lang gebruik ik het al.. minimaal..
- Arie Kabaalstra
- Donateur
- Berichten: 13530
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: Tijd en datum toevoegen aan logfile
Leuk dit...!
Gooi bovenstaande in een Batchfile, roep em op vanuit EdingCNC met "exec time.bat" en in je bestandje "test.txt" komt:
nou zit ik te denken.. als je nou een batchfile maakt.. "time.bat, en je zet de aanroep in een subroutines, met een M-code, dan kun je in je postprocessor (als je vanuit Cam werkt) de M-codes in je programma laten invoegen.. de ene aan het begin, en de andere aan het eind..
zet je daar dan ook nog "exec notepad.exe test.txt" in de macro voor de eindtijd.
Zoiets dus.. ik heb voor m555 gekozen.. omdat 't 555 IC een Timer-IC is.. (Uncle bumblefuck AKA AVE op Youtube noemt ze daarom een "Triple Nickel Timer"), geef't beestje maar een naam..
Code: Selecteer alles
echo Date: %date% >> test.txt
echo Time: %time% >> test.txt
te staan..Date: zo 07-03-2021
Time: 14:18:40,61
nou zit ik te denken.. als je nou een batchfile maakt.. "time.bat, en je zet de aanroep in een subroutines, met een M-code, dan kun je in je postprocessor (als je vanuit Cam werkt) de M-codes in je programma laten invoegen.. de ene aan het begin, en de andere aan het eind..
zet je daar dan ook nog "exec notepad.exe test.txt" in de macro voor de eindtijd.
Code: Selecteer alles
sub m555
logfile test.txt 0
logmsg "Starttime"
exec time.bat
endsub
sub m556
logmsg "Endtime"
exec time.bat
exec notepad.exe test.txt
endsub