diff --git a/cm700reader.py b/cm700reader.py index 3edf3e3..1ed6b8f 100644 --- a/cm700reader.py +++ b/cm700reader.py @@ -42,7 +42,8 @@ return data # デバイス名でCOMポート番号を検索 - def find_port(self, device_str): + @staticmethod + def find_port(device_str): ports = list(serial.tools.list_ports.comports()) found_list = list(filter(lambda x: device_str in x.description, ports)) if len(found_list) == 0: @@ -111,34 +112,24 @@ # CSVファイルに保存 if len(spectrum) > 0: - filename = input("csv保存ファイル名(未記入で保存しない) >") - if len(filename) > 0: - header_line = "no," + (",".join(map(str, wavelen))) - np.savetxt( - filename, - spectrum, - delimiter=",", - header=header_line, - comments="", - fmt="%.4f", - ) - print(f"CSVファイル {filename} に保存しました") + header = "no," + (",".join(map(str, wavelen))) + self.save_csv(spectrum, header) - def save_csv(self): - # CSVファイルに保存 - if len(self.data) > 0: - filename = input("csv保存ファイル名(未記入で保存しない) >") - if len(filename) > 0: - header_line = "no,X,Y,Z,L*,a*,b*," + (",".join(map(str, self.wl))) - np.savetxt( - filename, - self.data, - delimiter=",", - header=header_line, - comments="", - fmt="%.4f", - ) - print(f"CSVファイル {filename} に保存しました") + # CSVファイルに保存 + @staticmethod + def save_csv(data, header): + # if len(self.data) > 0: + filename = input("csv保存ファイル名(未記入で保存しない) >") + if len(filename) > 0: + np.savetxt( + filename, + data, + delimiter=",", + header=header, + comments="", + fmt="%.4f", + ) + print(f"CSVファイル {filename} に保存しました") # 手動計測 def manual_measurement(self): @@ -146,17 +137,17 @@ recv = self.send_command("CPR") print("測定条件:", recv) - self.data = [] - count = 1 + data = [] while True: winsound.Beep(1000, 100) - ret = input(f"No. {count}: ENTERで計測('q'で終了)") + ret = input(f"No. {len(data) + 1}: ENTERで計測('q'で終了)") if ret == "q": break - self.measurement(count) - count += 1 + self.measurement(data) - self.save_csv() + if len(data) > 0: + header = "no,X,Y,Z,L*,a*,b*," + (",".join(map(str, self.wl))) + self.save_csv(data, header) # インターバル計測 def interval_measurement(self): @@ -167,15 +158,20 @@ num_samples = int(input("測定回数>")) interval = float(input("間隔(秒)>")) + data = [] for i in range(num_samples): print("\r", "%3d/%3d" % (i + 1, num_samples), end="") - self.measurement(i + 1) + winsound.Beep(1500, 100) + self.measurement(data) time.sleep(interval) + winsound.Beep(1500, 1000) - self.save_csv() + if len(data) > 0: + header = "no,X,Y,Z,L*,a*,b*," + (",".join(map(str, self.wl))) + self.save_csv(data, header) # 測定 - def measurement(self, count): + def measurement(self, data): print("測定中...", end="") recv = self.send_command("MES,1") repeat = 0 @@ -201,7 +197,8 @@ # print("X %s, Y %s, Z %s" % (color[0], color[1], color[2])) # print("L* %s, a* %s, b* %s" % (color[5], color[6], color[7])) - self.data.append([count] + XYZ.tolist() + lab + spectrum.tolist()) + count = len(data) + 1 + data.append([count] + XYZ.tolist() + lab + spectrum.tolist()) def xyz_to_lab(self, xyz): x, y, z = xyz diff --git "a/\350\211\262\345\267\256\343\201\250\345\271\263\345\235\207\347\256\227\345\207\272.xlsx" "b/\350\211\262\345\267\256\343\201\250\345\271\263\345\235\207\347\256\227\345\207\272.xlsx" index d2bd074..780728d 100644 --- "a/\350\211\262\345\267\256\343\201\250\345\271\263\345\235\207\347\256\227\345\207\272.xlsx" +++ "b/\350\211\262\345\267\256\343\201\250\345\271\263\345\235\207\347\256\227\345\207\272.xlsx" Binary files differ