18: 2022-02-23 (Wed) 22:14:16 takaboo source Cur: 2022-06-21 (Tue) 23:31:06 takaboo source
Line 326: Line 326:
コンパイルや実行にあたってI/Fやカーネル・ディストリビューションに依存しますので、そのまま使用できない場合は適宜ソースを修正下さい。またWindowsを前提とした_DYNAMICLOADマクロが宣言されているとコンパイルできません。~ コンパイルや実行にあたってI/Fやカーネル・ディストリビューションに依存しますので、そのまま使用できない場合は適宜ソースを修正下さい。またWindowsを前提とした_DYNAMICLOADマクロが宣言されているとコンパイルできません。~
なおI/Fのポート名やボーレート等はサンプル共通として「dxmisc.h」に記述してありますので、環境に応じて修正した上でコンパイルして下さい。~ なおI/Fのポート名やボーレート等はサンプル共通として「dxmisc.h」に記述してありますので、環境に応じて修正した上でコンパイルして下さい。~
-またmacの場合のポート名は「/dev/tty.usbserial-????」ではなく「/dev/cu.usbserial-????」を指定してください。+またmacOSの場合のポート名は「/dev/tty.usbserial-????」ではなく「/dev/cu.usbserial-????」を指定してください。更に最近のmacOSにおける標準の機能ではlatency timeを変更できなかったので、以下のようなコードで対応してみてください(USB I/Fの抜き挿しの度に実行する必要がありますが...)。 
 + 
 +#html{{ 
 +<pre class="brush: c;"> 
 +// brew install libftdi 
 +// cc -I/opt/homebrew/include/libftdi1 -L/opt/homebrew/lib -lftdi1 setlatency.c -o setlatency 
 + 
 +#include <stdio.h> 
 +#include <stdlib.h> 
 +#include <stdbool.h> 
 +#include <ftdi.h> 
 + 
 +int main (void) { 
 +  int result = EXIT_FAILURE; 
 +  struct ftdi_context *ftdic; 
 +  struct ftdi_device_list *devlist; 
 +  bool f = true, b = false; 
 + 
 +  if ((ftdic = ftdi_new ()) != 0) { 
 +   ftdi_set_interface (ftdic, INTERFACE_ANY); 
 +   int num = ftdi_usb_find_all (ftdic, &devlist, 0, 0); 
 +   if (num > 0) { 
 +     for (int i = 0; i < num; i++) { 
 +       printf ("%d: ",i); 
 +       if (ftdi_usb_open_dev (ftdic, devlist[i].dev) == 0) { 
 +         char s[2][512]; 
 +         unsigned char prev_latency; 
 +         if (ftdi_read_eeprom(ftdic) == 0 && ftdi_eeprom_decode(ftdic,0) == 0 && ftdi_eeprom_get_strings(ftdic, s[0], 512, s[1], 512, NULL, 0) == 0) 
 +           printf("[%s][%s] ", s[0], s[1]); 
 +         if (ftdi_get_latency_timer (ftdic, &prev_latency) == 0) { 
 +           b = (ftdi_set_latency_timer (ftdic, 1) == 0); 
 +           printf ("prev latency = %i to %s\n", prev_latency, b ? "1" : "?"); 
 +         } else b = false; 
 +         f = f && b; 
 +       } 
 +       ftdi_usb_close (ftdic); 
 +     } 
 +   } else printf ("no device found.\n"); 
 + 
 +   if (f && b) result = EXIT_SUCCESS; 
 +   ftdi_list_free (&devlist); 
 +   ftdi_free (ftdic); 
 +  } 
 +  return result; 
 +
 +</pre> 
 +}}
**API [#ybae1454] **API [#ybae1454]


Front page   Diff ReloadPrint View   Page list Search Recent changes   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)