📄 gpsnetcommctrl.pas
字号:
//业务取消
//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 + -