24. september 2002 - 15:54Der er
32 kommentarer og 2 løsninger
Sende kode til serielport
Hej alle.
Jeg sidder med en lille opgave. Jeg skal åbne en pengeskuffe via en printer som sidder i serielporten. --Neden under ses lidt info fra producenter af printer-- "Program Example for all printers" PRINT #1, CHR$(&H1B);"p";CHR$(0);CHR$(25);CHR$(250);
[Format] ASCII= ESC p m t1 t2 Hex= 1B 70 m t1 t2 Decimal= 27 112 m t1 t2 [Range] m = 0, 1, 48, 49 0 ≤ t1 ≤ 255 0 ≤ t2 ≤ 255
Hvem kan hjælpe? Det er noget med at sende en kode fra en knap i en formular, hvor der er en kode til serielporten. Ellers skal jeg udskrive en rapport som ikke kommer fysisk ud.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Der findes noget kode til hvordan man skriver til en com-port - det skal bare lige hives ud af modem-sammenhængen. Måske kan det bruges. (jeg kunne godt gøre det, men har ikke tid nok lige p.t.)
Er der slet ikke nogle som kan hjælpe?? Jeg har fundet frem til at jeg skal sende en kode i decimal til com1 som er følgende "27 112 0 25 250" eller ASCII kode som er følgende ESC + P;0;24;250
Nu aner jeg jo ikke, hvad der var galt med mit første svar (udover at det selvfølgelig ikke var en færdig løsning), men her så en anden mulighed, som er et rent gæt fra min side. Hvad med at skrive koderne i en tekstfil og så kopiere tekstfilen til porten (det var måden vi gjorde det på, dengang der stadig var noget der hed DOS). :-)
Jo, men det kræver åbenbart et lille udsnit at det som jeg henviste til i mit afviste svar. Det vil selvfølgelig være den mest elegante løsning, men den kræver nok lidt mere tid end jeg har lige nu.
Hvis du vil forsøge med batchfilen, vil jeg anbefale dig først at lave batchfilen og så manuelt forsøge at kopiere den til COM porten - bare for at se om det virker. Hvis det ikke virker, er det forslag jo ikke anvendeligt.
Dette er hvad producenten mener at der skal bruges. Hvis koden er Decimal skal følgende sendes til printeren 27 112 0 24 250, kan dette lade sig gøre??
Hi Taio Try adding the MS COMM control to your formand re-name it to ComPort
Then try this code
omPort.CommPort = 2 ' Select Com2 ComPort.PortOpen = True ' Open the port (will fail if already in use) ' All further code will fail if port fails to open ComPort.Output = Chr(27) & Chr(112) & Chr(0) & Chr(24) & Chr(250) '27 112 0 24 250
Have you added the control and renamed the object? Place the code in the buttons On click event works here, although I dont have a printer on the port.
"Try adding the MS COMM control to your formand re-name it to ComPort"
Skal jeg lave en komandoknap og omdøbe den til comport?? derefter skal jeg skrive/kopier koden i under "ved klik" på komandoknappen. Har jeg gjort, kommer med en fejl.
in the tool box you will find Microsoft Communications Control, add one of these to your form and then re-name it to ComPort so that the example can work.
DLL'erne ligger i Windows\System32. I Visual Basic modulet i Access klik på Tools - References - Browse og de kommer frem. Er spændt på om i får det til at virke!
taio>It is also possible to do this using the win32 API but trying to fathom out what is neccessary is a mouth full, so I have asked my brother to put something together in C (DLL). Lets C what he comes up with!
Og endnu en kommentar. Langt oppe i teksten står com1, men i Terrys kode står =Com2. Måske er det slet i nødvendigt at kende porten, hvis det der skal printes fra er sat som Standardprinter. Og måske skal hele teksten, også [Format] og [Range] sendes til printeren.
Under Tools - Browse så jeg filen COMTL32.OCX. Gætter det er den der under Indsæt - AvtiveX hedder Microsoft Comm Control. Men det kunne være interessant med lidt flere detaljer om den Pengeskuffe. Hvordan er den f.eks.installeret?
Pengeskuffen er tilkoblet en bonprinter med RJ45 stik. Via printeren åbner skuffen når den rigtige frekvens sendes ud. Jeg kan godt få åbnet skuffen ved at printe og sende en Controlkode med printet. Det jeg ønsker er at åbne skuffen uden at printe. Håber at det er nok info. Printeren sidder på COM1
hi fynbohans>that code looks promising! I was thinking on those lines myslef, but didnt know if it was (and still dont) possible to open a printer in place of a file. I will have to try that, much easier than making a DLL.
Tak begge to, det som fynbohans har forslået, virker SQ. Mange tak for jeres hjælp.
Den glade Taio
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.