浜松ホトニクスc12880maをRaspberry Pi Pico、MicroPythonで使う(4)
PCに接続されたc12880maを認識するクラスを導入してみた。一応、動作を確認したが、現状、その確認はLinuxのみなのである。
そもそも、Windowsマシンを持っていない。正確には会社支給のPCがWindowsなのだ。しかも、シンクライアントだし、Pythonのインストール許可をとっていない。以前はAnacondaのインストール許可をもらっていたのであるが…
さて、どの様に動作確認をしたら良いのだろう。あ、嘘ついた…
Windowsマシンをもっている。CNC用とレーザーカッター用に3台、Windows PCが存在するのである。すっかり存在を忘れていた。
これらでテストをしてみるか。サポート切れてるWindows 7なのでネットワークを切っている。ちょっと面倒くさいな。exe化を試してみるかな。
さて、シリアルポートに接続を試み、接続できたら所属を問い合わせをして’Spectrometer’が帰ってきたポートを使うように変更した。正確にはc12880maが接続されたRaspberry Pi Picoへの問い合わせである。
当然ながら、Raspberry Pi Pico側には今回のコマンドに対応する回答が必要なのであるが、これについては随分前に用意していたのでそれを利用した。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78  | 
						import platform import serial.tools.list_ports import time class ident_PC():     def __init__(self):         self.OS = platform.system()         self.Version = platform.version()         self.Platform = platform.platform()         self.uart_message = "Initialize class"     def scan(self):         self.ports = serial.tools.list_ports.comports()         for p in self.ports:                 print(": %s" % p)                 print("device: %s" % p.device)                 print("name: %s" % p.name)                 print("description: %s" % p.description)                 print("hwid: %s" % p.hwid)                 print("vid: %s" % p.vid)                 print("pid: %s" % p.pid)                 print("serial Number: %s" % p.serial_number)                 print("location: %s" % p.location)                 print("manufacturer: %s" % p.manufacturer)                 print("product: %s" % p.product)                 print("interface: %s" % p.interface)     def chk_c12880ma(self):         self.ports = serial.tools.list_ports.comports()         for p in self.ports:             if p.manufacturer == "MicroPython":                 try:                     self.uartport = serial.Serial(                         port=p.device,                         baudrate=115200,                         bytesize=serial.EIGHTBITS,                         parity=serial.PARITY_NONE,                         stopbits=serial.STOPBITS_ONE,                         timeout=None                         )                     # buffer clear                      self.uartport.reset_input_buffer()                     self.uartport.reset_output_buffer()                     self.uartport.write(("identify" + "\n").encode("utf-8"))                     try:                         data = self.uartport.readline()                         if data.decode('utf-8').rstrip('\r\n') == 'Spectrometer':                             self.uart_message = "Successful connection to c12880ma on %s \"%s\"." % (self.OS, p.device)                             return()                         else:                             self.uartport.close()                     except serial.SerialException:                         self.uart_message = "Failed to receive."                 except serial.SerialException:                     self.uart_message = "Failed to open serial port."         self.uart_message = "not found c12880ma." if __name__ == '__main__':     pc = ident_PC()     pc.chk_c12880ma()     if pc.uart_message == "not found c12880ma.":         print(pc.uart_message)     else:         print(pc.uart_message)         pc.uartport.close()  | 
					


