|
-
-
プリンターの電源状態を知るためには、OPOS API のPowerNotify プロパティを使用し、ステータス情報取得イベント StatusUpdateEvent でプリンターの状態を取得できます。
EPSON OPOS ADK OLE 版
EPSON OPOS ADK OLE 版では、PowerNotify プロパティに値 OPOS_PN_ENABLED を渡した後、DeviceEnabled を FALSE から TRUE に変更することで電源状態の監視が開始されます。
プリンターの電源が切断、またはオフライン状態のとき StatusUpdateEvent が発生し OPOS_SUE_POWER_OFF_OFFLINE を得ることができます。
イベント:StatusUpdateEvent やプロパティ:PowerNotify の詳細は OPOS 技術協議会発行の仕様書をご確認ください。
Visual Basic 6.0 の例
Private Sub Form_Load()
'DeviceEnabled の前に PowerNotify に値を渡す
With OPOSPOSPrinter1
.Open "Unit1"
.PowerNotify = OPOS_PN_ENABLED
.ClaimDevice 1000
.DeviceEnabled = True
End With
End Sub
Private Sub OPOSPOSPrinter1_StatusUpdateEvent(ByVal Data As Long)
'プリンターの状態に変化がある時、このイベントが発生する
Select Case Data
Case PTR_SUE_COVER_OPEN 'プリンターカバーが開いている
'処理
Case PTR_SUE_REC_EMPTY '用紙が無い
'処理
Case PTR_SUE_COVER_OK 'プリンターカバーが閉じた
'処理
Case PTR_SUE_REC_PAPEROK '用紙が有る
'処理
Case PTR_SUE_REC_NEAREMPTY '用紙が有る ( ニアエンド、用紙残量:小 )
'処理
Case OPOS_SUE_POWER_ONLINE '通電されて使用可能な状態
'処理
Case OPOS_SUE_POWER_OFFLINE '通電しているが使用できない ( オフライン ) 状態
'処理
Case OPOS_SUE_POWER_OFF '電源が投入されていないか、接続されていない
'処理
Case OPOS_SUE_POWER_OFF_OFFLINE '電源が投入されていないか、オフラインの状態
'処理
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
With OPOSPOSPrinter1
.DeviceEnabled = False
.ReleaseDevice
.Close
End With
End Sub
電源 ON 通知機能、および電源 OFF 通知機能の有無は機種によって異なります。
- (例)
- TM-T90II は
電源 ON 通知機能: あり
電源 OFF 通知機能: あり
- TM-T70II は
電源 ON 通知機能: あり
電源 OFF 通知機能: なし
機能の有無については EPSON OPOS ADK OLE 版に付属する機種別マニュアルをご確認ください。
EPSON OPOS ADK for .NET 版
EPSON OPOS ADK OLE 版と同様に、PowerNotify プロパティを使用することで StatusUpdateEvent にプリンターの電源状態が通知されます。
- StatusUpdateEvent や PowerNotify の詳細は OPOS 技術協議会発行の仕様書をご確認ください。
- EPSON OPOS ADK for .NET も同様に、機種によって電源 ON/OFF 通知機能の有無があります。
機能の有無については EPSON OPOS ADK for .NET 版に付属する機種別マニュアルをご確認ください。
Visual C# の例
using Microsoft.PointOfService;
public class frm : System.Windows.Forms.Form
{
PosPrinter m_Printer = null;
/// StatusUpdateEvent ハンドラを追加
protected void AddStatusUpdateEvent(object eventSource)
{
EventInfo statusUpdateEvent = eventSource.GetType().GetEvent( "StatusUpdateEvent");
if(statusUpdateEvent != null)
{
statusUpdateEvent.AddEventHandler(eventSource,
new StatusUpdateEventHandler(OnStatusUpdateEvent));
}
}
/// StatusUpdateEvent ハンドラを削除
protected void RemoveStatusUpdateEvent(object eventSource)
{
EventInfo statusUpdateEvent = eventSource.GetType().GetEvent( "StatusUpdateEvent");
if(statusUpdateEvent != null)
{
statusUpdateEvent.RemoveEventHandler( eventSource,
new StatusUpdateEventHandler(OnStatusUpdateEvent));
}
}
private void frm_Load(object sender, EventArgs e)
{
string strLogicalName = "PosPrinter";
PosExplorer posExplorer = new PosExplorer();
DeviceInfo deviceInfo = null;
deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter,strLogicalName);
m_Printer =(PosPrinter)posExplorer.CreateInstance(deviceInfo);
//StatusUpdateEvent ハンドラを追加
AddStatusUpdateEvent(m_Printer);
m_Printer.Open();
m_Printer.Claim(1000);
//電源監視をサポートしていれば、電源通知機能を有効にする
if(m_Printer.CapPowerReporting != PowerReporting.None)
{
m_Display.PowerNotify = PowerNotification.Enabled;
}
m_Printer.DeviceEnabled = true;
}
private void frm_Closing(object sender, CancelEventArgs e)
{
//StatusUpdateEvent ハンドラを削除
RemoveStatusUpdateEvent(m_Printer);
m_Printer.DeviceEnabled = false;
m_Printer.Release();
m_Printer.Close();
}
/// StatusUpdateEvent ハンドラを通知
protected void OnStatusUpdateEvent(object source, StatusUpdateEventArgs e)
{
//プリンターの状態に変化がある時、このイベントが発生する
switch(e.Status)
{
// 通電されて使用可能な状態
case PosCommon.StatusPowerOnline:
// 処理
break;
// 通電しているが使用できない ( オフライン ) 状態
case PosCommon.StatusPowerOffline:
// 処理
break;
// 電源が投入されていないか、接続されていない
case PosCommon.StatusPowerOff:
// 処理
break;
// 電源が投入されていないか、オフラインの状態
case PosCommon.StatusPowerOffOffline:
// 処理
break;
default:
break;
}
}
}
モバイルプリンター |
TM-P20,TM-P60II |
PC一体型プリンター |
TM-T70II-DT,TM-T88V-DT |
TMシリーズ |
TM-H5000II,TM-H6000II,TM-H6000III,TM-H6000IV,TM-J2000,TM-J2100,TM-L60II,TM-L90 オートカッターモデル,TM-L90 ピーラーモデル,TM-T20,TM-T20II,TM-T285,TM-T70,TM-T70II,TM-T88III,TM-T88IIIX (ARCX搭載),TM-T88IV,TM-T88V,TM-T90,TM-T90 KP,TM-T90II,TM-U220A,TM-U220B,TM-U220D,TM-U295,TM-U375,TM-U590,TM-U675,TM-U950,TM-m10,TM-m30 |
|