milosev.com
  • Home
    • List all categories
    • Sitemap
  • Downloads
    • WebSphere
    • Hitachi902
    • Hospital
    • Kryptonite
    • OCR
    • APK
  • About me
    • Gallery
      • Italy2022
      • Côte d'Azur 2024
    • Curriculum vitae
      • Resume
      • Lebenslauf
    • Social networks
      • Facebook
      • Twitter
      • LinkedIn
      • Xing
      • GitHub
      • Google Maps
      • Sports tracker
    • Adventures planning
  1. You are here:  
  2. Home

Developing WinCE and Windows mobile applications

Details
Written by: Stanko Milosev
Category: Lazarus
Published: 12 November 2011
Last Updated: 30 November -0001
Hits: 5380

In the project source you will probably need something like:

Application.ApplicationType:=atPDA

Enable RF for DENSO BHT-200BW-CE devices using late binding

Details
Written by: Stanko Milosev
Category: Lazarus
Published: 12 November 2011
Last Updated: 18 December 2011
Hits: 6094

This is one example of late binding using Lazarus, and example of disabling radio frequency DENSO BHT-200BW-CE devices, API manual you can download from here.

...
uses dynlibs;

...

procedure TForm1.Button4Click(Sender: TObject);
type
  TBHT_RF_CloseEx = function(_opt:DWord): DWord; stdcall;
var
  BHT_RF_CloseEx : TBHT_RF_CloseEx;
  FDllHandle: TLibHandle;
  intRes: DWord;
  intError: Integer;
begin
  FDllHandle := LoadLibrary('BHTLib.dll');
  intError := GetLastError;
  if FDLLHandle = NilHandle then begin
   ShowMessage(SysErrorMessage(intError) + ' (Error ' + IntToStr(intError) + ')');
  end else begin
    BHT_RF_CloseEx := TBHT_RF_CloseEx(GetProcedureAddress(FDllHandle, 'BHT_RF_CloseEx'));
    intError := GetLastError;
    if BHT_RF_CloseEx = nil then begin
      ShowMessage(SysErrorMessage(intError) + ' (Error ' + IntToStr(intError) + ')')
    end else begin
      intRes := BHT_RF_CloseEx(1);
    end;
  end;
end;

Another example is:

procedure TForm1.Button4Click(Sender: TObject);
type
  TBHT_RF_CloseEx  = function(_opt:DWord): DWord; stdcall;
var
  BHT_RF_CloseEx : TBHT_RF_CloseEx;
  p: pointer;
  FDllHandle: TLibHandle;
  intRes: DWord;
  intError: Integer;
begin
  FDllHandle := LoadLibrary('BHTLib.dll');
  intError := GetLastError;
  if FDLLHandle = NilHandle then begin
   ShowMessage(SysErrorMessage(intError) + ' (Error ' + IntToStr(intError) + ')');
  end else begin
    p := GetProcAddress(VBHTLibHandle, 'BHT_RF_CloseEx');
    if p <> nil then begin
      Pointer(BHT_RF_CloseEx) := p;
    end;
    intError := GetLastError;
    if BHT_RF_CloseEx = nil then begin
      ShowMessage(SysErrorMessage(intError) + ' (Error ' + IntToStr(intError) + ')')
    end else begin
      intRes := BHT_RF_CloseEx();
    end;
  end;
end;

For opening and closing you can use:

BHT_RF_Open() (*1)
BHT_RF_Close() (*2)
BHT_RF_OpenEx(COMM_CONTINUOUS)
BHT_RF_CloseEx(COMM_CONTINUOUS)

(*1) Includes BHT_RF_OpenEx(COMM_NORMAL)
(*2) Includes BHT_RF_CloseEx(COMM_NORMAL)

Where COMM_CONTINUOUS is 1, and COMM_NORMAL is 0 (I hope)

Establishing GPRS Connection on Windows CE and Windows Mobile

Details
Written by: Stanko Milosev
Category: Lazarus
Published: 09 November 2011
Last Updated: 18 December 2011
Hits: 6726

Code is taken from here, and translated to Lazarus.

Dialing:

uses ras

...
var
  rasDialParam:RASDIALPARAMS;

  pRasConn:HRASCONN;

  dwResult: DWORD;

begin
  pRasConn := null;

  FillChar(rasDialParam, SizeOf(RASDIALPARAMS), 0);
  rasDialParam.dwSize:=SizeOf(RASDIALPARAMS);
  rasDialParam.szCallbackNumber[0]:=#0;
  rasDialParam.szDomain[0]:=#0;
  rasDialParam.szEntryName:='ConnName'; //important, name of the connection which I want to use
  rasDialParam.szPassword:='pass'; //important, if pass or user is wrong, then I will receive error code 619
  rasDialParam.szPhoneNumber[0]:=#0; 
  rasDialParam.szUserName:='user'; //important

  dwResult := RasDial(nil, nil, @rasDialParam, null, nil, @pRasConn);
  if dwResult = ERROR_SUCCESS then
    ShowMesage('It is working')
  else
    ShowMesage('Error: ' + IntToStr(dwResult))

Get connection status:

...
var
  dwResult: DWORD;
  MyRasconnstatus: RASCONNSTATUS;
...
 dwResult := RasGetConnectStatus(VRasConn, @MyRasconnstatus);
 if dwResult = ERROR_SUCCESS then 
 begin
   if MyRasconnstatus.rasconnstate = RASCS_Connected then 
   begin
     ShowMessage('Connected')
   end 
   else 
   begin
     ShowMessage('Not connected')
   end;
 end;

Hang up:

 RasHangUp(VRasConn)

List of error codes you can find here, or here.

Extracting GPS coordinates from a large number of photos

Details
Written by: Stanko Milosev
Category: Downloads
Published: 22 March 2025
Last Updated: 22 March 2025
Hits: 815

Fast Extraction of GPS Coordinates and Saving to CSV, JSON, or a Database

Usage:

BatchExtractGpsCoordinates.exe folder:C:\ csvFile:test.csv jsonFile:test.json connectionString:"Server=myServer;Database=myDb;User Id=myUser;Password=myPass;TrustServerCertificate=True;" tableName:GpsInfo

Notes:

  • The parameters csvFile, jsonFile, and connectionString are optional, but at least one of them must be provided.
  • If connectionString is set but tableName is not, the default table name GpsInfo will be used.
  • A log file named BatchExtractGpsCoordinates.log will be automatically created in the same folder as BatchExtractGpsCoordinates.exe

Download the EXE in ZIP format from here; the source code can be found here.

  1. Validation of XML Files for Electronic Invoicing
  2. Reminder
  3. Just another real time tracking app
  4. Android application package (APK)

Subcategories

C#

Azure

ASP.NET

JavaScript

Software Development Philosophy

MS SQL

IBM WebSphere MQ

MySQL

Joomla

Delphi

PHP

Windows

Life

Lazarus

Downloads

Android

CSS

Chrome

HTML

Linux

Eclipse

Page 136 of 166

  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140