Portál AbcLinuxu, 8. listopadu 2025 22:02
| Podpora: | kompletní |
| Ovladač: | v jádře |
Vysel jsem z techto stranek (jen jsem upravil kabel): http://www.simandl.cz/stranky/elektro/colorgraf/colorgraf.htm
Snad kompatibilni s plotrem ROLAND DXY-1200/1300
Prehled prikazu HP-GL (Colorgraf nemusi byt plne kompatibilni):
http://lprng.sourceforge.net/DISTRIB/RESOURCES/HPGL_short_summary.html
http://en.wikipedia.org/wiki/HPGL
Colorgraf DIN 5pin --- PC CANNON 9pin
1 TxD -----------------> 2 RxD
2 GND ------------------ 5 GND
3 RxD <----------------- 3 TxD
4 DTR -------------+---> 8 CTS (DSR a CTS spojeny)
+---> 6 DSR
----> 1 CD nezapojen, pripadne spojen s DSR anebo DTR
----> 9 RI nezapojen
<------------- 7 RTS nezapojen
<------------- 4 DTR nezapojen
stineni ---------------- stineni
Kabel je upraven tak, ze se signal DTR z ploteru privadi na signal CTS v PC, pak muzeme v Linux povolit RTS/CTS rizeni toku dat.
Za predpokladu, ze Colorgraf je pripojen na COM1, nastavime prenosove parametry, 9600 7 E 2, dva stopbity seriovy prenos nepatrne pribrzdi:
#stty -F /dev/ttyS0 9600 evenp cstopb crtscts clocal #stty -F /dev/ttyS0 -aPosledni prikaz vypise nastaveni portu, pro kontrolu. A muzeme poslat prvni prikazy:
Shelovy skript aritma_test.sh nakresli testovaci obrazek (netestovano prakticky!):
#!/bin/sh
# aritma_test.sh : generuje HP-GL prikazy pro testovaci kresbu
SIZE=1000
MAX=20
STEP=2
echo "SP 1;" # uchop pero
for I in $(seq 0 $STEP $MAX); do
for J in $(seq 0 $STEP $MAX); do
# PU X,Y; lze prepsat jako PU; PA X,Y;
echo "PU $(expr $I \* $SIZE),0;"
echo "PD $(expr $J \* $SIZE),$(expr $MAX \* $SIZE);"
done
done
echo "SP;" # odloz pero
# sh aritma_test.sh >/dev/ttyS0
# anebo
# sh aritma_test.sh >aritma_test.plt; cat aritma_test.plt >/dev/ttyS0
# anebo zobrazit na obrazovce
# sh aritma_test.sh | hp2xx -
Tento skript vypisuje kolik procent souboru odeslano, ma jednoduche menu pro vyber souboru k poslani, v menu vypisuje soubory z adresare ve kterem byl spusten. To se hodi pri kresleni plosnaku, kdy mam oddelene HPGL soubory cesty, rozmery a rozmisteni soucastek.
#!/bin/bash
#vypis adresare, pouze soubory
declare -a FILES
#declare i
i=1
var=0
SERIAL=/dev/ttyS0
#SERIAL=/dev/null
declare -a FILE
SHOW_PROC=0
INDEX=0
until [ "$var" = "$i" ]
do
#vymazeme pole
unset FILES[*]
#pridame do pole souboru obsah aktualniho adresare
for FILE in `ls -p | grep -v /`
do
# echo "Added $FILE to list."
FILES[${#FILES[*]}]=$FILE
done
#pridame ovladaci casti menu
FILES[${#FILES[*]}]="Nacti znovu."
FILES[${#FILES[*]}]="Konec."
#vytvorime si menu s vyberem souboru a akci
clear
echo -e "Vyberte akci nebo soubor k odeslani:\n"
for (( i=0; i<${#FILES[*]}; i++ ))
do
echo "[$i] ${FILES[$i]}"
done
echo -ne "\nZadejte vyber a potvrdte ENTER:"
read var
let i=i-1
let ii=i-1
if [ "$var" != "$i" ] && [ "$var" != "${ii}" ] && [ "$var" != "${iii}" ]
then
echo "Posilam soubor ${FILES[$var]} na port."
File=${FILES[$var]}
clear
echo "Zacali jsme `date`."
echo -e "Odesilam na $SERIAL.\n"
FILE=(`cat "$File"`)
MAX=${#FILE[@]}
let STEP=(100000 / MAX)
for ((LINE=0; LINE <= $MAX; LINE++))
do
echo ${FILE[$LINE]} > $SERIAL
let PROCENTS=STEP*LINE/1000
if [ $SHOW_PROC -eq 1 ]
then
echo -en "\r$LINE of $MAX - $PROCENTS %"
else
echo -en "\r$PROCENTS % hotovo."
fi
done
echo -e "\n\n`date` \nHotovo :) Stisknete lib. klavesu...\n"
read tmp
fi
done
exit 0
Dokument vytvořil: Petr Slansky, 22.2.2003 22:13 | Poslední úprava: ZmaTkar, 27.2.2011 15:08 | Další přispěvatelé: Petr Slansky | Historie změn | Zobrazeno: 5620×
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.