|
-
-
無線LAN/EthernetインターフェイスタイプのTMプリンターには、ブザーを鳴動させる機構を搭載しています。
(ただし、音量/音程については設定不可)
EPSON OPOS ADKにおける「ブザー鳴動」の方法は、以下の方法があります。
- UPOS 1.9版 以上に対応したEPSON OPOS ADK OLE版
- UPOS 1.8版 以下に対応したEPSON OPOS ADK OLE版
- EPSON OPOS ADK .NET版
EPSON OPOS ADK OLE版が準拠する「UPOS」および「APG」のバージョンについては こちら を参照してください。
- コマンドを連続して送信することでブザーを連続的に鳴動させることはできますが、完全な連続音ではなく、ピーッ,ピーッ,という断続的な鳴動となります。
- 1回のコマンドで 500ms 以上 510ms 以下のブザー鳴動を行って下さい。
- 1回のコマンドで 510ms を超えてブザーを連続して鳴動させることはできません。
- ブザー鳴動時にはプリンターがビジー状態となり、このタイミングでプリンターのステータスを確認すると、オフラインと判定されることがあります。
UPOS 1.9版 以上に対応したEPSON OPOS ADK OLE版 |
1. |
プリンターに搭載されたブザーを鳴動するには、プリンターのデバイスクラスを使用します。
ブザーを鳴動させたいタイミングで、PTR_DI_RING_BUZZER_WITH_TIME を定数として DirectIO メソッドを実行します。
定数 PTR_DI_RING_BUZZER_WITH_TIMEはUPOS 1.9版 以上に追加された機能で、EPSON OPOS ADK OLE版 Ver.2.50以上で対応しています。
次のような処理を実行することでブザーが鳴動します。
例)Visual C++ で行う場合
void CPrinterDlg::OnBtnBzr1()
{
// Include\EPSNPTR.h
// Ring Buzzer
// const long PTR_DI_RING_BUZZER_WITH_TIME = 1001;
long pData;
BSTR pString;
CString sRC;
CString sRCE;
pData = 500;
m_Ptr1.DirectIO( PTR_DI_RING_BUZZER_WITH_TIME, &pData, &pString );
if( m_Ptr1.GetResultCode() != OPOS_SUCCESS ) {
sRC.Format("%ld", m_Ptr1.GetResultCode());
sRCE.Format("%ld", m_Ptr1.GetResultCodeExtended());
MessageBox(
"Cannot use a POS Printer\nResultCode = " + sRC
+ "\nResultCodeExtended = " + sRCE );
return;
}
// Test printing
m_Ptr1.PrintNormal( PTR_S_RECEIPT, "DirectIO\n");
if( m_Ptr1.GetResultCode() != OPOS_SUCCESS ) {
sRC.Format("%ld", m_Ptr1.GetResultCode());
sRCE.Format("%ld", m_Ptr1.GetResultCodeExtended());
MessageBox(
"Cannot use a POS Printer\nResultCode = " + sRC
+ "\nResultCodeExtended = " + sRCE );
return;
}
}
|
|
UPOS 1.8版 以下に対応したEPSON OPOS ADK OLE版 |
2. |
プリンターに搭載されたブザーを鳴動するには、プリンターのデバイスクラスを使用します。
UPOS 1.8版 以下に対応した EPSON OPOS ADK OLE版 では、ブザーを鳴動させたいタイミングで、DirectIO メソッドから ESC/POS コマンドを実行します。
ブザーを鳴動させたいタイミングで、次のコードをデバイスに送信します。
1B7001FAFF・・・500ms ブザーを鳴動させる ESC/POS コマンド
次のような処理を実行することでブザーが鳴動します。
例)Visual C++ で行う場合
void CPrinterDlg::OnBtnBzr2()
{
// ESC/POS command
// ASCII ESC p m t1 t2
// Hex 1B 70 m t1 t2
// [Range]
// m = 0, 1, 48, 49
// 0 =< t1 =< 255
// 0 =< t2 =< 255
//
// ON time is (t1 x 2 msec) and for OFF time is (t2 x 2 msec).
// If t2 < t1, the OFF time is equal to the ON time.
long pData;
CString cString;
BSTR pString;
CString sRC;
CString sRCE;
pData = 0;
// ESC/POS command.
cString = CString( _T("\x1b\x70\x01\xfa\xff"), 5 );
pString = cString.AllocSysString();
m_Ptr1.DirectIO( PTR_DI_OUTPUT_NORMAL, &pData, &pString );
SysFreeString( pString );
if( m_Ptr1.GetResultCode() != OPOS_SUCCESS ) {
sRC.Format("%ld", m_Ptr1.GetResultCode());
sRCE.Format("%ld", m_Ptr1.GetResultCodeExtended());
MessageBox(
"Cannot use a POS Printer\nResultCode = " + sRC
+ "\nResultCodeExtended = " + sRCE );
return;
}
// Test printing
m_Ptr1.PrintNormal( PTR_S_RECEIPT, "DirectIO\n");
if( m_Ptr1.GetResultCode() != OPOS_SUCCESS ) {
sRC.Format("%ld", m_Ptr1.GetResultCode());
sRCE.Format("%ld", m_Ptr1.GetResultCodeExtended());
MessageBox(
"Cannot use a POS Printer\nResultCode = " + sRC
+ "\nResultCodeExtended = " + sRCE );
return;
}
}
|
|
EPSON OPOS ADK .NET版 |
3. |
プリンターに搭載されたブザーを鳴動するには、プリンターのデバイスクラスを使用します。
ブザーを鳴動させたいタイミングで、PTR_DI_RING_BUZZER_WITH_TIME を定数として DirectIO メソッドを実行します。
次のような処理を実行することでブザーが鳴動します。
例)Visual C# で行う場合
private void btnBuzzer_Click(object sender, System.EventArgs e)
{
int iData = 0;
byte[] abyte = new byte[0];
DirectIOData directIOReturn;
string strMessage = "";
iData 500;
try
{
// directIO(int command, int data, Object)
directIOReturn = m_Printer.DirectIO(
EpsonPOSPrinterConst.PTR_DI_RING_BUZZER_WITH_TIME,
iData,
abyte );
strMessage = "戻り値:" + directIOReturn.Data.ToString();
MessageBox.Show(strMessage,"DirectIOData");
}
catch(PosControlException)
{
MessageBox.Show("機能が使用できません。","DirectIO");
}
}
|
|
ブザー機構の詳細は、無線LANインターフェイス、または、Ethernetインターフェイスの詳細取扱説明書を参照してください。
詳細取扱説明書は製品マニュアルダウンロードからダウンロードできます。
TMシリーズ |
TM-L90 オートカッターモデル,TM-L90 ピーラーモデル,TM-T20II,TM-T70,TM-T70II,TM-T88II,TM-T88III,TM-T88IV,TM-T88V,TM-T90,TM-T90II |
|