| 1 | = 追加情報 = |
| 2 | |
| 3 | MLで出た話題 |
| 4 | == IDN?を送った後で、39文字以降をどう取り扱うか == |
| 5 | {{{ |
| 6 | readType { |
| 7 | out "V"; |
| 8 | in "%s %*#s"; |
| 9 | } |
| 10 | |
| 11 | readVersion { |
| 12 | out "V"; |
| 13 | in "%*s %#s"; |
| 14 | } |
| 15 | }}} |
| 16 | この例ですと、"V"コマンドを送ると型式とバージョン番号を一つの文字列として返してくるのですが、それが40文字以上になってしまっている(実に惜しいことに41文字でした)ので、空白よりも前の文字列を型式として、それよりも後の文字列をバージョン番号としてstringinレコードに格納するようにしました。ここでのポイントは "*" 記号です。詳細はStreamDeviceのドキュメントをご参照ください。この方法ですと、CSSでLabelを2つ並べればあたかも1つの文字列に見えるので、オペレーターから見ると一つの文字列に見えます。 |
| 17 | |
| 18 | |
| 19 | == dbdの中で registrar(drvAsynSerialPortRegisterCommands) を追加しておくこと == |
| 20 | これについては、StreamDeviceというよりもasynのことですが、dbdの中でこのコマンドを書くよりも Makefile の中で |
| 21 | {{{ |
| 22 | (IOC名)_DBD += drvAsynSerialPort.dbd |
| 23 | }}} |
| 24 | とする方が、わざわざ別にdbdファイルを用意する必要が無いので楽です。 |
| 25 | |
| 26 | Socket I/O を使うときには |
| 27 | {{{ |
| 28 | (IOC名)_DBD += drvAsynIPPort.dbd |
| 29 | }}} |
| 30 | VXI-11を使うときには |
| 31 | {{{ |
| 32 | (IOC名)_DBD += drvVxi11.dbd |
| 33 | }}} |
| 34 | |
| 35 | |