⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpsnetcommctrl.pas

📁 a voice guide client ,it is the second part of voice guide center
💻 PAS
📖 第 1 页 / 共 5 页
字号:
function TGpsNetCommCtrl.Set_Sg_GPRSAPN(var ANote: string;
  _apn_name: string): string;
begin
  ANote:= rsNoteSet_Sg_GPRSAPN + _apn_name;
  Result:= 'SETT,2,' + _apn_name;
end;

//设置GPRS网络参数
//SETT,1,P1,P2,P3,P4,P5,P6
function TGpsNetCommCtrl.Set_Sg_GPRSNetwork(var ANote: string; _phone_no,
  _ip_address: string; _port_service, _port_terminal, _reconn_interval,
  _comm_mode: Integer): string;
begin
 ANote:= Format(rsNoteSet_Sg_GPRSNetworkSetting, [_phone_no, _ip_address,
   _port_service, _port_terminal, _reconn_interval, _comm_mode]);

  Result:= Format('SETT,1,%s,%s,%d,%d,%d,%d', [_phone_no, _ip_address,
   _port_service, _port_terminal, _reconn_interval, _comm_mode]);
end;

//设置终端工作状态
//CTRL,13,P1
function TGpsNetCommCtrl.Set_Sg_TerminalEnable(var ANote: string;
  AEnable: Boolean): string;
begin
  ANote:= rsNoteSet_Sg_TerminalEnable + IfThen(AEnable, '工作', '停止');
  if AEnable then
    Result := 'CTRL,13,1'
  else
    Result := 'CTRL,13,0';
end;

function TGpsNetCommCtrl.CtrlCancelEm(var ANote: string): string;
begin
  ANote:= rsNoteCtrlCancelEm;               // '取消报警';
  Result := 'CTRL,0,2';
end;

function TGpsNetCommCtrl.Ctrl_Sg_Door(var ANote: string;
  AOpen: Boolean): string;
begin
  if AOpen then begin
    ANote:= rsNoteCtrlOpenDoor;       // '打开车门';
    Result := 'CTRL,3,1';
  end else begin
    ANote:= rsNoteCtrlCloseDoor;      // '关闭车门';
    Result := 'CTRL,3,0';
  end;
end;

function TGpsNetCommCtrl.Ctrl_SgGSM_Door(var ANote: string;
  AOpen: Boolean): string;
begin
  if AOpen then begin
    ANote:= rsNoteCtrlOpenDoor;       // '打开车门';
    Result := 'CTRL,3,0';
  end else begin
    ANote:= rsNoteCtrlCloseDoor;      // '关闭车门';
    Result := 'CTRL,3,1';
  end;
end;

function TGpsNetCommCtrl.CtrlLock(var ANote: string;
  ALock: Boolean): string;
begin
  if ALock then begin
    ANote:= rsNoteCtrlStopCar;        // '控制锁车(断油/断电)';
    Result := 'CTRL,0,0';
  end else begin
    ANote:= rsNoteCtrlUnStopCar;      // '控制解锁(通油/通电)';
    Result := 'CTRL,0,1';
  end;
end;

function TGpsNetCommCtrl.CtrlLstn(var ANote: string;
  APhone: string): string;
begin
  ANote:= Format(rsNoteCtrlListen , [APhone]);      //'从%s监听'
  Result := 'LSTN,0,'+APhone;
end;

function TGpsNetCommCtrl.Ctrl_Sg_PasswordClear(var ANote: string): string;
begin
  ANote:= rsNote_Sg_SetClearPWD;        // '车载终端密码清除';
  Result := 'CTRL,2,0';
end;

function TGpsNetCommCtrl.Ctrl_Sg_Phone(var ANote: string;
  ACtrlPhone: TCtrlPhone): string;
begin
  case ACtrlPhone of
    cpPhoneIn:
      begin
        ANote:= rsNote_Sg_SetPhoneIn;       // '允许接听';
        Result := 'CTRL,4,1';
//        Result := 'CTRL,315,1';
      end;
    cpPhoneOut:
      begin
        ANote:= rsNote_Sg_SetPhoneOut;      // '允许拨出';
        Result := 'CTRL,4,2';
//        Result := 'CTRL,315,2';
      end;
    cpPhoneAll:
      begin
        ANote:= rsNote_Sg_SetPhoneNormal;   // '允许所有通话';
        Result := 'CTRL,4,3';
//        Result := 'CTRL,315,3';
      end;
    cpPhoneMask://以下WLH
      begin
       ANote := rsNote_Sg_SetPhoneMask;  //号段设置
        Result := 'CTRL,4,4';
//       Result := 'CTRL,315,4';             //     0.
      end;
  end;
end;

function TGpsNetCommCtrl.Ctrl_Sg_Reset(var ANote: string): string;
begin
  ANote:= rsNote_Sg_CtrlRestart;            // '车载终端系统复位';
  Result := 'CTRL,1,0';
end;

destructor TGpsNetCommCtrl.Destroy;
begin
  FCmdList.Free;
  if Assigned(F_Ft_OperIdList) then F_Ft_OperIdList.Free;
  inherited;
end;

//**********************   信息类  *****************************************
function TGpsNetCommCtrl.MsgAttemper(var ANote: string; AMsgNo: Integer;
  AMsg: string): string;
begin
  ANote:= '['+ AMsg+ ']';
  Result := 'TEXT,0,'+ TIdEncoderMIME.EncodeString(AMsg);
end;

function TGpsNetCommCtrl.MsgBroadcast(var ANote: string;
  AMsg: string): string;
begin
  ANote:= '['+ AMsg+ ']';
  Result := 'TEXT,1,'+ TIdEncoderMIME.EncodeString(AMsg);
end;

//**********************   维护发送列表  *****************************************
function TGpsNetCommCtrl.SendItemNew(ASendNote: string;
  ACarId, ASendNo: Integer): Integer;
begin
  Result:= FCmdList.AddObject(IntToStr(ACarId)+ '='+ ASendNote, TObject(ASendNo));
  LastSendCommandTime := GetTickCount;
end;

function TGpsNetCommCtrl.SendItemRevert(ANewSendNo: Integer;
  var ACarId: Integer; var ASendNote: string): Integer;
begin
  Result := 0;
  SendItemSended(ANewSendNo, ACarId, ASendNote);
end;

function TGpsNetCommCtrl.SendItemSended(ANewSendNo: Integer;
  var ACarId: Integer; var ASendNote: string): Integer;
var
  sCarId: string;
begin
  Result:= FCmdList.IndexOfObject(TObject(ANewSendNo));
  if Result<0 then Exit;
  sCarId:= FCmdList.Names[Result];
  ACarId:= StrToIntDef(sCarId, -1);
  ASendNote:= FCmdList.ValueFromIndex[Result];
  // 指令发送完成后删除
  FCmdList.Delete(Result);
end;

function TGpsNetCommCtrl.SendItemTrasmit(AOldSendNo, ANewSendNo: Integer;
  var ACarId: Integer; var ASendNote: string): Integer;
var
  sCarId: string;
begin
  Result:= FCmdList.IndexOfObject(TObject(AOldSendNo));
  if Result<0 then Exit;
  sCarId:= FCmdList.Names[Result];
  ACarId:= StrToIntDef(sCarId, -1);
  ASendNote:= FCmdList.ValueFromIndex[Result];
  FCmdList.Objects[Result]:= TObject(ANewSendNo);
end;

//**********************   设置类  *****************************************
function TGpsNetCommCtrl.Set_704_LmdPhone(var ANote: string;
  ACtrl: Boolean; ALmdPhones: TStringList): string;
begin
  if ACtrl then begin
    if Assigned(ALmdPhones) then begin
      ANote:= rsNote_704_SetPhoneLmd+ ALmdPhones.CommaText;       //'设置限制电话为:'
      Result := Format('SETT,5,0,%s', [TIdEncoderMIME.EncodeString(ALmdPhones.CommaText)]);
    end;
  end else begin
    ANote:= rsNote_704_SetPhoneNoLmd;           //'设置电话为任意通话';
    Result := 'SETT,5,1,';
  end;
end;

function TGpsNetCommCtrl.Set_Sg_HotLinePhone(var ANote: string;
  AHotLinePhone: string): string;
begin
  ANote:= rsNote_Sg_SetHotLine+ AHotLinePhone;        // '设置热线电话为'
  Result := Format('SETT,4,%s', [AHotLinePhone]);
end;

function TGpsNetCommCtrl.Set_Sg_HistoryInterval(var ANote: string;
  AHistory: Integer): string;
//SETT,7,P1
//P1:秒
begin
  //rsNoteSet_Sg_HistoryInterval = '历史记录间隔设置%d秒';
  ANote:= Format(rsNoteSet_Sg_HistoryInterval, [AHistory]);
  Result:= Format('SETT,7,%d',[AHistory]);
end;

function TGpsNetCommCtrl.Set_Sg_AccEnable(var ANote: string;
  AEnable: Boolean): string;
//ACC变化信息上报设置
//SETT,8,P1
//P1:=1开启;=0关闭
begin
  //rsNoteSet_Sg_AccEnable = 'ACC变化信息上报设置';
  if AEnable
  then ANote:= '激活'+ rsNoteSet_Sg_AccEnable
  else ANote:= '去除'+ rsNoteSet_Sg_AccEnable;
  Result:= Format('SETT,8,%d', [Ord(AEnable)]);
end;


function TGpsNetCommCtrl.SetOverSpeed(var ANote: string;
  AOverSpeed: Integer): string;
begin
  ANote:= Format(rsNoteSetOverSpeed, [AOverSpeed]);       //'设置超速报警速度为%d(公里/小时)'
  Result := Format('SETT,3,%d', [AOverSpeed]);
end;

function TGpsNetCommCtrl.SetSmCenterNo(var ANote: string;
  AListenNo: string): string;
begin
  ANote:= rsNoteSetSMSC+ AListenNo;       //'设置短信中心为'
  Result := 'SETT,2,'+ AListenNo;
end;

function TGpsNetCommCtrl.SetSvrCenterNo(var ANote: string;
  ASvrCenterNo: string): string;
begin
  ANote:= rsNoteSetSvcCenter+ ASvrCenterNo;       //'设置服务中心为'
  Result := 'SETT,1,'+ ASvrCenterNo;
end;

function TGpsNetCommCtrl.Set_704_EdieFixSm(var ANote: string;
  AGroupNo: Integer; AFixSm: string): string;
{-----------------------------------------------------------------------------
 Purpose:
            修改终端内置固定短信格式;
 通讯协议:
 SETT,T,Index,<Msg0>,<Msg1>,<Msg2>,<Msg3>,<Msg4>
  参数说明
  T:指令索引=8
  Index:消息的组号,取值为0到5
  Msg1....Msg5:要更改的消息内容

  例:要更改第1组的第3条信息为“你好”
  SETT,8,1,,,,你好,
  SETT,8,1,0,0,0,你好,0  
-----------------------------------------------------------------------------}
begin
  ANote:= Format(rsNoteSetFixSm, [AGroupNo, AFixSm]);   //'设置终端第%d组固定短信为:%s'
  Result := Format('SETT,8,%d,%s', [AGroupNo, AFixSm]);
end;

    //新星远
function TGpsNetCommCtrl.Set_Xxy_LowSpeed(var ANote: string; ALowSpeed,
  AKeepTime: Integer): string;
//设置低速报警
//SETT,11,P1,P2
//P1:速度(公里)
//P2:持续低速时间(秒)
begin
  if (AKeepTime= 0)and (ALowSpeed=0) then ANote:= '取消低速报警'
  else ANote:= Format('设置低速报警(%d公里/小时, 监测时长%d)', [ALowSpeed, AKeepTime]);
  Result:= Format('SETT,11,%d,%d', [ALowSpeed, AKeepTime]);
end;

function TGpsNetCommCtrl.Set_Xxy_OverSpeed(var ANote: string; AOverSpeed,
  AKeepTime: Integer): string;
//设置超速报警
//SETT,10,P1,P2
//P1:速度(公里)
//P2:持续超速时间(秒)
begin
  if (AOverSpeed=0)and (AKeepTime=0) then ANote:= '取消超速报警'
  else ANote:= Format('设置超速报警(%d公里/小时, 监测时长%d)', [AOverSpeed, AKeepTime]);
  Result:= Format('SETT,10,%d,%d', [AOverSpeed, AKeepTime]);
end;

function TGpsNetCommCtrl.Set_Xxy_StayLong(var ANote: string;
  AStayLong: Integer): string;
//设置停留时间过长报警
//SETT,12,P1,0
//P1:持续停留时间(秒)
begin
  if (AStayLong=0) then ANote:= '取消停留时间过长报警'
  else ANote:= Format('设置停留时间过长报警(停留时长%d秒)', [AStayLong]);
  Result:= Format('SETT,12,%d,0', [AStayLong]);
end;

function TGpsNetCommCtrl.Set_Xxy_EFence(var ANote: string;
  AEFenceId: string; GpsRectList: TList): string;
//区域报警
//SETT,13,P1,P2
//P1:围栏个数(最大70)
//P2:围栏(17字节),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -