|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
msmiha Član
Pridružen-a: Sob 26 Feb 2005 16:48 Prispevkov: 115 Aktiv.: 0.52 Kraj: Slovenske Konjice
|
Objavljeno: Sre Feb 10, 2010 7:59 pm Naslov sporočila: Termični tiskalnik TUP400 |
|
|
Ne vem točno kam bi tole temo postavil, ker se dotika bolj programiranja, gre pa za periferijo. Skratka, zanima me če se je kdo že ukvarjal z TUP 452ZD proizvajalca Star Micronics. Gre se za termični tiskalnik, ki ima v mojem primeru nameščen RS232 interface. Iz njihove strani sem si potegnil Programmer's manual in se lotil programiranja. Sicer sem se zadeve lotil v Visual C# zaradi lažjega debugiranja, vendar imam namen printer povezati z mikrokontrolerjem, natančneje PICem. Problem je, da nekatere komande ne primejo. Tako mi nikakor ne uspe nastaviti character string formata, (izbiranja pozicije in formata črk) ne deluje pa tudi rezalnik. Tekst, ki ga vnesem se sicer natisne, vendar se poleg njega natisne tudi tekst, ki bi naj nastavil character string forma in tisti, ki bi naj vklopil rezalnik... Dogajanje na serijskem portu sem nadzoroval s serial port monitorjem in ugotovil, da se vsi biti prenašajo tako kot bi se mogli. Sekvenca programa si sledi v naslednjem zaporedju:
1. Clear format
2. Define print area
3. Define character string format
4. Enable Cutter
5. Set character string data
6. Print label
Ima kdo karšen koli predlog kaj bi lahko bilo narobe? Če kdo želi lahko prilepim tudi dele kode. _________________ Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem! |
|
Nazaj na vrh |
|
|
gregoral Član
Pridružen-a: Pet 24 Nov 2006 9:42 Prispevkov: 688 Aktiv.: 3.25 Kraj: Ljubljana
|
Objavljeno: Čet Feb 11, 2010 4:47 pm Naslov sporočila: TUP 452 |
|
|
Pozdravljen,
pred leti sem delal z TUP 482 printerjem (širina papirja 80mm, namesto 50mm).
Luštna zadeva z veliko zalogo papirja.
Problem je lahko v tem da so stringi v C# zapisani kot unicode, medtem ko tiskalnik potrebuje ascii znake.
Trenutno imam le spisek ukazov ki so mi bili pomembni:
Clear Format
<ESC> C <LF> <NUL>
Define Print Area
<ESC> D n1234 <LF> <NUL>
primer: <ESC>D1000<LF><NUL>
Print Label
<ESC> I <LF> <NUL>
Set Feed Length after Printing
<ESC> T d n1n2 <LF> <NUL>
primer: <ESC>T+50<LF><NUL>
Define cut position and enable cutter
<ESC> B d n1n2 <LF> <NUL>
primer: <ESC>T+50<LF><NUL>
Define character string format:
<ESC> PC n1n2; x1234, y1234, w, h, c, r1r2, d1d2 <LF> <NUL>
<ESC> PC n1n2; x1234, y1234, w, h, c, r1r2 <LF> <NUL>
w,h = width & height magnification
c = char type (1=small, 2=std, 3=reserved, 4=bold, 5=OCR)
r1 = char rotation, r2 = string rotation
d1d2 = char spacing (00 to 63) (if d1d2 is left out -> EscY setting value is used)
Set memory switch
<ESC> #N, n1234 <LF> <NUL>
primer: <ESC>#1,1050<LF><NUL>
Reset Printer
<ESC> ? <LF> <NUL>
Request status
<EOT>
<SOH><STX>??,??<ETX><EOT><CR><LF>
Select international character set (temporary, until reset)
<ESC> N n1n2 <LF> <NUL>
<NUL>=0x00, <SOH>=0x01, <STX>=0x02, <ETX>=0x03, <EOT>=0x04, <ENQ>=0x05, <LF>=0x0A, <CR>=0x0D, <ESC>=0x1B
Upam da ti to kaj pomaga,
ker je že precej časa od tega ti več trenutno ne morem svetovati.
LP, Gregor |
|
Nazaj na vrh |
|
|
msmiha Član
Pridružen-a: Sob 26 Feb 2005 16:48 Prispevkov: 115 Aktiv.: 0.52 Kraj: Slovenske Konjice
|
Objavljeno: Čet Feb 11, 2010 6:50 pm Naslov sporočila: |
|
|
Hvala za pomoč, vendar napaka ni v kodiranju, ker ASCII znake pretvorim v hexadecimalno kodo že v samem prevajalnku. Moja funkcija zgleda nekako takole:
Koda: |
void set_char_str(byte[] n, byte[] a)
{
//1B 52 43 n1n2 3B a1a2.…an 0A 00
byte[] tx_data = new byte[8+a.Length];
int a_dolz;
int i = 0;
a_dolz = a.Length;
tx_data[0] = 0x1B;
tx_data[1] = 0x52;
tx_data[2] = 0x43;
for (i = 3; i < 5; i++)
{
tx_data[i] = n[i-3];
}
tx_data[5] = 0x3B;
for (i = 6; i < (a_dolz+6); i++)
{
tx_data[i] = a[i-6];
}
tx_data[i] = 0x0A;
i++;
tx_data[i] = 0x00;
i++;
serialPort1.Write(tx_data, 0, i);
}
|
Študiral sem da bi mogoče znal biti problem, ker pošiljam sproti podatke na RS232. Bom probal vse skupaj zbrat v eno veliko polje in potem vse na enkrat poslat. Drugje več ne vidim v čem bi lahko bila težava. _________________ Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem! |
|
Nazaj na vrh |
|
|
msmiha Član
Pridružen-a: Sob 26 Feb 2005 16:48 Prispevkov: 115 Aktiv.: 0.52 Kraj: Slovenske Konjice
|
Objavljeno: Pet Feb 12, 2010 11:27 am Naslov sporočila: |
|
|
Sem ugotovil v katerem grmu tiči zajec. Memory switch sem imel nastavljen na LINE MODE, med tem ko sem jaz poskušal printat v PAGE MODE.... _________________ Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem! |
|
Nazaj na vrh |
|
|
sodrgerg Član
Pridružen-a: Čet 20 Avg 2009 14:16 Prispevkov: 61 Aktiv.: 0.34 Kraj: Ljubljana
|
Objavljeno: Pet Jun 14, 2013 1:51 pm Naslov sporočila: TUP - 400 |
|
|
Tudi jaz imam isti problem, natisne samo text. Tudi komande natisne kot text!? Poskušal sem v line modu in v page modu.
Uporabljam razvojno ploščo od Mikroelektronike z pic 16F877A in MicroBasicPro.
Program pa zgleda nekako tako:
Koda: |
If PORTD.0 = 1 Then
PORTC.5 = 1
UART1_Write(ESC)
UART1_Write(14) ' dvvojni font po visini
UART1_Write(14) ' dvojni font po sirini
UART1_Write_Text("TEXT 1")
UART1_Write(LF) ' Line Feed
UART1_Write(NUL)
UART1_Write(ESC) '
UART1_Write(20) '
UART1_Write(20) 'reset font hight width
UART1_Write_Text("TEXT 2")
UART1_Write(LF)
UART1_Write(LF) ' Line Feed
UART1_Write(NUL)
UART1_Write(13)
'************************************************************
'bar code
UART1_Write(ESC)
UART1_Write(NAR)
UART1_Write_Text("b;1,1,1,A,ABC12345678") 'bar code
UART1_Write(30)
UART1_Write(LF)
UART1_Write(NUL)
'************************************************************
' **********************************************************
UART1_Write(ESC) 'NOZ
UART1_Write(100) 'NOZ
UART1_Write(48) 'NOZ
' ***********************************************************
DELAY_MS(1000)
else
PORTC.5 = 0
end if
|
Natisne samo Text 1 in Text 2 brez barcode.
Hvala za kakršen koli nasvet. _________________ To, kar vemo, je kapljica; to, česar ne vemo, je morje.(Isaac Newton) |
|
Nazaj na vrh |
|
|
sodrgerg Član
Pridružen-a: Čet 20 Avg 2009 14:16 Prispevkov: 61 Aktiv.: 0.34 Kraj: Ljubljana
|
Objavljeno: Sob Jun 15, 2013 8:46 am Naslov sporočila: |
|
|
Ja tistih narekovajev in vejc ni v komandi, pol pa dela... _________________ To, kar vemo, je kapljica; to, česar ne vemo, je morje.(Isaac Newton) |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 73 dni
Powered by phpBB © 2001, 2005 phpBB Group
|