命令行：
一．发送PLU
digicon -P -s <秤ip> -m plu_template.json -i plu_import.csv

秤ip:
可以有多个ip，用逗号分隔，例如:
1.2.3.4:sm110,5.6.7.8
在ip后有:sm110，则针对sm100/sm110系列下发，否则按照sm120系列下发。

csv列说明：

    说明                               举例
-----------------------------------------------------------
1.  PLU编号                            1
2.  项目代码编号                       10001
3.  品名第一行                         苹果
4.  品名第二行                         Apple
5.  品名第三行                         La Mela
6.  品名第四行                         De appel
7.  单价(元)                           12.00
8.  称重标志(0:计重/1:计件)            0
9.  条码头标识(EANFlags)F1F2           23
10. 条码格式编号(请参考相应手册)       5
11. 保质期(天),空着就不打印            3
12. 销售日期(天),空着就不打印          2
13. 包装日期(天),空着就不打印          1
14. 标签格式(17开始)                   17
15. 主组号                             181
16. 特殊信息第一行                     产地:上海
17. 特殊信息第二行                     等级:优1
18. 特殊信息第三行                     等级:优2
19. 特殊信息第四行                     等级:优3
20. 特殊信息第五行                     等级:优4
21. 成份第一行                         无添加剂0
22. 成份第二行                         放心食用1
23. 成份第三行                         放心食用2
24. 成份第四行                         放心食用3
25. 成份第五行                         放心食用4
26. 二维码内容                         http://www.baidu.com
27. 追溯码开关                         0或1
28. 追溯码内容                         1234567890
29. 允许改价                           0:不允许,1:允许(SPEC178需要设置成1)

二．发送预置键
digicon -K -s <秤ip> -m kas_template.json -i kas_import.csv

csv列说明：
1. PLU编号
2. 预置键编号(键盘上的编号)
3. 预置键页号

三．清除主档 
digicon -s <秤ip> -d <主档名>

主档名列表：
Plu: 商品
Mgp: 主组
Dep: 部门
Kas: 预置键
Trg: 追溯码
Trb: 追溯二维码
Trt: 追溯文本
Tbt: 2D Barcode
Prf: 标签格式（头）
Pff: 标签格式（明细）
Flb: 自定义条码
Mub: 多样条码(Code128,QR...)
Spm: 特殊信息
Ing: 成份
Tex: 文本


四．编码
encode.txt中是导入csv时使用的编码，简体中文请用GBK，繁体请用Big5，等等

五．查看版本
digicon -v会显示程序版本,如
version: 2.3

六．关于进程退出码 (v2.3以后支持)
以下是如何取得进程的退出码示例（Delphi）
--------------------------------------------------------------------------------
procedure TForm1.btn2Click(Sender: TObject);
var
  SEInfo: TShellExecuteInfo;
  ExitCode: DWORD;
  ExecuteFile, ParamString, StartInString: string;
  str: string;
  ip_str: string;
begin
  //digicon的路径地址
  ExecuteFile:=edt_exe_file.Text;
  FillChar(SEInfo, SizeOf(SEInfo), 0);
  SEInfo.cbSize := SizeOf(TShellExecuteInfo);

  //mmo_iplist是所有秤IP列表，内容如:
  //1.2.3.4:sm110
  //5.6.7.8:sm110
  //...
  for ip_str in mmo_iplist.Lines do begin
    with SEInfo do
    begin
	  //edt_csv_file是csv的导入路径
	  //edt_json_file是导入模板文件
      str := '-P -i ' + edt_csv_file.Text + ' -m ' + edt_json_file.Text + ' -s ' + ip_str;
      fMask := SEE_MASK_NOCLOSEPROCESS;
      Wnd := Application.Handle;
      lpFile := PChar(ExecuteFile);
      lpParameters := pchar(str);
      nShow := SW_SHOWNORMAL;
    end;
    if ShellExecuteEx(@SEInfo) then
    begin
	  //等待进程结束并取得进程的退出码ExitCode
      repeat
        Application.ProcessMessages;
        GetExitCodeProcess(SEInfo.hProcess, ExitCode);
        Sleep(20);
      until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
	  //显示进程退出码ExitCode
      ShowMessage(ip_str + ' Result: ' + IntToStr(ExitCode));
	  //进程退出码不为零就可以认为是下发失败，等于零就是下发成功。
	  if ExitCode <> 0 then
		showmessage('error on ' + ip_str);
	end;
  end;
end;
--------------------------------------------------------------------------------
进程退出码不为零就可以认为是下发失败，等于零就是下发成功。
如果下发多台秤（用逗号分隔），则所有秤成功时退出码才为零。


七．日志文件信息(v2.4)
程序也会在当前路径下生成日志文件查看是否发送成功。
digicon_detail.log => 日志记录详细内容
digicon_result.log => 日志记录每次下发时每台秤的结果是否成功
digicon_failed_scale.log => 失败的秤列表，一行一个 (v2.8)