📄 unit2.~pas
字号:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, AdPort;
procedure init_pdu_mssage_0() ;
function init_port_test_0 ( ApdComPort1: TApdComPort ) : boolean;
procedure set_pdumsg_1 ( index: integer; data: string );
procedure send_msg_first (ApdComPort1: TApdComPort);
procedure send_msg_second (ApdComPort1: TApdComPort);
procedure T_send ( ApdComPort1: TApdComPort; phone : string ; Msg : string );
function change_telcode ( s : string ) : string;
var
g_pdu_Mssage : array [1..13] of string;
t_pdu_mssage : array [1..13] of string;
s_status : integer;
rec_s : string = '';
snd_s : string = '';
implementation
function Encode2 ( s:WideString ): String;
var
i,len:Integer;
cur:Integer;
t:String;
begin
Result:= '';
len:=Length(s);
i:=1;
while i<=len do begin
cur:=ord(s[i]);
FmtStr(t, '%4.4X', [cur] );
Result:=Result+t;
inc(i);
end;
end;
function change_telcode ( s : string ) : string;
var
i : integer;
s1 : string ;
begin
s := trim ( s );
if length ( s ) = 11 then begin
s := '86'+s;
end;
s := s + 'F';
s1 := ' ';
for i := 1 to length(s) do begin
if odd ( i ) = true then begin
s1[i] := s[i+1];
end else begin
s1[i] := s[i-1];
end;
end;
result := s1;
end;
procedure set_pdumsg_1 ( index: integer; data: string );
begin
g_pdu_mssage[index] := data;
end;
procedure init_pdu_mssage_0() ;
begin
g_pdu_mssage[1] := '08';
g_pdu_mssage[2] := '91';
g_pdu_mssage[3] := '683108200305F0';
g_pdu_mssage[4] := '11' ;
g_pdu_mssage[5] := '00';
g_pdu_mssage[6] := '0D';
g_pdu_mssage[7] := '91';
g_pdu_mssage[8] := '';
g_pdu_mssage[9] := '00';
g_pdu_mssage[10] := '08';
g_pdu_mssage[11] := '00';
g_pdu_mssage[12] := '';
g_pdu_mssage[13] := '';
end;
function init_port_test_0 ( ApdComPort1: TApdComPort ): boolean;
begin
ApdComPort1.Output := 'AT+CGMI' + #13;
s_status := 1;
result := true;
end;
procedure send_msg_first (ApdComPort1: TApdComPort);
var n : integer;
s1 : string ;
begin
n := length ( snd_s ) div 2 - 9 ;
s1 := format ( '%x', [n] ); if n < 16 then s1 := '0' + s1;
s1 := 'AT+CMGS='+ s1 + #13;
ApdComPort1.Output := s1;
s_status := 11;
end;
procedure send_msg_second (ApdComPort1: TApdComPort);
begin
SLEEP ( 1000 );
ApdComPort1.Output := snd_s + #26;
s_status := 12;
end;
procedure T_send ( ApdComPort1: TApdComPort; phone : string ; msg : String );
var t_s1, s0, s1 : string;
n, i : integer;
begin
s_status := 10;
s0 := change_telcode ( phone );
set_pdumsg_1 ( 8, s0 );
t_s1 := Encode2 ( WideString ( msg ) );
n := (length ( t_s1 ) div 2) ;
s1 := format ( '%x', [n] );
if length( t_s1 ) div 2 < 16 then s1 := '0' + s1;
set_pdumsg_1 ( 12, s1 );
set_pdumsg_1 ( 13, t_s1 ) ;
snd_s := '';
for i := 1 to 13 do begin
snd_s := snd_s + g_pdu_mssage[i] ;
end;
send_msg_first (ApdComPort1);
end;
initialization
init_pdu_mssage_0 () ;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -