Lazarus

May 27, 2017

Lazarus 1.8RC1からIndustrialパッケージが無くなってる

先日、Lazarus1.8RC1がリリースされました。

とりあえずインストールしてみたところ、パッケージの再構築でIndustrialパッケージが
なくなっていました。

「Move Industrial package from Lazarus sources to CCR.」とのことです。

見た目の良さならBGRA関連のコントロールを使用したほうが良いようです。

以前のIndustrial関連コンポーネントを使用してるフォームを開きたい場合は、
Lazarus Code and Component Repositoryから入手できます。

https://sourceforge.net/projects/lazarus-ccr/?source=directory 

SVNからスナップショットをダウンロードしてパッケージをインストールしてください。

https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/

componentsのindustrialstuffをインストールします。

November 20, 2016

LazarusでFirebirdのSEQUENCEを使うには

SQLQueryにはSequenceというプロパティがあります。

FieldName:  フィールド名
SequenceName:  シーケンス名
IncrementBy:  増減値、デフォルトは1
ApplyEvent: イベント適用タイミング(saeOnNewRecord)

以上を、セットするだけです。
ただ、日本語のフィールド名、シーケンス名を使うときは注意が必要です。
どちらか一方は""付きの指定で無いとエラーになった気がします。

November 17, 2016

Lazarus 1.6.2

Lazarus 1.6.2がリリースされました。

FPCのバージョンはそのままです。

August 25, 2016

Lazarus ARM リモートデバッグ (Remote Debug) 2016/8/28修正

プログラムを止められない環境下のデバッグでなければ、デバッガを使うほうがずっと楽です。

つい先日までは、Rasberry Pi3で実行ボタンをクリックしてビルド+実行しようとすると実行時にデバッガエラーで止まってしまいまししたが、今はそのまま実行できるようです。

UbuntuのソフトウェアセンターからインストールしたLazrus Ver1.6は未確認なので、相変わらず実行出来ないかもしれません。

さて、今回はリモートデバッグについてです。
Rasberry Pi3で、セルフでLazrusを動かすことも出来ますが、規模が大きなプログラムになると、やはり速度が気になってきます。 

Lazarusのクロス開発環境の設定も面倒ですが、されらに大変なのがクロスデバッガの設定です。情報を検索しても中途半端だったり、新旧の情報が入り混じってたりで手順がわからず途方にくれてる人も多いようです。

此処で簡単に手順を紹介します。(XG-BBEXT系の説明です、RaspberryPi3で確認したらまた情報をアップします)

① Buildrootにてopensshパッケージを選択しビルドします。
  (あるいはopensshパッケージをインストールします。)

  ボードを起動したら、rootのパスワード設定をします。
  リモートから「ssh root@IPアドレス」でログインできることを確認します。

② リモートマシンにてRSA認証設定をします。

  ファイル[/etc/sshd_config]の以下の2行のコメント「#」を外します
  ---------------------------------------------------------
  RSAAuthentication yes
  PubkeyAuthentication yes
  ---------------------------------------------------------
  修正が終わったら、以下のコマンドでsshdを再起動します(電源入れ直しでもOK)

  # /etc/init.d/S50sshd restart

③ ローカルマシンにて公開・非公開キーを生成します。

  ローカルマシンに以下の2つのファイルを生成します。
  ~/.ssh/id_rsa
  ~/.ssh/id_rsa.pub
  これらのファイルがすでに存在するときは、この手順は飛ばして下さい。

  $ ssh-keygen -t rsa
  (デフォルトのまま、パスフレーズは空白のままにして下さい。 )

④ リモートマシンにファイル「~/.ssh/authorized_keys2」を作成する。

  $ ssh user@remotecomp
  $ mikdir ~/.ssh
  $ touch ~/.ssh/authorized_keys2
  $ chmod 600 ~/.ssh/authorized_keys2

⑤ ローカルマシンの公開キーをリモートマシンにコピーする。

  $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@IPアドレス

⑥ テスト
  パスワード無しでログインできるかどうか、テストします。

  $ ssh root@IPアドレス

⑦ IDEのデバッガ設定

  Lazrusのメニュー[ツール]-[オプション]にてIDEオプションダイアログを表示し、
  [デバッガ]を選択します。

  デバッガの種類はgdbserverを選択します。
  ローカル側のデバッガはBuildrootにて作成されたgdbデバッガを指定します。

  例えば、
/home/guest/xgbbext-lk/buildroot-2013.11-xgbbext-1.1/output/host/usr/bin/arm-linux-gnueabihf-gdb
  (シンボリックリンクの場合は、元のgdbのフルパスが表示されます)

⑧ リモート側にビルドされたアプリケーションを配布(scp,ftp,nfsなどで)

⑨ アプリケーションのデバッグ

  リモート側にてアプリを起動(待機)

  # gdbserver host:2345  ./アプリケーション

⑩ ブレークポイントの設定(必要なら)

⑪ 実行

注意:

④項を追加しました(2016/08/28)

August 24, 2016

LazLogger

デバッガでのデバッグは便利なのですが、 通信や機械を制御してる場合などでは通常ブレークポイントで停止することは出来ません。 このような場合にログ機能を使用することができます。

LazLoggerを使用するには

lazloggerunitに追加するだけでLazLoggerを使用することが出来ます。。

メニュー「ソース」-unituses節に追加」にてuses節にunitを追加ダイアログを表示させます。 そしてlazloggerを選択して、OKボタンをクリックします。

(すべてのユニットを表示をチェックしてない場合、ユーザのアプリ関連のunitしか表示されないので、クチェックしておきます)

 

 

 

 

 

 

使用方法

基本的には、write, writelnに近いですが、機能が追加されています。

① DebugLn: WriteLnと同じです(改行)

② DebugLnEnter/DebugLnExit: debuglnと同じですが、

  字下げの増加、減少をします

③ DbgOut: writeと同じ動作です

 

引数の書き方には以下の方法があります

① 単一文字列または(最大15個までの)文字列の並び

  DebugLn('Foo');

  DbgOut('a','b');

② 定数の配列

  DebugLn(['Foo=', 1, ' Bar=', anInteger]);

③ Format()関数と同じ書式(文字列+定数の配列)

  DbgOut('a %d',[1]);

 

dbgs関数では標準的な型を文字列に変換することができます。

/usr/share/lazarus/1.6/components/lazutils/LazLoggerImpl.inc」にて定義されています。

出力先

通常はstdoutに出力されます。

stdoutがクローズ状態の時は出力されません。(アプリケーションが {$AppType Gui}のとき、またはWindows において -WGオプションにてコンパイルされた時)

 

ファイルにログを書き出すこともできます。 LazLoggerは初期化の時に以下のことをします。

コマンドライン引数「 --debug-log=<file> (Lazarusから実行するときは: 「実行」-「実行パラメータ」-「コマンドライン引数」)をチェックします。 このパラメータが存在すれば、以降のデバッグ出力は<file>に書きだされます。

--debug-log=<file>」が存在しない時は、OSの環境変数に xxx_debuglogが存在するかどうかチェックします(ここでxxxは拡張子なしのプログラムファイル名)。該当する環境変数が存在すれば、デバッグ出力はそのファイルに書きだされます。

 

マルチスレッド

debuglnはスレッドセーフではありません。

対処としては

① Synchronizeをスレッド内で使用し、メインスレッドにてdebuglnが実行されるようにします。

② DbgOutThreadLogを使用することにより、 ファイル「'Log'+IntToStr(GetThreadID)」に

  ログを書き出すことができます。

 

 

August 23, 2016

Raspberry Pi3 Lazarusのインストール

Raspberry Pi3にLazarusをインストールするには、いくつかの方法がありますが、最新版(Ver1.7)のインストールには此処が参考になります。

http://www.getlazarus.org/setup/?download#raspberry_pi


要約すると以下の手順となります。

① セットアップスクリプト「setup.sh」をダンロードし、ホームディレクトリ(/home/pi)に保存します。


② ホームディレクトリにて、以下のコマンドにてインストールを行います。

$ chmod +x setup.sh

$ ./setup.sh

必要なパッケージがインストールされていない時は、インストールするように指示されますので、表示されたインストールコマンドをコピペしてパッケージをインストールし、再度setup.shを実行します。

③ ログアウトして入り直せば、プログラミングのメニューにLazarusが追加されています。

August 11, 2016

Pascalの人気は?

TIOBE Index

Pascalはもう廃れた言語だっていう人が多いのですが、

TIOBE Indexの2016年8月のランクでは、去年の14位から11位に上がってます。

Delphi/Ojbect Pascalのグラフを見ると、2014年から少しずつ上昇してます。

8月の上昇率は…Grooby, Gooについで3位の+0.87%です。

LazrusとRaspberry Piの影響がじわじわ出てるのかもしれないですね。

それと、特筆すべきは、アセンブラ言語・・・伸びてます。
ARMの影響も少なからずあるのでは…

August 02, 2016

Lazarus/Rasberry Piのライブラリ集(Platform eXtended Library )

Platform eXtended Library (PXL)

Afterwarp DevelopmentのPlatform eXtended Librayはクロスプラットフォーム用のライブラリで、ゲームを始めとするグラフィックス、ハードウェア、通信などをサポートするものです。

Raspberry Piもサポートされており、OpenGL、GPIO、I2Cなどの制御も簡単に出来ます。
ボードコンピュータ用に、カメラでキャプチャするときのためのV4L2ライブラリなども用意されています。



March 01, 2016

組込みLinuxセミナ

私が担当する、28年度のポリテク浜松のセミナーです。

Linuxによる組込みシステム開発技術-シリアル通信編-                 6/9,10

Linuxによる組込みシステム開発技術-TCP/IP・UDP編-                 7/7,8

Linuxによる組込みシステム開発技術-Webサーバ構築編-                 11/10,11

Linuxによる組込みシステム開発技術-データベースサーバ構築編-                 12/8,9

(注意:Webサーバ構築編と、データベースサーバ構築編はまだリンク先が作成中のようです:タイトルも修正になる可能性が…)

各セミナーは2日間で

1日目: 概要説明、サンプルプログラム(CまはたFPC)による実習

2日目: テーマによるプログラミング実習

ターゲットボードはRaspberryPie2 と XG-BBEXT(BeagleBone Black)を使用します。

実習で使用する言語はC、C++、FPC(Object Pascal)あるいは開発環境がサポートする受講者の希望する言語となりますが、FPC(Object Pascal)以外の言語については対象となる言語をマスターしていることが必要となります。

開発環境はLazarus、Eclipse、QtCreatorを使用します。
Eclipse、QtCreatorについての操作説明は行いません。

February 20, 2016

Lazarus 1.6が公開されました。

Lazarus1.6が公開されました。

FPCはVer3.0です。

ダウンロードは、こちらから

http://www.lazarus-ide.org/

ついでに、このブログの右側のLazarusのリンクに、
www.getlazarus.orgのリンクを追加しました。
Lazarus/FPCのドキュメントでは検索が出来ますので、lazarusの
HELPメニューで開く、オンラインヘルプより便利です。

より以前の記事一覧

November 2017
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

大規模災害に備える

他のアカウント

無料ブログはココログ

Recent Trackbacks