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

📄 gpsnetcommctrl.pas

📁 a voice guide client ,it is the second part of voice guide center
💻 PAS
📖 第 1 页 / 共 5 页
字号:
//业务取消
//OPER,4,P0
//P0:业务流水号
resourcestring
  rsNote_Oper_NoMsg = '飞田Taxi业务取消,编号%d';
begin
  ANote:= Format(rsNote_Oper_NoMsg, [OperId]);
  Result:= Format('OPER,4,%d', [OperId]);
end;

function TGpsNetCommCtrl.Set_Ft_DoAfterAlarm(var ANote: string; AActionId,
  AGpsInterval: Integer; AOpenSpk: Boolean): string;
//CRTL,10,P1,P2,p3
//P1:处理信息
//	P1=0 打开语音通道,录音监听 ,并跟踪车辆行驶轨迹
//	P1=1 只打开语音通道,录音监听
//	P1=2 只跟踪车辆行驶轨迹
//	P1=3 电话确认
//P2:发送时间间隔	整数 。
//P3:是否打开SPK
//	P3=0不打开
//	P3=1打开
resourcestring
  rsNote_Set_Ft_DoAfterAlarm= '设置处理报警: ';
var
  sAction, sOpenSpeek: string;
begin
  Result:= '';
  case AActionId of
    0:
       {$IFDEF _POLICE}
        sAction:= '打开语音通道,录音监听 ,并跟踪警车行驶轨迹';
       {$ELSE}
          sAction:= '打开语音通道,录音监听 ,并跟踪车辆行驶轨迹';
       {$ENDIF}
    1: sAction:= '只打开语音通道,录音监听';
    2:
    {$IFDEF _POLICE}
      sAction:= '只跟踪警车行驶轨迹';
    {$ELSE}
      sAction:= '只跟踪车辆行驶轨迹';
    {$ENDIF}
    3: sAction:= '电话确认';
  else
    Exit;
  end;
  if AOpenSpk
  then sOpenSpeek:= '打开SPK'
  else sOpenSpeek:= '关闭SPK';
  ANote:= rsNote_Set_Ft_DoAfterAlarm+ sAction+
    'GPS数据回传间隔:'+ IntToStr(AGpsInterval)+
    '  '+ sOpenSpeek;
  Result:= Format('CRTL,10,%d,%d,%d', [AActionId, AGpsInterval, Ord(AOpenSpk)]);
end;

function TGpsNetCommCtrl.Set_Ft_CallInterval(var ANote: string;
  AEmpty, ANoEmpty, AEm, ANoLogon: Integer): string;
//设置固定回传数据时间间隔
//CALL,7,P1,P2,p3,P4
//	P1:空车位置报告时间间隔,空车时,车辆报告自己的位置信息的基本时间间隔,单位为秒。
//	P2:重车位置报告时间间隔,重车时,车辆报告自己的位置信息的基本时间间隔,单位为秒,不能超过180秒。
//	P3:紧急时位置报告时间间隔,出现紧急情况时,车辆报告自己的位置信息的基本时间间隔,单位为秒
//	P4:未登录时位置报告时间间隔,驾驶员没有登录时位置报告时间间隔,单位是秒。
resourcestring
  rsNote_Set_Ft_CallInterval= '设置GPS数据回传间隔(秒),空车:%d;重车:%d;紧急:%d;未登录:%d';
begin
  ANote:= Format(rsNote_Set_Ft_CallInterval, [AEmpty, ANoEmpty, AEm, ANoLogon]);
  Result:= Format('CALL,7,%d,%d,%d,%d', [AEmpty, ANoEmpty, AEm, ANoLogon]);
end;

function TGpsNetCommCtrl.Set_Ft_SingleListenNo(var ANote: string;
  AListenNo: string): string;
//单向监听
////电话该电话号码可以单向监听mdt的动静,最多只能有一个号码
//SETT,20,P1
//P1:电话号码
resourcestring
  rsNote_Set_Ft_SingleListenNo = '设置监听号码:%s,该电话号码可以单向监听mdt的动静';
begin
  ANote:= Format(rsNote_Set_Ft_SingleListenNo, [AListenNo]);
  Result:= Format('SETT,20,%s', [AListenNo]);
end;

function TGpsNetCommCtrl.Set_Ft_CommServerParams(var ANote: string;
  AMasterIp, ABakIp: string; AMasterPort, ABakPort: Integer): string;
//设置终端的通讯参数
//SETT,21,P1,P2,p3,P4
//P1:调度中心主服务器的ip地址(218.19.174.10)
//P2:调度中心备份服务器的ip地址
//P3:调度中心主服务器的通信端口
//P4:调度中心备份服务器的通信端口
resourcestring
  rsNote_Set_Ft_CommServerParams= '设置终端的通讯参数: 主服务器(%s:%d),备服务器(%s:%d)';
begin
  ANote:= Format(rsNote_Set_Ft_CommServerParams, [AMasterIp, AMasterPort, ABakIp, ABakPort]);
  Result:= Format('SETT,21,%s,%s,%d,%d', [AMasterIp, ABakIp, AMasterPort, ABakPort]);
end;

function TGpsNetCommCtrl.Set_Ft_AlarmTel(var ANote: string;
  AAlarmTel: string): string;
//在紧急情况下拨打的电话号码
//SETT,22,P1
//P1:电话号码
resourcestring
  rsNote_Set_Ft_AlarmTel= '设置紧急电话:%s';
begin
  ANote:= Format(rsNote_Set_Ft_AlarmTel, [AAlarmTel]);
  Result:= Format('SETT,22,%s', [AAlarmTel]);
end;

function TGpsNetCommCtrl.Set_Ft_CallCenterNo(var ANote: string; ANo1, ANo2,
  ANo3, ANo4, ANo5: string): string;
//调度中心电话号码
//SETT,23,P1,P2,p3,P4,P5
//P1-P5:电话号码(坐机要带区号)
resourcestring
  rsNote_Set_Ft_CallCenterNo= '设置呼叫中心电话:%s,%s,%s,%s,%s';
begin
  ANote:= Format(rsNote_Set_Ft_CallCenterNo, [ANo1, ANo2, ANo3, ANo4, ANo5]);
  Result:= Format('SETT,23,%s,%s,%s,%s,%s', [ANo1, ANo2, ANo3, ANo4, ANo5]);
end;

function TGpsNetCommCtrl.Set_Ft_ResetTelNo(var ANote: string;
  AResetTel: string): string;
//复位号码
////用该号码拨打mdt的电话,mdt会自动复位
//SETT,24,P1
//P1:电话号码
resourcestring
  rsNote_Set_Ft_ResetTelNo = '复位号码: %s,用该号码拨打mdt的电话,mdt会自动复位';
begin
  ANote:= Format(rsNote_Set_Ft_ResetTelNo, [AResetTel]);
  Result:= Format('SETT,24,%s', [AResetTel]);
end;

function TGpsNetCommCtrl.Set_Ft_DriveId(var ANote: string; DrvId1,
  DrvName1, DrvId2, DrvName2: string): string;
//驾驶员参数
//SETT,25,P1,P2,P3,P4
//P1:第一个驾驶员id(字母或数字)
//P2:第一个驾驶员姓名
//P3:第二个驾驶员id
//P4:第二个驾驶员姓名(字母或数字)
resourcestring
  rsNote_Set_Ft_DrvId= '驾驶员参数,第1驾驶员id:%s,姓名:%s,第2驾驶员id:%s,姓名:%s';
begin
  ANote:= Format(rsNote_Set_Ft_DrvId, [DrvId1, DrvName1, DrvId2, DrvName2]);
  Result:= Format('SETT,25,%s,%s,%s,%s', [DrvId1, DrvName1, DrvId2, DrvName2]);
end;

function TGpsNetCommCtrl.Set_Ft_CanCallInTelNo(var ANote: string; ANo1,
  ANo2, ANo3, ANo4, ANo5: string): string;
//允许呼入的电话号码
//SETT,26,P1,P2,p3,P4,P5
//P1-P5:电话号码(坐机要带区号)
resourcestring
  rsNote_Set_Ft_CanCallInTelNo= '允许呼入的电话号码:%s,%s,%s,%s,%s';
begin
  ANote:= Format(rsNote_Set_Ft_CanCallInTelNo, [ANo1, ANo2, ANo3, ANo4, ANo5]);
  Result:= Format('SETT,26,%s,%s,%s,%s,%s', [ANo1, ANo2, ANo3, ANo4, ANo5]);
end;

function TGpsNetCommCtrl.Set_Ft_CanRecvSmTelNo(var ANote: string; ANo1,
  ANo2: string): string;
//允许发送短消息的电话号码
////这里设置的的电话号码可以给mdt发送短消息
//SETT,27,P1,P2
//P1-P2:电话号码
resourcestring
  rsNote_Set_Ft_CanRecvSmTelNo= '允许发送短消息的电话号码:%s,%s';
begin
  ANote:= Format(rsNote_Set_Ft_CanRecvSmTelNo, [ANo1, ANo2]);
  Result:= Format('SETT,27,%s,%s', [ANo1, ANo2]);
end;

function TGpsNetCommCtrl.Get_Ft_LastOperId(ACarId: Integer): Integer;
var
  sOperId: string;
begin
  if not Assigned(F_Ft_OperIdList) then F_Ft_OperIdList:= TStringList.Create;
  sOperId:= F_Ft_OperIdList.Values[IntToStr(ACarId)];
  Result:= StrToIntDef(sOperId, -1);
end;

procedure TGpsNetCommCtrl.Set_Ft_OperId(ACarId, AOperId: Integer);
begin
  if not Assigned(F_Ft_OperIdList) then F_Ft_OperIdList:= TStringList.Create;
  F_Ft_OperIdList.Values[IntToStr(ACarId)]:= IntToStr(AOperId);
end;

function TGpsNetCommCtrl.Ctrl_Th_Phone(var ANote: string;
  ACtrlPhone: TCtrlPhone): string;
//CTRL,315,P1
//P1=1   允许打出 允许接听  1
//P1=2   允许打出 禁止接听  2
//P1=3   禁止打出 允许接听  3
//P1=4   禁止打出 禁止接听  4
begin
  case ACtrlPhone of
    cpPhoneAll:
      begin
        ANote:= rsNote_Sg_SetPhoneNormal;   // '允许所有通话';
        Result := 'CTRL,315,1';
      end;
    cpPhoneOut:
      begin
        ANote:= rsNote_Sg_SetPhoneOut;      // '允许拨出';
        Result := 'CTRL,315,2';
      end;
    cpPhoneIn:
      begin
        ANote:= rsNote_Sg_SetPhoneIn;       // '允许接听';
        Result := 'CTRL,315,3';
      end;
    cpPhoneMask:
      begin
        ANote:= rsNote_Sg_SetPhoneNone;      // '禁止所有通话';
        Result := 'CTRL,315,4';
      end;
  end;
end;

function TGpsNetCommCtrl.Ctrl_Th_Reset(var ANote: string): string;
resourcestring
  rsNote_Th_CtrlReset = '冷启动指令R1';
begin
  ANote:= rsNote_Th_CtrlReset;
  Result:= 'CTRL,104,0';
end;

function TGpsNetCommCtrl.Set_Th_SpeedLmd(var ANote: string; AMaxSpeed,
  AMinSpeed, ALong: Integer): string;
//SETT,302,P1,P2,P3                                设置速度限制 S14
//P1:设定速度上限,取值范围1 ~ 255,单位是节                P1
//P2:设定速度下限,取值范围1 ~ 255,单位是节                P2
//设置P1=0取消速度上限,
//设置P2 =0取消速度下限。
//P1=5-10时,可以作为车辆被移动报警使用。
//
//P3:持续时间,取值范围5 ~ 65535,单位是秒。
//P3=0表示保存新参数,后取消超速报警功能,
//P3= 其他值打开速度限制
resourcestring
  rsNote_Th_SetSpeedLmd = '设置速度限制 S14:';
begin
  if AMaxSpeed<0 then AMaxSpeed:= 0;
  if AMaxSpeed>255 then AMaxSpeed:= 255;
  if AMinSpeed<0 then AMinSpeed:= 0;
  if AMinSpeed>255 then AMinSpeed:= 255;
  if ALong<5 then ALong:= 5;
  if AMaxSpeed>65535 then AMaxSpeed:= 65535;
  if ALong=0 then ANote:= '取消速度限制'
  else begin
    if AMaxSpeed=0 then ANote:='取消最大速度限制'
    else ANote:= Format('限制最大速度为%d(KM/H)', [AMaxSpeed]);
    if AMinSpeed=0 then ANote:=ANote+ ',取消最小速度限制'
    else ANote:= ANote+ Format(',限制最大速度为%d(KM/H)', [AMaxSpeed]);
  end;
  Result:= Format('SETT,302,%d,%d,1,%d', [AMaxSpeed, AMinSpeed, ALong]);
end;

function TGpsNetCommCtrl.Set_Th_LongOfOverArea(var ANote: string;
  ALong: Integer): string;
//设置越界报警时间 S18
//SETT,303,P1
begin
  if ALong<=0 then begin
    ANote:= '关闭区域报警';
    ALong:= 0;
  end else begin
    if ALong<5 then ALong:= 0;
    if ALong>65535 then ALong:= 65535;
    ANote:= Format('开启区域报警,检测时长%d秒', [ALong]);
  end;
  Result:= Format('SETT,303,%d,2', [ALong]);
end;

function TGpsNetCommCtrl.Set_Th_CustAlarm(var ANote: string; AAlarmType,
  ALong, ATriggerType: Integer): string;
//设置自定义报警
//SETT,304,P1,P2,P13
//P1:被定义的报警信息
//P1=0:取消所有自定义报警
//P1=1:车门开
//P1=2:发动机运转
//P1=3:ACC开
//P1=4:主机由后备电池供电
//P1=5:高电平传感器1高
//P1=6:高电平传感器2高
//P1=7:低电平传感器1搭铁
//P1=8:低电平传感器2搭铁
//P1=9:虚拟设置,不改变任何自定义报警设置,用于中心查询自定义报警设置
//
//P2:时间,范围1-255,单位秒,Time=0时不会产生报警
//
//P3:报警触发方式
//P3=0:取消该信息自定义报警
//P3=1:被定义信息产生后time秒触发报警
//P3=2:被定义信息撤销后time秒触发报警
//P3=3:被定义信息产生并保持time秒触发报警
//P3=4:被定义信息撤销并保持time秒触发报警
//P3=5:被定义信息产生或撤销后time秒触发报警
//P3=6:被定义信息产生或撤销并保持time秒触发报警
begin
  //Legal Check
  if AAlarmType<0 then AAlarmType:= 0;
  if AAlarmType>9 then AAlarmType:= 9;
  if ALong<0 then ALong:= 0;
  if ALong>255 then ALong:= 255;
  if (ATriggerType<0)or(ATriggerType>6) then ATriggerType:= 0;
  //Result
  Result:= Format('SETT,304,%d,%d,%d', [AAlarmType, ALong, ATriggerType]);
  case AAlarmType of
    0: begin ANote:= '取消所有自定义报警'; Exit; end;
    1: ANote:= '车门开';
    2: ANote:= '发动机运转';
    3: ANote:= 'ACC

⌨️ 快捷键说明

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