VfdLan.Dll
VFD-LANシリーズ用メッセージ制御ライブラリ(DLL for dotnet framework)
開発用ライブラリモジュール無償提供のご案内
VfdLan.Dllは、マイクロソフトのVisual Studio .Netで開発を行う際に便利な、.NetFramework用DLLです。
VFD86Fへメッセージを送信するプログラムと同じフォルダに入れることで、簡単に表示を行うことができます。
VfdLan.DllはVFD86Fを用いたシステムの開発を行う会社に対して提供されます。
VFD86F-LAN、VFD86F-LAN(EM)とあわせてご利用の場合、ライセンスは本体に付属しますので、特別な費用は発生しません。
SendVFDやDispVFDはVfdLan.Dllを呼び出して動作しています。(VfdLan.Dllは標準で付属しています。)
本DLLは、.Net Framework 2.0でビルドを行うことで、Visual Studio 2005, 2008, 2010,
2012からの参照によりご使用いただけます。
コマンド変換系メソッド
VFD86Fで通常取り扱うコマンド文字列は、人間が扱いやすいようにテキスト文字のみで構成され、装置に与えるコマンドは
バイナリを含み、また1つの機能を実現するために複数の操作を行っている。
下記変換コマンドにより、コマンドを送信文字列やコマンド自体を表記文字列に変換したり
コマンドを消去して表示文字のみに変換できる。
DispVFDを使用すると、これらコマンド組み立てをGUI画面にてボタンでコマンドを選択していくことで、
簡単にコマンド文字列の作成を行うことができる。
例
コマンド文字列: ~/B~R1商売~B1繁~R0盛~B0
CmdDecode: [簡B:4桁1行][反転ON]商売[太字ON]繁[反転OFF]盛[太字OFF]
CmdRemove: 商売繁盛
CmdConv: バイナリ文字列による送信データ
説明
~/Bコマンドは簡単初期化により、基本表示モードを4桁1行に設定する。
この画面モードは、漢字4文字が表示域いっぱいに表示する。
~R1コマンドは、文字反転表示をONにする。
反転した状態で「商売」を表示
~B1コマンドは、文字太字表示をONにする。
反転状態のまま、太字の「繁」を表示する。
~R0コマンドは、文字反転表示をOFFにする。
太字で通常(反転しない)「盛」を表示する。
~B0コマンドは、太字をOFFにする。
コードサンプル
' VfdLan.Dllを参照指定し、Imports VfdLanを最初に行っておく。
'
' TCP/IPで送信する
'
Dim Vfd As New clsVfdLan '
Try
' IPアドレス変換
Vfd.IpAdrsText = "192.168.10.1" ' 接続先VFD86FのIPアドレス
' Port番号
Vfd.Port = 10001 ' VFD86F-LANのTCPHost Port
' Vfdタイムアウト設定
Vfd.TimeOut = 5000 ' 5Sec
' メッセージ送信
Vfd.Message = Vfd.CmdConv("~/A最大") ' 2文字画面への初期化及び "最大" 文字列表示
' 送信
Vfd.Send() ' 最初の接続はWindowsのIPオープン処理に時間がかかる
Catch ex As Exception
' VFD86Fエラー
MsgBox(ex.Message, MsgBoxStyle.Critical) ' エラーダイアログ表示
End Try
' リソース開放
Vfd = Nothing
コマンド文字をデコード表示するサンプル
dspCmd.Textはテキストボックス
コードサンプル
Dim vfd As New clsVfdLan
Dim CmdString as string = "~/B~R1商売~B1繁~R0盛~B0"
dspCmd.Text = vfd.CmdDecode(CmdString) ' dspCmdに[簡B:4桁1行][反転ON]商売[太字ON]繁[反転OFF]盛[太字OFF]が表示される
vfd = Nothing
コードサンプル
Dim vfd As New clsVfdLan
Dim CmdString as string = "~/B~R1商売~B1繁~R0盛~B0"
dspCmd.Text = vfd.CmdRemove(CmdString) ' dspCmdに商売繁盛が表示される
vfd = Nothing
プロパティ
IpAdrsText : String
固定IPを設定する
'192.168.100.100'形式の、数字とピリオドによるテキスト形式で、接続先のIPを指定する。
IpAdrs : IPAddress
固定IPを設定する
WindowsのIPAddress形式で接続先のIPを指定する。
Port : Integer
ポートを設定する
0〜65535の数値でTCP/IPのPortを指定する。
PortText : String
ポートを設定する
0〜65535の文字列でTCP/IPのPortを指定する。
TxTimeout : Integer
TCP/IP送信タイムアウトの設定
mS単位。初期値10000=10秒
※本値はWindowsのSocket Serviceの送信TimeOutに引き渡す値です。
Message : String
送信メッセージ
送信するコマンドを含む文字列を指定する
ErrorMsg : String ReadOnly
送信エラーメッセージ - 最後の送信のエラーメッセージを返す
Image : Byte()
Imageデータ
送信するイメージデータをバイト配列に入れて指定する
Decode : Boolean
コマンドデコード
CmdConvメソッド実行の際、DispModeパラメータを与えない場合のデコードモード指定をする。
Mode : modeVfdTcp
TCP送信モード
テキスト/イメージを指定する。テキストとイメージは1回の送信で、同時には送信できない。
modeVfdTcp = 0:Text, 1:Image
TimeOut : Integer
TimeOut mS Period
※WindowsのSocket Serviceの送信TimeOutは、ターゲットIPのポートがオープンできない場合、長い時間(30秒〜)Windowsから応答がなくなります。
※本値はTCP/IPソケット全体に対し、タイムアウトが発生した(応答がない)場合、Windows Socketサービスを強制的に終了させます。
DispMode : Boolean
表示モード設定
メソッド
New クラス初期化メソッド(コンストラクタ)
Exsample
Dim vfd As New clsVfdLan
Send コマンドを含むメッセージを送信する。
CmdRemove(コマンド文字列 As String) As String
コマンド文字列の中からコマンドを削除し、実際に文字として表示される文字列のみに変換する。
CmdDecode(コマンド文字列 As String) As String
コマンドをデコードして、コマンドを名称文字列に変換する
CmdConv(コマンド文字列 As String) As String
コマンドをデコードして、送信用のバイナリを含む送信データ(文字列)に変換する
下記コマンドはDispVFD/SendVFDで使用されるコマンドです。
詳細は、ソフトウェアマニュアルをご参照ください。
VFD コマンド
VFD コマンド
' 256*64用
~/A [簡A:2桁1行]
~/B [簡B:4桁1行]
~/C [簡C:8桁1行]
~/D [簡D:4桁2行]
~/E [簡E:8桁1行]
~/F [簡F:8桁2行]
~/G [簡G:16桁1行]
~/H [簡H:16桁2行]
~/I [簡I:16桁4行]
' 512*32用
~/L [簡L:4桁1行]
~/M [簡M:8桁1行]
~/N [簡N:16桁1行]
~/O [簡O:8桁2行]
~/P [簡P:16桁2行]
~/Q [簡Q:32桁2行]
~/R [簡R:32桁1行]
' 384*32用
~/S [簡S:3桁1行]
~/T [簡T:4桁1行]
~/U [簡U:6桁1行]
~/V [簡V:12桁1行]
~/W [簡W:6桁2行]
~/X [簡X:8桁2行]
~/Y [簡Y:12桁2行]
~/Z [簡Z:24桁2行]
'初期化系コマンド()
~@@ [表示初期化]
~@S [モード初期化]
~@I [装置初期化]
~@O [カーソル原点移動]
~@F [表示電源OFF]
~@N [表示電源ON]
'
'フォント
' #A Font 8dot
' #B Font 16dot
' #D Font 32dot
~#A [8dotFont]
~#B [16dotFont]
~#D [32dotFont]
'倍角
' #0 Scale H1,V1
' #** Scale H1-4,V1-4
~#0 [倍角解除]
~#11 [倍角H1,V1]
~#12 [倍角H1,V2]
~#13 [倍角H1,V3]
~#14 [倍角H1,V4]
~#21 [倍角H2,V1]
~#22 [倍角H2,V2]
~#23 [倍角H2,V3]
~#24 [倍角H2,V4]
~#31 [倍角H3,V1]
~#32 [倍角H3,V2]
~#33 [倍角H3,V3]
~#34 [倍角H3,V4]
~#41 [倍角H4,V1]
~#42 [倍角H4,V2]
~#43 [倍角H4,V3]
~#44 [倍角H4,V4]
'
'表示モード制御系コマンド()
' CS(ClearScreen)
' LF(LineFeed)
' CR(CaridgeReturn)
' HM(Home)
' MR Move Right
' ML Move Left
~CS [ClearScleen]", Chr(&HC)
~CL [CRLF] ~CR" & "~LF"
~CR [CR]", Chr(&HD)
~LF [LF]", Chr(&HA)
~HM [CursorHome]", Chr(&HB)
~MR [MoveRight]", Chr(&H9)
~ML [MoveLeft]", Chr(&H8)
'国別
' \A USA
' \I 日本
~\A [国際文字セット:アメリカ]
~\B [国際文字セット:フランス]
~\C [国際文字セット:ドイツ]
~\D [国際文字セット:イギリス]
~\E [国際文字セット:デンマークⅠ]
~\F [国際文字セット:スウェーデン]
~\G [国際文字セット:イタリア]
~\H [国際文字セット:スペインⅠ]
~\I [国際文字セット:日本]
~\J [国際文字セット:ノルウェー]
~\K [国際文字セット:デンマークⅡ]
~\L [国際文字セット:スペインⅡ]
~\M [国際文字セット:ラテンアメリカ]
~\N [国際文字セット:韓国]
' \a USA
' \b カタカナ
~\a [キャラクタ:PC437]
~\b [キャラクタ:カタカナ]
~\c [キャラクタ:PC850]
~\d [キャラクタ:PC860]
~\e [キャラクタ:PC863]
~\f [キャラクタ:PC865]
~\q [キャラクタ:WPC1252]
~\r [キャラクタ:PC866]
~\s [キャラクタ:PC852]
~\t [キャラクタ:PC858]
~\z [キャラクタ:UserTable]
'表示属性系コマンド
' B1 Bold On
' B0 Bold Off
' R0 Reverse Off
' R1 Reverse On
~B1 [太字ON]
~B0 [太字OFF]
~R1 [反転ON]
~R0 [反転OFF]
'書き込みモード()
' <M Move
' <O OR
' <X ExOR
' <A And
~<M [上書]
~<O [OR書込]
~<A [AND書込]
~<X [ExOR書込]
'
' 枠
'
~[W] [二重枠]
~[B] [太枠]
~[] [枠]
'
' !* Intensity 0-9
0:0%,1:12.5%,2:25%,3:37.5%,4:50%,6:62.5%,7:75%,8:87.5%,9:100%
'
~!0 [輝度0%]
~!1 [輝度12.5%]
~!2 [輝度25%]
~!3 [輝度37.5%]
~!4 [輝度50%]
~!5 [輝度62.5%]
~!6 [輝度75%]
~!7 [輝度87.5%]
~!8 [輝度100%]
~!A [輝度0%]
~!B [輝度25%]
~!C [輝度50%]
~!D [輝度75%]
~!E [輝度100%]
'
'スクロール()
' >1 上書き
' >2 横スクロール
' >3 縦スクロール
~>1 [NoScroll]
~>2 [VScroll]
~>3 [HScroll]
~>0 [Scroll_0]
~>A [Scroll_1]
~>B [Scroll_2]
~>C [Scroll_3]
~>D [Scroll_4]
~>E [Scroll_5]
~>F [Scroll_6]
~>G [Scroll_7]
~>H [Scroll_8]
~>> [速度優先HScroll] 横scrollに設定し、速度優先モードにする。
~>= [品質優先HScroll] 横scrollに設定し、品質優先モードにする。
~>{nn 連続スクロールメッセージ設定 nnは送信データ長Hex(コマンド長とは異なる。 cmdconv長さ)
~>}ttww 連続スクロールメッセージ実行 XXタイミングHex, 間隔Hex
' 年月日時分秒
' :Y4
' :GG
' :YY
' :MM
' :DD
' 時間
' :HH 時[24]
' :H1 時[12]
' :AP AM/PM
' :NN 分
' :SS 秒
' 標準書式
~::D [lDate]
~::d [sDate]
~::F [lDate lTime]
~::f [lDate sTime]
~::G [General Date]
~::g [sDate sTime]
~::M [mDate]
~::m [mTime]
~::T [lTime]
~::t [sTime]
' ユーザ定義書式
~:d4 [Week1]
~:d3 [Week]
~:dd [日]
~:%d [日1]
~:GG [暦]
~:HH [時24]
~:%H [時1]
~:hh [時12]
~:%h [時1]
~:M4 [月4]
~:M3 [月3]
~:MM [月]
~:%M [月1]
~:mm [分]
~:%m [分1]
~:ss [秒]
~:%s [秒1]
~:%T [AMPM]
~:tt [AMPM1]
~:y4 [年4]
~:y3 [年3]
~:yy [年2]
~:%y [年1]
'
' Wait
'
~]0 [Wait0.014Sec]
~]1 [Wait0.1Sec]
~]2 [Wait0.2Sec]
~]3 [Wait0.3Sec]
~]4 [Wait0.4Sec]
~]5 [Wait0.5Sec]
~]6 [Wait0.6Sec]
~]7 [Wait0.7Sec]
~]8 [Wait0.8Sec]
~]9 [Wait0.9Sec]
~]A [Wait1Sec]
~]B [Wait2Sec]
~]C [Wait3Sec]
~]D [Wait4Sec]
~]E [Wait5Sec]
~]F [Wait6Sec]
~]G [Wait7Sec]
~]H [Wait8Sec]
~]I [Wait9Sec]
~]J [Wait10Sec]
'表示位置指定コマンド()
'
' 画面8ドットを1ブロックとしたポジション指定(8DotFont)
'
' =** Position 0-9A-V,0-7 水平 32Position, 0-7垂直8Position
'
' 0123456789ABCDEFGHIJKLMNOPQRSTUV WXYZabcdefghijkl mnopqrstuvwxyz@_
' 水平位置 00000000001111111111222222222233 3333333344444444 4455555555556666
' 01234567890123456789012345678901 2345678901234567 8901234567890123
~= ~=hv
'全画面反転点滅
'
' ~_Bnnrrrr nn:Hex 01-FF Normal画面表示タイミング:1XmS*Hex, rr:Hex 01-FF
Reverse画面表示タイミング, cc:Hex 01-FF Repeat 00=Continue
'
' 表示タイミングは1単位を13mS(VFD384L),14mS(VFD86F、VFD512H)とした単位時間で16進数で指定する
' 1単位が13mSの場合、16進数で10と指定すると、10進数では16をあらわすので 13mS*16 = 208mS = 約0.2秒となります。
' ~_B203004 1単位が13mSの場合、通常表示約0.4秒 反転表示時間約0.6秒で4回繰り返し表示します。(約1秒周期で4回ブリンクします。)
'
'全画面点滅
'
' ~_Fnnrrrr nn:Hex 01-FF Normal画面表示タイミング:1XmS*Hex, rr:Hex 01-FF ブリンク画面表示タイミング,
cc:Hex 01-FF Repeat 00=Continue
'
'文字コード送信コマンド()
' $** Hex
'繰返し
'
' 繰り返しメッセージ定義
'
繰返し定義
256Byteまでの内部コマンド列を繰り返しメッセージとして定義する
繰返し実行
次のコマンドがくるまで、繰り返し定義をリピート表示する
※本情報は開発中の内容に伴い、内容が変更になる場合がございます。
参考
Last Update:2013/03/08
|