Модуль "Справочник" (часть 4) - GetPhoneBookParams
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
от 07 декабря 2007 г.
function TfrmAT_PhoneBook.GetPhoneBookParams(var xPP: TxPhoneBookParam): boolean;
var
str, tmp, tmp2: string;
x, i, min, max: integer;
xStrLst: TStringList;
begin
result:= false;
if Form1.IsATConnected then
begin
min:= 0; max:= 0;
FillMemory(@xPP, sizeof(xPP), 0);
Logger('*** AT+CPBS=ME');
str:= SendATCommand('AT+CPBS=ME');
Logger(str);
if (str <> '') and (xComPort.ATResult) then
begin
Logger('AT+MPBR=?');
str:= SendATCommand('AT+MPBR=?');
Logger(str);
if (str <> '') and (xComPort.ATResult) then
begin
str:= ParseRevers(str, ':');
Delete(str, 1, 1);
tmp:= ExtractStr(str, ',');
tmp:= ParseRevers(tmp, '-'); xPP.MECount:= strtoint(tmp);
tmp:= ExtractStr(str, ','); xPP.ME_NumberLength:= strtoint(tmp);
tmp:= ExtractStr(str, ','); xPP.ME_NameLength:= strtoint(tmp);
tmp:= ExtractStr(str, ','); xPP.PTypes:= strtoint(tmp);
tmp:= ExtractStr(str, ',');
tmp:= ExtractStr(str, ','); xPP.ME_EmailLength:= strtoint(tmp);
tmp:= ExtractStr(str, ',(');
ExtractStr(str, ',(');
ExtractStr(str, ',(');
//~~~~~~~~
xStrLst:= TStringList.Create;
tmp:= ParseRevers(tmp, '(');
ParseRevers(tmp, ')');
xStrLst.CommaText:= tmp;
for x:=0 to xStrLst.Count-1 do
begin
tmp2:= xStrLst[x];
if Pos('-', tmp2) > 0 then
begin
tmp2:= xStrLst[x];
try min:= StrToInt(ExtractStr(tmp2, '-')); except Logger('ошибка конвертирования в integer ' + tmp2); end;
try max:= StrToInt(tmp2); except Logger('ошибка конвертирования в integer ' + tmp2); end;
for i:= min to max do xPP.AvailRingsNumber[i]:= 1;
end
else begin
i:= StrToInt(tmp2);
xPP.AvailRingsNumber[i]:= 1;
end
end;
xStrLst.Free;
//~~~~~~~~
tmp:= ExtractStr(str, ')');
tmp:= ParseRevers(tmp, '-');
xPP.CategoryRange:= strtoint(tmp);
if iPhoneBookType = 0 then result:= true
else if iPhoneBookType = 1
then begin
Logger('*** Дополнительные поля справочника ****');
Logger(str);
//',(255),25,(0-1,255),264,(0),30,30,30,30,7,20,24,0'#$D#$A#$D#$A'OK'#$D#$A
//,(255),25,(0-1,255),264,(0),30,30,30,30,7,20,24
str:= ExtractStr(str, #13);
tmp:= ExtractStr(str, ')'); Logger(str);
tmp:= ExtractStr(str, ')'); Logger(str);
tmp:= ExtractStr(str, '),'); Logger(str);
//'30,30,30,30,7,20,24,0'#$D#$A#$D#$A'OK'#$D#$A
tmp:= ExtractStr(str, ','); xPP.Street1Length:= strtoint(tmp); Logger(str);
tmp:= ExtractStr(str, ','); xPP.Street2Length:= strtoint(tmp); Logger(str);
tmp:= ExtractStr(str, ','); xPP.CityLength:= strtoint(tmp); Logger(str);
tmp:= ExtractStr(str, ','); xPP.RegionLength:= strtoint(tmp); Logger(str);
tmp:= ExtractStr(str, ','); xPP.PostIndexLength:= strtoint(tmp); Logger(str);
tmp:= ExtractStr(str, ','); xPP.CountryLength:= strtoint(tmp); Logger(str);
tmp:= ExtractStr(str, ','); xPP.NicknameLength:= strtoint(tmp); Logger(str);
end;
end;
end;
str:= '';
Logger('*** параметры sim ***');
Logger('AT+CPBS=SM');
str:= SendATCommand('AT+CPBS=SM');
Logger(str);
if (str <> '') and (xComPort.ATResult) then
begin
Logger('AT+MPBR=?');
str:= SendATCommand('AT+MPBR=?');
Logger(str);
// #$D#$A'+MPBR: 1001-1200,40,26,8,0-1,50,(0-5,10-14,16-19,255),(0),(0-1),(1-30),(255),25,(0-1,255),263,(0)'#$D#$A#$D#$A'OK'#$D#$A
// +MPBR: 1-180,40,20,14,0-1,64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264
if (str <> '') and (xComPort.ATResult) then
begin
result:= true;
str:= ParseRevers(str, ':');
Logger(str);
Delete(str, 1, 1);
tmp:= ExtractStr(str, ','); Logger(str);
min:= StrToInt(ExtractStr(tmp, '-')); Logger(tmp);
max:= StrToInt(tmp);
xPP.TotalRec:= max;
xPP.SMCount:= max-min;
tmp:= ExtractStr(str, ','); xPP.SM_NumberLength:= strtoint(tmp); Logger(str);
tmp:= ExtractStr(str, ','); xPP.SM_NameLength:= strtoint(tmp); Logger(str);
end;
end
else result:= false;
Logger('*** Завершение определения параметров справочника ***');
Logger('AT+CPBS=MT');
str:= SendATCommand('AT+CPBS=MT');
Logger(str);
end;
end;
Еще записи по теме
- Модуль "Flash_SHX" (часть 8) - CG_MarkAsDelete
- Модуль "Flash_Patching" (часть 9) - GetPatchEndAddr
- Модуль "Стили звонка" (часть 5) - GetMelodiesFromPhone
- Модуль "P2KApi" (часть 34) - TP2KAPI.DownLoadFile
- Модуль "P2KFileManager" (часть 9) - UploadFile
- Модуль "Информация АТ" (часть 10) - getFlex
- Модуль "P2KApi" (часть 58) - TP2KAPI.SendFile
