using Microsoft.Win32;
using Modbus.Device;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Sockets;
using System.Text;
using System.Windows;
using 头罩视野.Services.Data;
using static 头罩视野.TestDataStore;
public static class ModbusHelper
{
// 全局唯一连接,所有页面共用
public static TcpClient TcpClient => ModbusResourceManager.Instance.TcpClient;
// 统一连接方法(全项目只调用一次)
public static bool Connect(string ip, int port = 502)
{
return ModbusResourceManager.Instance.Init(ip, port);
}
// 判断是否连接成功
public static bool IsConnected => TcpClient != null && TcpClient.Connected;
//
/// 公共保存方法(用户自选文件夹)
///
/// 你的数据集合
/// 默认文件名
public static void SaveToCsv(List dataList, string defaultFileName)
{
if (dataList == null || dataList.Count == 0)
{
MessageBox.Show("无数据可保存!");
return;
}
// 选择文件夹
var folderDialog = new OpenFolderDialog
{
Title = "请选择保存路径"
};
if (folderDialog.ShowDialog() != true)
return;
string folderPath = folderDialog.FolderName;
string filePath = Path.Combine(folderPath, defaultFileName);
// 写入 CSV
using (var sw = new StreamWriter(filePath, false, Encoding.UTF8))
{
var firstRow = (IDictionary)dataList[0];
sw.WriteLine(string.Join(",", firstRow.Keys));
foreach (var item in dataList)
{
var dict = (IDictionary)item;
sw.WriteLine(string.Join(",", dict.Values));
}
}
MessageBox.Show("保存成功!\n" + filePath);
}
}