📄 gpsnetcommctrl.pas
字号:
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 + -