blochの日記

自虐ネタ以外のぐちは書かないようにしましょう

viSetAttribute

いろいろなパラメタを設定する関数viSetAttribute
引数は三つで、戻し値はstat、(vi:ViSession; attribute:Viattr; attrstate:ViAttrState):longword; stdcall;
たとえば、
stat=vi_setattr(visms,VI_ATTR_TERMCHAR,$0a);
のようにして使う。stat < VI_SUCCESSだと失敗。
定数VI_ATTR_TERMCHARは、デリミタを指定することを表す。visa.hやvisa.basに一覧表(それぞれに定数が割り当てられている)があるので、よく読んで必要なconst定義を書き出しておく。とりあえずは、

  • VI_ATTR_TERMCHAR=longword($3FFF0018);
  • VI_ATTR_TMO_VALUE=longword($3FFF001A);
  • VI_ATTR_SEND_END_EN=longword($3FFF0016);

もうひとつ、

  • VI_ATTR_TERMCHAR_EN=longword($3FFF0038);

も必要そうだが、いまいち意味がわからない。
【後記】最後のが、readの際にデリミタを見るかどうかの設定。テキストならEnable、バイナリデータならDisableにする。上のTermCharは、そのデリミタそのものを何にするかの指定。SendEndEnは、Write時に、データの最後にEnd-bitを立てるかどうかの定。残念ながら、End Bitの実体は知らない。