常見的餐飲、飲料POS機硬體設定問題

接觸餐飲、快餐、飲料店等POS開發後,週遭許多朋友都會問相關的問題!
不過許多看起來真的都是設定上的問題,可能是因為有潔癖的關係,看到線髒了就像拔起來擦一擦,不過悲劇就開始發生了~接回去硬體全都不聽使喚!再加上呼叫POS廠商叫天天不應、叫地地不靈的情況下,欲哭無淚。

不過真的有這麼困難嗎?其實也還好啦!就由壽山來帶領大家稍微認識一下。

1441363_10151669974171541_2044485183_n-2上圖是POS機器與各種硬體連接的介面,大致上就是幾種規格:

  • LPT 點矩陣式印表機用
  • Line In/Out 麥克風/喇叭
  • COM(Serial port) 主要POS機硬體規格
  • USB
  • LAN 網路
  • PS/2 鍵盤、滑鼠
  • VGA 可以第二台螢幕
  • RJ11
  • DC 電源

言歸正傳,那為什麼我把家裡USB的鍵盤、滑鼠、隨身碟隨便拔插都可以抓得到?為什麼上面的COM1~4我接錯了就不會動呢?

螢幕快照 2013-11-04 下午5.59.16

原因是Serial Port的控制是直接將指令送到指定的Com Port去,不經過驅動程式去驅動的情況下直接使用。

所以下一次在拔插Com Port的插頭時,記得要先記住那個Port是接在那個Com Port,如果真的忘了就去找到系統中設定Com Port的位置去接對就行了。

 

 

Delphi XE3 簡訊發送問題

把手上的Delphi7自動發送簡訊系統轉到XE3,發現一直出現亂碼。
後來找到原因是IdHTTP.URL.ParamsEncode的問題,在Delphi7跟Delphi XE3處理出來的結果是不同的,於是在網路上找到一段改編自Delphi 7的版本。果然就行了!

function EnCode(ACode: string): string;
var
  I: Integer;
  Hex: string;
  Code: AnsiString;
begin
  Code := AnsiString(ACode);
  for I := 1 to Length(Code) do
    case Code[i] of
      ' ': Result := Result + '+';
      'A'..'Z', 'a'..'z', '*', '@', '.', '_', '-',
        '0'..'9', '$', '!', '''', '(', ')':
        Result := Result + Code[i];
    else
      begin
        Hex := IntToHex(ord(Code[i]), 2);
        if Length(Hex) = 2 then
          Result := Result + '%' + Hex
        else
          Result := Result + '%0' + hex;
      end;
    end;
end;