Coil simulator (mono coil)

モノコイルのシミュレーター ### Pulse magnet simulator v0.1 ### by A. Ikeda (UEC-Tokyo, 30 April 2022) ### references ### 1. Example program (3) in https://qiita.com/sci_Haru/items/b8d5c9cfe64c4366630a ### 2. A program for iGor pro, Master thesis, Takeshi Nakamura, Y. H. Matsuda lab., Univ. of Tokyo (2010) ### 3. Pulse magnet for high field generation, N. Miura (2008) # # # # # # # # # # # # # # # # # # # # # # # # # # # Imports # # # # # # # # # # # # # # # # # # # # # # # # # # # import numpy as np import matplotlib.pyplot as plt # %matplotlib inline # plt.style.use('./ai.mplstyle') # %matplotlib tk res_x = [] res_y = [] reserve_v = [] reserve_i = [] reserve_tp = [] reserve_t = [] reserve_bf = [] # # # # # # # # # # # # # # # # # # # # # # # # # # # Input parameter # # ...

PiMagの自動・外部制御にむけて(1)

PiMag(ポータブル40テスラ装置)にはraspberry piが搭載されていて、そこにに置いた自作pythonプログラムで制御しています。そこでtkinterというpython標準のGUIを使用しています。そのGUI特有の機能を使っています。


問題は外部でリモートコントロールしたり、自動計測することを考えたときに、GUIベースなのは微妙と言うことです。今のソフトはtkinterの機能を駆使しているので、フレキシブルじゃないです。そこで


「テキスト設定ファイル」に値を読み書きすることを基本とする、というプログラムにしようと思います。ボタンを押しても、まずはテキストファイルの値を書き換え、それを別のプログラムが参照して次の動きを作る、ということです。


そうすれば、GUIのボタンを押さなくても、外部からテキストファイルを書き換えることで、ボタンを押すようなことができそうです。


そのテキストファイルは複数のプログラムが参照する可能性があるので、ファイルを安全に読み書きできる必要があります。


ファイル名readerwriter.pyとして下記を作ります。
from filelock import FileLock

def safe_write(filename, content):
    lock_file = filename + ".lock"
    with FileLock(lock_file):
        with open(filename, 'w') as f:
            f.write(content)

def safe_read(filename):
    lock_file = filename + ".lock"
    with FileLock(lock_file):
        with open(filename, 'r') as f:
            return f.read()

実行結果は下記です。



これを応用して、望みのプログラムを作ろうと思います。

コメント

このブログの人気の投稿

しばらく、うまく見られなかった・・・・しかし解決の兆し