一目惚れさらに スケッチ忘備録
連投です。
AS-289Rのコマンドの部分を忘れそうなので、忘備録代わりに! ナダ電子さんに、教えて頂いた後は、スムーズ行きました。 基本は、ArduinoのSerial.write()で、バイト配列で送れば、OK 全部のコマンドを試してないけど、文字サイズの変更(伝言メモに使った)縦n倍横n倍と、文字のドット数変更、印字位置指定、バーコード印刷は、各種のバーコードで、印刷してバーコードスキャナで、読み込み出来ました。 このプリンター結構使えます、しかも簡単に! ですが、結構コマンドの配列作るの面倒なので、ライブラリー化しちゃおうかなぁーと思っておます。 縦n倍横n倍のコマンドは、こんな感じです(ナダ電子さんに頂いたまんまですが) byte fse2[] = {0x1C,0x65,0x32,0x32}; byte fse1[] = {0x1C,0x65,0x32,0x31}; byte fse0[] = {0x1C,0x65,0x31,0x31}; fse2が縦2倍横2倍 fse1が縦2倍横1倍 fse0が縦1倍横1倍 あと、スケッチは消しちゃったけど、漢字フォントのドット数変更は、こんな感じ byte dc2s16[] = {0x12,0x53,0x31}; byte dc2s24[] = {0x12,0x53,0x30}; 「伝言メモプリンター」のスケッチは、これ コマンドは、一度「縦1横1」を送った後に、希望する「縦n横n」のコマンドを送る(コマンドリファレンスに書いてありました。) byte fse2[] = {0x1C,0x65,0x32,0x32}; byte fse1[] = {0x1C,0x65,0x32,0x31}; byte fse0[] = {0x1C,0x65,0x31,0x31}; byte escCrean[] = {0x1B,0x40}; byte dc2s16[] = {0x12,0x53,0x31}; byte dc2s24[] = {0x12,0x53,0x30}; void setup() { Serial.begin(9600); Serial.write(escCrean,2); } void loop() { char buf[1000]; int cont = 0; do { if(Serial.available()) { buf[cont] = Serial.read(); cont++; } if(cont > 1000) { break; } }while(buf[cont - 1] != 0x0D); buf[cont] = '\0'; //Serial.println(sizeof(buf)); //Serial.println(cont); } void printMessage(char str[]){ char *atena, *yoken, *hiduke, *jibun; atena = strtok(str, ","); yoken = strtok(NULL, ","); hiduke = strtok(NULL, ","); jibun = strtok(NULL, ","); //受信文字列の判定は、してません。 //送信側のソフトで、取り敢えずやってますので、手抜きです。 //本当は、シリアル通信で、データを貰うので、データの補完とか、しないと不味いけど、自分用なので割愛 //あとは、charじゃなくてbyteの方が、良いかもchar符号付なので、途中で反転するかも? Serial.write(fse0,4);//ここで縦1横1コマンド送信 Serial.write(fse1,4);//縦2横1コマンド送信 Serial.print('\r'); Serial.print(atena); Serial.print('\r'); Serial.print('\r'); Serial.write(fse0,4);//縦1横1コマンド送信 Serial.print("*****************************"); Serial.print('\r'); //Serial.print('\r'); Serial.write(fse1,4);//縦2横1コマンド送信 Serial.print(yoken); Serial.print('\r'); Serial.print('\r'); Serial.write(fse0,4); Serial.print("*****************************"); Serial.print('\r'); Serial.print('\r'); //Serial.write(fse1,4);//縦2横1コマンド送信 Serial.print(hiduke); Serial.print(jibun); Serial.print('\r'); Serial.print('\r'); Serial.print('\r'); Serial.print('\r'); Serial.print('\r'); Serial.print('\r'); Serial.print('\r'); Serial.print('\r'); Serial.print('\r'); Serial.print('\r'); } とりあえず、動いてますが、使う方は自己責任で、お願いしますm(_ _)m macからのデータは、宛名,伝言,日付,自分の名前のカンマくぎりで、最後に'\r'を送ってます。 文字数制限は、無いけどcharの配列1000なので、多分1000byteまではいけるはず。 後は、作ったソフト以外からも、上のデータのパターンで、送れば印刷出来ます。 改行が、結構醜いので、次はスマートに、行間量の指定で、やって見ようかなと、思っています。 objective-c方は、すんごい怪しいので、後程。 最後に、丁寧に応対して下さった。 ナダ電子さんに、感謝です。
by wagtail_co
| 2014-03-06 00:06
| 電子工作?
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
ファン申請 |
||