wanshenmean
2026-03-17 737dec3c384f394fd6f9849b4480b697d1ba35d5
Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/src/api/index.ts
@@ -2,7 +2,8 @@
import type {
  InstanceListItem,
  InstanceState,
  InstanceConfig
  InstanceConfig,
  ProtocolTemplate
} from '../types'
const api = axios.create({
@@ -14,14 +15,16 @@
// 获取所有实例
export async function getAllInstances(): Promise<InstanceListItem[]> {
  const response = await api.get<InstanceListItem[]>('/SimulatorInstances')
  const response = await api.get<InstanceListItem[]>('/SimulatorInstances/GetAll')
  return response.data
}
// 获取指定实例状态
export async function getInstance(id: string): Promise<InstanceState | null> {
  try {
    const response = await api.get<InstanceState>(`/SimulatorInstances/${encodeURIComponent(id)}`)
    const response = await api.get<InstanceState>('/SimulatorInstances/GetInstance', {
      params: { id }
    })
    return response.data
  } catch (error) {
    if (axios.isAxiosError(error) && error.response?.status === 404) {
@@ -34,7 +37,9 @@
// 获取实例配置
export async function getInstanceConfig(id: string): Promise<InstanceConfig | null> {
  try {
    const response = await api.get<InstanceConfig>(`/SimulatorInstances/${encodeURIComponent(id)}/config`)
    const response = await api.get<InstanceConfig>('/SimulatorInstances/GetInstanceConfig', {
      params: { id }
    })
    return response.data
  } catch (error) {
    if (axios.isAxiosError(error) && error.response?.status === 404) {
@@ -47,7 +52,7 @@
// 创建实例
export async function createInstance(config: InstanceConfig): Promise<InstanceState | null> {
  try {
    const response = await api.post<InstanceState>('/SimulatorInstances', config)
    const response = await api.post<InstanceState>('/SimulatorInstances/Create',  config )
    return response.data
  } catch (error) {
    console.error('创建实例失败:', error)
@@ -58,7 +63,9 @@
// 更新实例
export async function updateInstance(id: string, config: InstanceConfig): Promise<InstanceState | null> {
  try {
    const response = await api.put<InstanceState>(`/SimulatorInstances/${encodeURIComponent(id)}`, config)
    const response = await api.put<InstanceState>('/SimulatorInstances/Update', config, {
      params: { id }
    })
    return response.data
  } catch (error) {
    console.error('更新实例失败:', error)
@@ -69,7 +76,9 @@
// 删除实例
export async function deleteInstance(id: string, deleteConfig: boolean = true): Promise<boolean> {
  try {
    await api.delete(`/SimulatorInstances/${encodeURIComponent(id)}?deleteConfig=${deleteConfig}`)
    await api.delete('/SimulatorInstances/Delete', {
      params: { id, deleteConfig }
    })
    return true
  } catch (error) {
    console.error('删除实例失败:', error)
@@ -80,7 +89,9 @@
// 启动实例
export async function startInstance(id: string): Promise<InstanceState | null> {
  try {
    const response = await api.post<InstanceState>(`/SimulatorInstances/${encodeURIComponent(id)}/start`)
    const response = await api.post<InstanceState>('/SimulatorInstances/start', null, {
      params: { id }
    })
    return response.data
  } catch (error) {
    console.error('启动实例失败:', error)
@@ -91,7 +102,9 @@
// 停止实例
export async function stopInstance(id: string): Promise<InstanceState | null> {
  try {
    const response = await api.post<InstanceState>(`/SimulatorInstances/${encodeURIComponent(id)}/stop`)
    const response = await api.post<InstanceState>('/SimulatorInstances/stop', null, {
      params: { id }
    })
    return response.data
  } catch (error) {
    console.error('停止实例失败:', error)
@@ -102,7 +115,9 @@
// 重启实例
export async function restartInstance(id: string): Promise<InstanceState | null> {
  try {
    const response = await api.post<InstanceState>(`/SimulatorInstances/${encodeURIComponent(id)}/restart`)
    const response = await api.post<InstanceState>('/SimulatorInstances/restart', null, {
      params: { id }
    })
    return response.data
  } catch (error) {
    console.error('重启实例失败:', error)
@@ -110,4 +125,54 @@
  }
}
export async function getProtocolTemplates(): Promise<ProtocolTemplate[]> {
  const response = await api.get<ProtocolTemplate[]>('/ProtocolTemplates')
  return response.data
}
export async function getProtocolTemplate(id: string): Promise<ProtocolTemplate | null> {
  try {
    const response = await api.get<ProtocolTemplate>(`/ProtocolTemplates/${id}`)
    return response.data
  } catch (error) {
    if (axios.isAxiosError(error) && error.response?.status === 404) {
      return null
    }
    throw error
  }
}
export async function createProtocolTemplate(template: ProtocolTemplate): Promise<ProtocolTemplate> {
  const response = await api.post<ProtocolTemplate>('/ProtocolTemplates', template)
  return response.data
}
export async function updateProtocolTemplate(id: string, template: ProtocolTemplate): Promise<ProtocolTemplate> {
  const response = await api.put<ProtocolTemplate>(`/ProtocolTemplates/${id}`, template)
  return response.data
}
export async function deleteProtocolTemplate(id: string): Promise<void> {
  await api.delete(`/ProtocolTemplates/${id}`)
}
export async function readMemory(id: string): Promise<Record<string, string>> {
  const response = await api.get<Record<string, string>>('/Memory/ReadMemory', {
    params: { id }
  })
  return response.data
}
export async function writeMemory(id: string, data: Record<string, string>): Promise<boolean> {
  try {
    await api.post('/Memory/WriteMemory', data, {
      params: { id }
    })
    return true
  } catch (error) {
    console.error('写入内存失败:', error)
    return false
  }
}
export default api