Archive for the 'PowerMate' Category

2013/09/18 PowerMateをAppleScriptからコントロール

GriffinTechnologyのボリウム型USBデバイス「PowerMate」をAppleScriptからコントロールするサンプルです。

r0015872.JPG

登場から10年以上経過していますが、いまだにGriffin Technologyでは販売を継続しているようで、コンピュータの周辺機器としては異例の長寿商品。わが家では引き出しのコヤシと化して久しく、Web上で調べものをしていていまだに現役商品であることを知って腰を抜かしたぐらいです。おそらく、blink(1)などの類似LEDデバイスがたくさん世に出てきても、PowerMateは生き残ることでしょう。

GriffinTechnologyでは、Mac OS X 10.6以降用のOS向けにPowerMateドライバ3.0をリリースしており、これはドライバと言っているものの……普通のアプリケーションです。

そのため、このPowerMateアプリを終了させるとコントロールできなくなります。

power1.png
▲昔、GriffinTechnologyが配布していたツールの末裔に見える……

PowerMateアプリ側で、回転、押すなどのアクションに対して、キーストロークの設定やAppleScriptの実行などを指定できるようになっていますが、このPowerMateアプリ自体がScriptableになっており、このPowerMateアプリにAppleScriptから命令することで、状態を取得したり設定できます。

PowerMateアプリ3.0では、複数のPowerMateデバイスが接続されている場合でもそれぞれのPowerMateデバイスを識別して命令できるようになっています。

スクリプト名:PowerMateで接続されているデバイス一覧を取得する
tell application "PowerMate"
  set aList to every device
  
–> {device id "14100000" of application "PowerMate"}
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

スクリプト名:PowerMateデバイスの状態を取得する
tell application “PowerMate”
  tell device 1
    properties
  end tell
end tell
–> {class:device, id:”14100000″, brightness:0.1, should pulse:false, pulse rate:0.0, name:”PowerMate 1″}

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

スクリプト名:PowerMateデバイスの名前を変更する
tell application “PowerMate”
  tell device 1
    set name to “Piyomaru PowerMate”
    
properties
    
–> {class:device, id:”14100000″, brightness:0.1, should pulse:false, pulse rate:0.0, name:”Piyomaru PowerMate”}
  end tell
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

スクリプト名:PowerMateデバイスの点滅設定を変更
tell application “PowerMate”
  tell device 1
    set should pulse to true
    
set pulse rate to 0.1 –0.0が遅くて1.0が一番高速
    
properties
    
–> {class:device, id:”14100000″, brightness:0.1, should pulse:true, pulse rate:0.1, name:”Piyomaru PowerMate”}
  end tell
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

スクリプト名:PowerMateを強制的に点滅させる
–Griffin TechnologyからPowerMate 3.0Driverをダウンロードする必要アリ

tell application “PowerMate”
  set aPowerMate to device 1 –複数のPowerMateデバイスの接続をサポートしているもよう
  
  
tell aPowerMate
    repeat 10 times
      
      
repeat with i from 1 to 10
        set brightness to (i / 10)
        
delay 0.1
      end repeat
      
      
repeat with i from 10 to 1 by -1
        set brightness to (i / 10)
        
delay 0.1
      end repeat
      
    end repeat
  end tell
  
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に