172 lines
5.5 KiB
C#
172 lines
5.5 KiB
C#
/*
|
|
PLANTILLA DE ESTANDARIZACIÓN PARA OBJETOS osBase
|
|
Usar esta plantilla como guía para estandarizar cualquier objeto derivado de osBase
|
|
*/
|
|
|
|
namespace CtrEditor.ObjetosSim
|
|
{
|
|
public partial class osEjemplo : osBase, IosBase
|
|
{
|
|
// 1. MÉTODO NOMBRECLASE - Usar nombres descriptivos en español
|
|
public static string NombreClase()
|
|
{
|
|
return "Nombre Descriptivo del Objeto"; // Ej: "Motor VetroMeccanica", "Fotocélula", "Transporte TTOP"
|
|
}
|
|
private string nombre = NombreClase();
|
|
|
|
// 2. PROPIEDAD NOMBRE - Siempre en categoría "Identificación"
|
|
[property: Category("Identificación")]
|
|
[property: Description("Nombre identificativo del objeto")]
|
|
[property: Name("Nombre")]
|
|
public override string Nombre
|
|
{
|
|
get => nombre;
|
|
set => SetProperty(ref nombre, value);
|
|
}
|
|
|
|
// 3. CATEGORÍAS ESTÁNDAR:
|
|
|
|
// IDENTIFICACIÓN - Información básica del objeto
|
|
[ObservableProperty]
|
|
[property: Category("Identificación")]
|
|
[property: Description("Descripción o comentario del objeto")]
|
|
[property: Name("Descripción")]
|
|
public string descripcion;
|
|
|
|
// POSICIÓN Y TAMAÑO - Heredadas de osBase (Left, Top, Ancho, Alto, Angulo)
|
|
// No necesitan redefinirse, ya están en osBase
|
|
|
|
// CONFIGURACIÓN - Parámetros principales del objeto
|
|
[ObservableProperty]
|
|
[property: Category("Configuración")]
|
|
[property: Description("Velocidad máxima del objeto")]
|
|
[property: Name("Velocidad Máxima")]
|
|
public float velocidadMaxima;
|
|
|
|
[ObservableProperty]
|
|
[property: Category("Configuración")]
|
|
[property: Description("Habilita/deshabilita funcionalidad específica")]
|
|
[property: Name("Habilitar Función")]
|
|
public bool habilitarFuncion;
|
|
|
|
// SIMULACIÓN - Parámetros físicos y de simulación
|
|
[ObservableProperty]
|
|
[property: Category("Simulación")]
|
|
[property: Description("Velocidad actual en la simulación")]
|
|
[property: Name("Velocidad Actual")]
|
|
public float velocidadActual;
|
|
|
|
[ObservableProperty]
|
|
[property: Category("Simulación")]
|
|
[property: Description("Coeficiente de fricción")]
|
|
[property: Name("Coeficiente de Fricción")]
|
|
public float coeficienteFriccion;
|
|
|
|
// ENLACE PLC - Conexiones con PLC y otros objetos
|
|
[ObservableProperty]
|
|
[property: Category("Enlace PLC")]
|
|
[property: Description("Dirección del tag en el PLC")]
|
|
[property: Name("Tag Principal")]
|
|
public string tagPrincipal;
|
|
|
|
[ObservableProperty]
|
|
[property: Category("Enlace PLC")]
|
|
[property: Description("Seleccionar motor para enlazar")]
|
|
[property: Name("Motor Enlazado")]
|
|
[property: ItemsSource(typeof(osBaseItemsSource<osVMmotorSim>))]
|
|
public string motorEnlazado;
|
|
|
|
// INFORMACIÓN - Valores calculados, estados, debug
|
|
[ObservableProperty]
|
|
[property: Category("Información")]
|
|
[property: Description("Estado actual del objeto")]
|
|
[property: Name("Estado")]
|
|
public bool estado;
|
|
|
|
[ObservableProperty]
|
|
[property: Category("Información")]
|
|
[property: Description("Último valor calculado")]
|
|
[property: Name("Último Valor")]
|
|
public float ultimoValor;
|
|
|
|
// APARIENCIA - Aspectos visuales
|
|
[ObservableProperty]
|
|
[property: Category("Apariencia")]
|
|
[property: Description("Tamaño visual del objeto")]
|
|
[property: Name("Tamaño")]
|
|
public float tamano;
|
|
|
|
[ObservableProperty]
|
|
[property: Category("Apariencia")]
|
|
[property: Description("Color del objeto")]
|
|
[property: Name("Color")]
|
|
public Brush color;
|
|
|
|
// ENCODER - Específico para motores con encoder
|
|
[ObservableProperty]
|
|
[property: Category("Encoder")]
|
|
[property: Description("Habilita el encoder")]
|
|
[property: Name("Con Encoder")]
|
|
public bool conEncoder;
|
|
|
|
[ObservableProperty]
|
|
[property: Category("Encoder")]
|
|
[property: Description("Posición actual del encoder")]
|
|
[property: Name("Posición Encoder")]
|
|
public float posicionEncoder;
|
|
}
|
|
}
|
|
|
|
/*
|
|
GUÍA DE CATEGORÍAS:
|
|
|
|
1. "Identificación"
|
|
- Nombre del objeto
|
|
- Descripción
|
|
- Etiquetas de clasificación
|
|
|
|
2. "Posición y Tamaño"
|
|
- Ya heredadas de osBase: Left, Top, Ancho, Alto, Angulo, Lock_movement
|
|
|
|
3. "Configuración"
|
|
- Parámetros principales del objeto
|
|
- Configuraciones específicas por tipo
|
|
- Valores que el usuario configura
|
|
|
|
4. "Simulación"
|
|
- Velocidades, fuerzas, coeficientes
|
|
- Parámetros físicos
|
|
- Comportamiento en simulación
|
|
|
|
5. "Enlace PLC"
|
|
- Tags de entrada y salida
|
|
- Conexiones con motores/sensores
|
|
- Direcciones de PLC
|
|
|
|
6. "Información"
|
|
- Valores calculados
|
|
- Estados actuales
|
|
- Datos de depuración
|
|
- Información de solo lectura
|
|
|
|
7. "Apariencia"
|
|
- Colores, tamaños visuales
|
|
- Aspectos gráficos
|
|
- Elementos de UI
|
|
|
|
8. "Encoder" (solo para motores)
|
|
- Configuración del encoder
|
|
- Valores del encoder
|
|
|
|
FORMATO DE DESCRIPCIONES:
|
|
- Usar español
|
|
- Ser descriptivo y claro
|
|
- Explicar qué hace la propiedad
|
|
- Evitar términos técnicos innecesarios
|
|
|
|
FORMATO DE NOMBRES:
|
|
- Usar español
|
|
- Formato "Título" (primera letra mayúscula)
|
|
- Ser conciso pero descriptivo
|
|
- Ej: "Velocidad Actual", "Tag Principal", "Con Encoder"
|
|
*/ |