S7Explorer/Models/S7Block.cs

150 lines
3.5 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using Newtonsoft.Json;
namespace S7Explorer.Models
{
public class S7Block : S7Object
{
private string _authorName;
private string _family;
private string _version;
private DateTime? _modified;
private int _size;
private string _language;
[DisplayName("Autor")]
public string AuthorName
{
get => _authorName;
set
{
if (_authorName != value)
{
_authorName = value;
OnPropertyChanged(nameof(AuthorName));
}
}
}
[DisplayName("Familia")]
public string Family
{
get => _family;
set
{
if (_family != value)
{
_family = value;
OnPropertyChanged(nameof(Family));
}
}
}
[DisplayName("Versión")]
public string Version
{
get => _version;
set
{
if (_version != value)
{
_version = value;
OnPropertyChanged(nameof(Version));
}
}
}
[DisplayName("Modificado")]
public DateTime? Modified
{
get => _modified;
set
{
if (_modified != value)
{
_modified = value;
OnPropertyChanged(nameof(Modified));
}
}
}
[DisplayName("Tamaño (bytes)")]
public int Size
{
get => _size;
set
{
if (_size != value)
{
_size = value;
OnPropertyChanged(nameof(Size));
}
}
}
[DisplayName("Lenguaje")]
public string Language
{
get => _language;
set
{
if (_language != value)
{
_language = value;
OnPropertyChanged(nameof(Language));
}
}
}
public S7Block()
{
// Establece valores predeterminados específicos para bloques
}
}
public class S7DataBlock : S7Block
{
private bool _instanceDb;
[DisplayName("Es DB de Instancia")]
public bool IsInstanceDb
{
get => _instanceDb;
set
{
if (_instanceDb != value)
{
_instanceDb = value;
OnPropertyChanged(nameof(IsInstanceDb));
}
}
}
public S7DataBlock()
{
ObjectType = S7ObjectType.DataBlock;
}
}
public class S7FunctionBlock : S7Block
{
public S7FunctionBlock()
{
ObjectType = S7ObjectType.FunctionBlock;
}
}
/// <summary>
/// Clase para representar un parámetro de función
/// </summary>
public class FunctionParameter
{
public string Name { get; set; }
public string DataType { get; set; }
public string Direction { get; set; } // IN, OUT, IN/OUT
public string Description { get; set; }
}
}