Модуль "P2KApi" (часть 73) - TP2KAPI.GetVERSION
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
от 07 декабря 2007 г.
function TP2KAPI.GetVERSION(ASelObject: word; var ABuffer: pbytearray; var ACnt: word): boolean; var TCICmd_code, ssize, i : word; pVersion: PTCIFSACStruct; pVersion05: PTCIPacket05; pAnswerData: pbytearray; AnswerSize: dword; pSeemData: pbytearray; x: integer; xx: dword; pFirmWare: pbytearray; str: shortstring;
begin result:= false; if not TelStatus then exit; ssize:=2; TCICmd_code:= $39; i:= 0; Randomize; Random(i); pAnswerData:= AllocMem($FA4); New(pVersion); New(pVersion05); FillTCIFSACStruct(ssize, TCICmd_code, pVersion); FillTCIFSACStructEx(ssize, TCICmd_code, pVersion05); FillMemory(@pVersion.OtherData[0], 8191, 0); FillMemory(@pVersion05.OtherData[0], 8191, 0); i:= convert_word(ASelObject); CopyMemory(@pVersion.OtherData[0], @i, 2); CopyMemory(@pVersion05.OtherData[0], @i, 2); xx:= $2008; pAnswerData:= AllocMem(xx); try if iP2KCF = 0 then begin result:= SendCommand(pVersion, ssize+$10, Pointer(pAnswerData), xx, xP2KTimeOut); if result then begin AnswerSize:= pdword(pAnswerData)^; if pAnswerData[4] = 0 then result:= false else begin result:= true; x:= AnswerSize; //if x-15 <= 0 then begin if x-14 <= 0 then begin result:= false; end else begin result:= true; pFirmWare:= AllocMem(AnswerSize-14); try CopyMemory(@pFirmWare[0], @pAnswerData[18], AnswerSize+3-18 + 1); ACnt:=AnswerSize-14; str:= ''; CopyMemory(@ABuffer[0], @pFirmWare[0], ACnt); result:= true; finally FreeMem(pFirmWare, AnswerSize-14); pFirmWare:= nil end; end; end; end; end else begin result:= SendCommand05(TCICmd_code, pVersion05, ssize, Pointer(pAnswerData), xx, xP2KTimeOut); if result then begin AnswerSize:= xx; result:= false; if xx > 0 then begin result:= true; pFirmWare:= AllocMem(AnswerSize-1); try CopyMemory(@pFirmWare[0], @pAnswerData[1], AnswerSize-1); ACnt:=AnswerSize-1; str:= ''; CopyMemory(@ABuffer[0], @pFirmWare[0], ACnt); result:= true; finally FreeMem(pFirmWare, AnswerSize-1); pFirmWare:= nil; end; end; end; end; finally FreeMem(pAnswerData, xx); pAnswerData:= nil; end; Dispose(pVersion); pVersion:= nil; Dispose(pVersion05); pVersion05:= nil; end;
Еще записи по теме
- Модуль "Справочник" (часть 5) - GetPhoneBookParamsEx
- Модуль "Будильник" (часть 10) - cbAlarmDeletedClick
- Модуль "P2KApi" (часть 31) - TP2KAPI.File_Seek
- Модуль "Пункты меню" (часть 13) - GetMenuNodeAUXData
- Модуль "Пункты меню" (часть 70) - Keypad_LSK_ComboBoxChange
- Модуль "Справочник" (часть 43) - ConvertMemberInVCF
- Модуль "KJavaStructs" (часть 1) - определение переменных и типов данных
