在國外行之有年的取餐呼叫器(Pager)最近也在台灣風行起來,看到了二款取餐呼叫器,一個是國產亞克高科(ARCT)由銥特爾科技(02-29974000)代理,一個是韓國(Syscall)製造由鋐鈦科技代理。
二款都可以透過COM PORT設定~~ 以Delphi以及C#針對韓國的做範例。
Delphi
var iPagerno :Integer;
sStr,s :AnsiString;
begin
Try
Pager_COM.StopComm; // 先將Pager Com關閉
Pager_COM.CommName := ComName;
Pager_COM.StartComm;
Sleep(50); //開啟COM需等待
iPagerno := StrToIntDef(PagerNo,1);
sStr := copy(IntToStr(iPagerno),1,4)
s:= Ansichar(#開始指令)+sStr+Ansichar(#結束指令);
Pager_COM.WriteCommData(PAnsiChar(s),Length(s));
Except
End;
C#
public void Pager_Send(String COMName,String PagerNo)
{
public static System.IO.Ports.SerialPort PAGERPORT = new System.IO.Ports.SerialPort();
byte[] PAGERSTART = { 開始指令 };
byte[] PAGEREND = { 結束指令 };
try
{
if (PAGERPORT.IsOpen)
PAGERPORT.Close();
PAGERPORT.PortName = COMName;
PAGERPORT.BaudRate = 9600;
PAGERPORT.Parity = System.IO.Ports.Parity.None;
PAGERPORT.DataBits = 8;
PAGERPORT.StopBits = System.IO.Ports.StopBits.One;
PAGERPORT.Open();
if (!PAGERPORT.IsOpen)
PAGERPORT.Open();
for (int i = 0; i < PAGERSTART.Length; i++)
{
PAGERPORT.Write(PAGERSTART , i, 1);
}
PagerNo = PagerNo.PadLeft(4, '0').ToString();
byte[] PagerNoData= Encoding.Default.GetBytes(PagerNo);
if (!PAGERPORT.IsOpen)
PAGERPORT.Open();
for (int i = 0; i < PagerNoData.Length; i++)
{
PAGERPORT.Write(PagerNoData, i, 1);
}
if (!PAGERPORT.IsOpen)
PAGERPORT.Open();
for (int i = 0; i < PAGEREND .Length; i++)
{
PAGERPORT.Write(PAGEREND , i, 1);
}
}
catch
{
return;
}
}