Låsa baudrate på applikation i Win textmode
Låsa baudrate på applikation i Win textmode
Jag har en applikation i Win text mode som pratar serieport. Applikationen har bara stöd för baudrate upp till 19200 och jag kan inte ändra på detta, medan andra ändan kan klara av mycket högre. Finns det något sätt att lura applikationen? Typ t.ex att på något sätt låsa baudraten till en viss hastighet på porten innan applikationen startas och på det viset få en högre hastighet.
Alternativt köra den virtuellt med comporten utmappad till en fysisk port och där ha möjlighet att låsa baudraten. VitualBox som jag kör, verkar inte ha den möjligheten rakt av i inställningarna iallafall.
Någon som har några idéer?
Alternativt köra den virtuellt med comporten utmappad till en fysisk port och där ha möjlighet att låsa baudraten. VitualBox som jag kör, verkar inte ha den möjligheten rakt av i inställningarna iallafall.
Någon som har några idéer?
Re: Låsa baudrate på applikation i Win textmode
Antingen så har applikationer anrop internt för att sätta
COM porten, och då blir det det applikationen vill att det ska vara.
Eller så sätter man COM porten innan applikationen startas, och då
skulle man kunna sätta den till vad man vill innan.
Fixa applikationen, eller se till att den andra sidan kör en kompatibel hastighet.
COM porten, och då blir det det applikationen vill att det ska vara.
Eller så sätter man COM porten innan applikationen startas, och då
skulle man kunna sätta den till vad man vill innan.
Fixa applikationen, eller se till att den andra sidan kör en kompatibel hastighet.
Re: Låsa baudrate på applikation i Win textmode
Troligen för svårt men du kanske kan använda en hexeditor för att hitta och ändra baudrate i filen.
Re: Låsa baudrate på applikation i Win textmode
Du får nog hacka programmet. Vilket program är det?
Sök i exe-filen efter 00 4b 00 00 (19200) och byt ut till tex 00 C2 01 00 (115200 bps)
Sök i exe-filen efter 00 4b 00 00 (19200) och byt ut till tex 00 C2 01 00 (115200 bps)
Re: Låsa baudrate på applikation i Win textmode
Fixa applikationen kan jag inte göra eftersom den inte är min. Och företaget som gjorde den finns inte mer.
Den ställer säkert baudraten inifrån applikationen eftersom den har möjlighet att köra olika baudrate. Dock max 19200. Jag vill köra högre hastighet och andra änden fixar det utan problem.
Programmet är ett Win32 text mode program så det använder säkert Win API-anrop för att ställa baudrate, och då tror jag inte fuskisvarianter med att leta byte funkar. Jag gissar att det var för att modifiera en DOS-sättning av baudraten.
Hade det varit ett DOS-program så kunde man gjort ett TSR-program som låg i bakgrunden och kollade att baudraten var den rätta (min höga baudrate) och i annat fall ställa om den till det.
Finns det något sätt att "gå in" utifrån på en använd COM-port, under Win32, och ställa om baudraten, typ som ett TSR-program skulle göra? Det finns ju en massa hooks och dylikt för att göra intrikata saker med en port i användning.
Den ställer säkert baudraten inifrån applikationen eftersom den har möjlighet att köra olika baudrate. Dock max 19200. Jag vill köra högre hastighet och andra änden fixar det utan problem.
Programmet är ett Win32 text mode program så det använder säkert Win API-anrop för att ställa baudrate, och då tror jag inte fuskisvarianter med att leta byte funkar. Jag gissar att det var för att modifiera en DOS-sättning av baudraten.
Hade det varit ett DOS-program så kunde man gjort ett TSR-program som låg i bakgrunden och kollade att baudraten var den rätta (min höga baudrate) och i annat fall ställa om den till det.
Finns det något sätt att "gå in" utifrån på en använd COM-port, under Win32, och ställa om baudraten, typ som ett TSR-program skulle göra? Det finns ju en massa hooks och dylikt för att göra intrikata saker med en port i användning.
Re: Låsa baudrate på applikation i Win textmode
Alternativen som jag ser det :
- Kör 19200 och var glad.
- Skaffa ett annat/nyare program som gör samma sak.
- Kör 19200 och var glad.
- Skaffa ett annat/nyare program som gör samma sak.
Re: Låsa baudrate på applikation i Win textmode
Jag har lite samma problem, använder dock ftdi serieports chip i egen hårdvara.
Funderade på om det gick att göra en egen drivrutin till den som alltid skickar samma baudrate till chipet oberoende av vad ev program egentligen vill sätta.
Funderade på om det gick att göra en egen drivrutin till den som alltid skickar samma baudrate till chipet oberoende av vad ev program egentligen vill sätta.
Re: Låsa baudrate på applikation i Win textmode
Jo, det är ju dom uppenbara alternativen. Men tanken slog mig att om det skulle vara möjligt att låsa baudraten innan applikationen startar, så skulle det kunna lösa problemet. Och hittar man bara en virtuell miljö som supportar det så skulle det vara biff. Eller som sagt TSR-varianten eller något liknande.
Det är fullt möjligt att jag måste leva med dom befintliga alternativen, men jag vill ändå utforska möjligheten till en lösning.
Det är fullt möjligt att jag måste leva med dom befintliga alternativen, men jag vill ändå utforska möjligheten till en lösning.
Re: Låsa baudrate på applikation i Win textmode
AndLi> Jo det skulle ju kunna vara en lösning för mig också om du hittar något.
Re: Låsa baudrate på applikation i Win textmode
Klart som sjutton det går att patcha. Det är ofta enklare än man tror.
Men, men, orkar du inte ens försöka så får du väl leva med det program du har eller fixa något annat prog.
Men, men, orkar du inte ens försöka så får du väl leva med det program du har eller fixa något annat prog.
Re: Låsa baudrate på applikation i Win textmode
frågan är väl om man lyckas fula upp hastigheten på porten, kommer programmet i fråga att skicka ut data snabbare ?
Känns lite som att sätta på en hastighetsmätare som går till 320km/h på sin gamla VW bubbla.. kommer den att gå i 320 då ?
Känns lite som att sätta på en hastighetsmätare som går till 320km/h på sin gamla VW bubbla.. kommer den att gå i 320 då ?

Re: Låsa baudrate på applikation i Win textmode
glenn: det beror ju helt på programmet, jag har gjort ett liknande hack på en ethernet/ serieports enhet och där matar det PC programmet glatt på så fort det får svar/är klar med utsändningen. Så oftast ska det inte vara några problem.
Re: Låsa baudrate på applikation i Win textmode
Där håller jag inte med, Glenn! Det är ju själva inställningen på UART:en, eller drivrutinen, som du ändrar. Jag skulle mer likna det vid att ändra inställningen på farthållaren och sedan kommer bilen att gå så fort. Så där ser jag inte några problem egentligen.
Re: Låsa baudrate på applikation i Win textmode
Men bara för att porten är låst på en annan hastighet pratar ju inte applikationen så fort.
Ska man dra fordonsjämförelsen ett steg till så går inte moppen fortare för att man kör på 70-väg istället för 50-väg
..Dock beror det ju helt på hur applikationen är skriven..
Ska man dra fordonsjämförelsen ett steg till så går inte moppen fortare för att man kör på 70-väg istället för 50-väg

..Dock beror det ju helt på hur applikationen är skriven..
Re: Låsa baudrate på applikation i Win textmode
Som du säger, det beror på hur applikationen är skriven, men det skulle vara mycket ovanligt och märkligt om applikationen själv försöker upprätthålla en viss datatakt. Det normala är ju att ett program antingen ligger och väntar på input från användaren, eller på att data anländer eller blivit sänt på kommunikationsporten. Dvs, överföringshastigheten kommer att bero av portens konfigurering.
Angående patchning av applikationen. Om det är en äkta Win32 applikation borde det vara möjligt att hitta anropen (i exefilen) till Win32 systemanropen som initierar och ställer in hastigheten. Säkert en del jobb och research om man inte gjort det tidigare, men det går absolut.
Angående patchning av applikationen. Om det är en äkta Win32 applikation borde det vara möjligt att hitta anropen (i exefilen) till Win32 systemanropen som initierar och ställer in hastigheten. Säkert en del jobb och research om man inte gjort det tidigare, men det går absolut.