[VB] Ticketprinter aansturen

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Ik heb een Starmatrix SP200 Ticket printer
en ik moet in Visual Basic een applicatie maken die hiermee moet printen.
Ik heb de printer op mijn serieele poort aangesloten COM1, en de driver geinstalleerd.
Ik heb op 2 manieren geprobeert leven in het ding te blazen echter zonder succes.

De eerste manier was via het MSComm object. Ik heb alles op default laten staan en de volgende code uitgevoert:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Dim init As String
Dim cr As String
init = Chr(27) & Chr(64)
cr = Chr(10)

MSC.PortOpen = True
MSC.Output = init
MSC.Output = Text1.Text
MSC.Output = cr
MSC.PortOpen = False

MsgBox "Send done"

Dit werkte niet de printer doet gewoon NIKS.

Dan probeerde ik het met dit :
code:
1
2
Printer.Print "Hello"
Printer.EndDoc

Waarbij de SP200 als default printer in de Map printers staat. Ook noppes.

Het papier zit goed en er is inkt, want als je hem aanzet print hij rijen vraagtekentjes tot ik de pc aanzet.

Dit is geen makkelijk vraag, op google heb ik dingen gevonden maar deze werken niet, en op de tweaker search stond enkel iets over parallel.

edit:

Heb net getest, Windows applicaties kunnen ook niet printen.

  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

Ik heb met twee soorten printers gewerkt en beide hadden een
STX en ETX markering nodig.
En is een CR niet Chr(13)?

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Ik denk dat er dan wat anders fout zit, als je een "normale" printer als default printer zet, wat gebeurt er dan? En als je vanuit Word ofzo naar de ticketprinter (= standaardprinter) print?

In principe maakt het voor VB niet uit wat voor object een Printer is, hij stuurt het gewoon naar het standaard Windows object DefaultPrinter en hopla. Dus probeer ff een andere (standaard)printer via Printer aan te sturen in VB of print ff vanuit Word naar de ticketprinter...

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
De printer reageert totaal niet als er iets gestuurd wordt.
Dito als ik hem op mijn paralelle poort aansluit dmv een female-male-female kabel.
Wat zijn STX ETX ?

  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

Stx = Start of string-commando,
Etx = End of string-commando.

Toevallig was dat in mijn geval voor beide soorten printers

Stx = Chr(2)
Etx = Chr(3)

(Dit garandeert natuurlijk niet dat dit voor jouw ticketprinter ook het geval is)

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Dus ook niet vanuit Notepad of Word of een Testpagina?
Dan is er iets fout met:
- printer
- kabel
- poort
- driver
en moet je dus proberen uit te vinden welke van de vier!

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Op maandag 03 december 2001 15:58 schreef limoentje het volgende:
- printer > NIET hij kan een testpagina afdrukken
- kabel > NIET dit is wat ingewikkelder : ik heb dus zo'n paralelle verdeeldoos voor me printer en m'n scanner.
De kabel van mijn mobo naar die doos is male aan de kant van de printer. De kabel van de printer eindigt op female en m'n mobo ook daarom heb ik die kabel ertussen zitten. Maar al die kabels werken want ik kan scannen en printen op m'n gewone printer.
- poort > Hoe test ik dit ?
- driver > Is de driver die ik down ge load heb, maar heb je die wel nodig als je rechtreeks naar de seriele/paralelle poort gaat schrijven.
En die chr(2) en 3 hmoet ik gewoon een chr(2) sturen voor ik begin te printen en chr(3) als ik stop ?

  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

Om 1 volledige lijn te printen, gebruikte ik

Chr(2)&String&Chr(3)

Heb je btw geen Printer-language-reference-guide-achtig dingetje gekregen?
Kijk anders eens of de supportsectie van de fabrikant ofzo?
En check natuurlijk ook je hardware, zoals hierboven ook opgemerkt werd.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23:59
1 Kabel (null-modem of modem kabel)
2 Baudrate
3 een van de twee bovenste...

[vraag]
Heb je een serieel model of een parallel geval? Je kunt niet diezelfde kabel gebruiken voor beide namelijk.

Zoals gezegd, voor het serieele model heb je een nullmodem kabel nodig.

[edit]
Heb even gechecked op http://foxfireinc.com/manuals.html

Er staat daar wat beschreven over de SP200F series printer. Ik kan daar uit halen dat je een nullmodem kabel nodig hebt, en verder staat er in een van de manuals ook een overzicht van escape codes. suc6.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Owkeyz ik zal even terug verduidelijken want ik ben aan het leuteren geweest .

Ik heb een Star SP200 Matrix Ticket printer.
Als ik de selftest laat uitvoeren print hij dit :
COMMAND MODE : STAR
CONTROL CODE CR : INVALID
International Character set : USA
Data transmission Rate : 9600BPS
Data Bit Lenght : 8BIT
Parity Check : NONE PARITY

Ik heb volgende kabelapparatuur :

1x Printer -> Female parallel
1x Kabel : Parallel Male -> Serial Female
1x Kable : Parallel Male -> Parallel Male

1xpc met 2x COM poort (MALE)& 1 x Parallel poort (FEMALE)

dus dankzij die paralel -> serial kabel zou ik hem op mijn COM poort kunnen zetten.
Rechtreeks op printer poort kan niet omdat Female:Female.
Maar dankzij mijn Male:Male kabel kan dit weer wel, maar mag dit ook ?

Dus, wat moet ik nu doen ?

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Ik heb net een bestand gemaakt in linux dat ziet er zo uit :
0x1b 0x40 0x02 <Boodschap> 0x0A 0x03

De eerste 2 zijn voor het initialiseren v/d printer (staat in hadnleiding, op de site die hierboven gepost werd) en de 0x02 is dan STX, de 0x0A is een linefeed en 0x03 is de ETX.

Ik heb gecat naar ttyS0 en 1 maar noppes, 2 en 3 gaven een input output error
code:
1
2
cat ./f > /dev/ttyS0
cat ./f > /dev/ttyS1

Ik ben ten einde raad nu :)

[EDIT]
Ik bedenk zonet, dat dat helemaal geen parallel printer is, maar gewoon een serieele, en dat dat tussen stukje gewoon groot serieel naar klein serieel is !!!
Dus al mijn geknoei met parallele poorten was zeer dom.
Echter dat verklaart het falen op de serieele poort niet.
Nu op mijn 486 met linux heb ik zo'n grote serieel poort, ik heb het daar op aangesloten en opnieuwe gecat maar ook noppes.
Nu weet ik niet of ttySx wel die poort is ?
Heb ze weer alle 4 geprobeert maar noppes.
Weet iemand soms wat de dev name van een grote serieel poort onder linuxkernel 2.0 is?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23:59
Ben blij dat je erachter bent dat je geen parallele kabel hebt, maar een serieele maar 25p sub-d connector. :)

De vraag is nu, heb je een modem kabel of een null-modem kabel.

Een null-modem kabel heeft (bij 25p/25p of 9p/9p) een kruising in de aders op pin 2/3 (receive en send pinnen).

Als je een 25p/9p of 9p/25p kabel hebt, moet die kruising er juist niet inzitten, omdat de 9 en 25 pins sub-d op de poort de send en receive pinnen hebben omgedraaid.
( Snap je het nog? :) )

Dus, als je die connector kunt losdraaien kun je controleren of 2-2 en 3-3, wat je nodig hebt bij een 9p naar 25p.

Ook kun je dit controleren door een kabel te pakken en die tussen COM1 en COM2 te lussen. Vervolgens kun je met hyperterminal oid controleren of dat wat je op COM1 vertstuurt, op COM2 binnenkomt.

Ik ben er redelijk van overtuigd dat je de verkeerde kabel hebt.

[edit]
COM1: == ttyS0
COM2: == ttyS1

[edit2]
Sluit de kabel aan tussen COM1 van je 'nieuwe PC', en de 'grote' poort van je 486.

Verstuur vanaf de 'nieuwe PC' een string met hyperterminal en kijk of er wat binnenkomt op ttyS0 of ttyS1 op de linuxbak.

Hiervoor kun je een willekeurig terminal programma gebruiken, die zijn er _zat_ voor linux

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Hmmz, de hardware is volgens mij in orde want het werkte perfect met bestaande pc & kabels.
Ik heb gewoon een Euro compatibel programma gemaakt en nu moet ik de printer laten werken. Dus heb ik printer met kabels gekregen en die moet ik nu laten printen.
Maar zelfs op cat /dev/urandom > /dev/ttyS0/1 reageert het niet :(

Ik snap niet wat ik fout doe ...

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23:59
Denk je er wel aan om de poort op 9600,N,8,1,N in te stellen?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Op maandag 03 december 2001 20:18 schreef farlane het volgende:

[edit2]
Sluit de kabel aan tussen COM1 van je 'nieuwe PC', en de 'grote' poort van je 486.

Verstuur vanaf de 'nieuwe PC' een string met hyperterminal en kijk of er wat binnenkomt op ttyS0 of ttyS1 op de linuxbak.

Hiervoor kun je een willekeurig terminal programma gebruiken, die zijn er _zat_ voor linux
Dit gaat niet

Mijn tussen kabel is male groot serieel en female klein serieel. Dus... past niet op de male groot serieel poort van me 486.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23:59
Aha, dan wordt mijn vermoeden nog sterker, je hebt volgens mij een modemkabel. nullmodem kabels hebben iha 2x female pluggen (beide voor achterin een PC namelijk)

Er zijn wel 25/9 pens male/female omzetters, maar je kunt beter een goede nullmodemkabel kopen.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1