バッファはプリミティブに特化したデータ・コンテナのクラスです。ArrayListクラスなどのコレクションとは異なり,オブジェクトを保持することはできないし,サイズを変更することもできません。また,バッファに異なる型の値を保持することもできません。 これらの機能の制限は,入出力に特化していることに起因しています。基本的に入出力ではバイトが読み書きできればいいので,この割り切りは潔いですね。 バッファの特徴を列挙しておきます。 プリミティブに限定したコンテナ サイズ不変 型の混合は不可 基本的にシーケンシャル・アクセス(ランダム・アクセスも可能) position,limit,capacityという三つのプロパティを持つ ヒープ外のメモリーへの直接アクセスをサポート バッファは,基底クラスとなるjava.nio.Bufferクラスと,intなどの型ごとに定義されている派生クラスから構成されてい
Android Studio などの IDE の大きな利点は、メソッドの使用場所や定義場所へジャンプする機能が優れていることです。ショートカットキーを使いこなすと、実装作業だけでなく、既存コードの分析も効率的に進めることができるようになります。 コード探索に便利なショートカットキー一覧 ショートカットキーの組み合わせはたくさんあってややこしいですが、B キー系のショートカットは定義へのジャンプ、F7 キー系のショートカットは参照箇所へのジャンプと覚えれば迷わずに使用できるようになります。 B キーに関しては、マウスの左クリックで置き換えられるようになっています。 ひとまず、下記を使いこなせばほとんどのケースはカバーできるはずです。 Ctrl-Alt-B – クラス実装、メソッド実装、変数定義へのジャンプ Ctrl-Shift-B – 変数の型(クラス)へのジャンプ Alt-F7 – 参照箇
とりあえずAndroid DeveloperにあるBLEのサンプル(BluetoothLeGatt | Android Developers)をいじって、ペリフェラルのスキャン => 接続 => Characteristic の取得 => HRPで心拍数を取得する処理の流れはひととおりわかった(気がする)。 HRPは心拍数が変わったら通知するだけの単純なプロファイルらしく、あんまり応用がない。 というわけで Characteristic で read/writeしたいのだが、下記のサイトが参考になった。 AndroidのBLEでCharacteristicsのRead/Writeサンプルを作ってみた - ReDo BLEの拡張プロファイルについては下記が参考になりそう。 【BLEを使う】GATT(Generic Attribute Profile)概要 - 叶鋼は午前1時に計算をする An
この記事について この記事では前回に引き続き、RN4020を制御する方法について記載しています。前回まではシリアル通信から制御をおこなっていました。しかし、今回はRN4020のスクリプト機能を使って、スタンドアローンで制御する方法を紹介します。RN4020については以下の記事を参照してください。 masato-ka.hatenablog.com 下記写真のようにスマフォのアプリからBLE経由でLEDの制御が可能です。作業時間10分程度でここまでのことが実現できます。 RN4020のスクリプト制御 RN4020ではシリアル制御のコマンドをRN4020上に記憶させることで外部からの制御なしにスタンドアローンで動作させることが可能となります。スクリプトの制御では予め設定されたイベント(電源ONやBLEの接続イベント、タイマーイベントなど)ごとに処理を記載してBLEデバイスとしての振る舞いを設定し
Androidの画面からアプリケーションが起動されると最初のアクティビティが開始し画面に表示されます。同じアプリの別のアクティビティ(画面)が表示されれば最初のアクティビティは隠れますし、別のアプリが起動して違う画面が表示されることもあります。このように1つ1つのアクティビティは表示されたり隠れたりといったことを繰り返します。このようなアクティビティが開始されて、そして破棄されるまでをアクティビティのライフサイクルと呼んでいます。 下記の図はアクティビティのライフサイクルと、状態が変わる時に呼び出されるメソッドの一覧です。 一見すると複雑な図ですが、実際はそれほど難しいものではありません。順に解説していきます。 アプリを起動しアクティビティが表示 Androidのホーム画面からアプリのアイコンをクリックするとアプリが起動し、最初のアクティビティが画面上に表示されます。 この時、このアクティ
#include "iodefine.h" #include "global.h" #include "vect.h" extern MAIN_STATE main_state; extern MODE_STATE mode_state; extern unsigned char volume; void initIRQ(void); void initIRQ(void){ int i; ICU.IER[8].BYTE = 0x00; //デジタルフィルタ 許可ビット ICU.IRQFLTE0.BYTE = 0x00; ICU.IRQFLTC0.WORD = 0xFFFF;//64clockに1回 //デジタルフィルタ 許可ビット IRQ0-7 ICU.IRQFLTE0.BYTE = 0xFF; PORTD.PDR.BYTE = 0; PORTD.PMR.BYTE = 0
■Javaによる画像処理■ ■田村研での画像処理プログラムについて■ 田村研では,プログラム開発にJavaを使用することとします. 本来,ロボットビジョンの分野ではロボットに搭載されるような小型コンピュータの処理能力が低いため,C言語によって性能をぎりぎりまでチューニングすることが必要とされています.また,intelが開発し現在はオープンソースとして配布されているOpenCVなど既存の画像処理ライブラリや,画像処理用の専用ハードウェアに付属する開発環境もC言語を前提としているものが多いです. なぜJavaなのか しかし,C言語よりもJavaの方がプログラミング自体は楽に行えます.Javaも改良が進み,現在のPCを前提とするならば処理速度に不満が生じることはあまりなくなってきました.そこで,田村研の研究ではJavaにより画像処理プログラミングを行い,動作を確認し,必要なときだけC言語に移植す
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く