コード例 #1
0
ファイル: Form1.cs プロジェクト: Gaybee/ABDL
        private void Form1_Load(object sender, EventArgs e)
        {
            //construyo una libreria:
            automationLibrary = new AutomationLibrary();
            automationLibrary.dataTypes.Add(new AutomationLibrary.DataTypeDefinition("INT", "Signed short integer"));
            automationLibrary.dataTypes.Add(new AutomationLibrary.DataTypeDefinition("UINT", "Unsigned short integer"));
            automationLibrary.dataTypes.Add(new AutomationLibrary.DataTypeDefinition("LONG", "Signed long integer"));
            automationLibrary.dataTypes.Add(new AutomationLibrary.DataTypeDefinition("BOOL", "boolean"));
            automationLibrary.dataTypes.Add(new AutomationLibrary.DataTypeDefinition("FLOAT", "Single precision floating point"));

            AutomationLibrary.OperationDefinition operationDefinition = new AutomationLibrary.OperationDefinition();
            operationDefinition.implementation = "C = A * B;";
            operationDefinition.id             = "baselib.AND2";
            operationDefinition.ExecutionOrder = 1;
            operationDefinition.Pins.Add(new AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData.PinData(1, "A", "", PinType.input));
            operationDefinition.Pins.Add(new AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData.PinData(1, "B", "", PinType.input));
            operationDefinition.Pins.Add(new AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData.PinData(1, "C", "", PinType.output));
            automationLibrary.OperationsLibrary.Add(operationDefinition);

            operationDefinition = new AutomationLibrary.OperationDefinition();
            operationDefinition.implementation = "C = A + B;";
            operationDefinition.id             = "baselib.OR2";
            operationDefinition.ExecutionOrder = 1;
            operationDefinition.Pins.Add(new AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData.PinData(1, "A", "", PinType.input));
            operationDefinition.Pins.Add(new AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData.PinData(1, "B", "", PinType.input));
            operationDefinition.Pins.Add(new AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData.PinData(1, "C", "", PinType.output));
            automationLibrary.OperationsLibrary.Add(operationDefinition);

            operationDefinition = new AutomationLibrary.OperationDefinition();
            operationDefinition.implementation = "C = !A";
            operationDefinition.id             = "baselib.NOT";
            operationDefinition.ExecutionOrder = 1;
            operationDefinition.Pins.Add(new AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData.PinData(1, "A", "", PinType.input));
            operationDefinition.Pins.Add(new AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData.PinData(1, "B", "", PinType.output));
            automationLibrary.OperationsLibrary.Add(operationDefinition);


            //creo una plataforma con una operacion
            automationWorkspaceData = new AutomationWorkspaceData();
            automationWorkspaceData.AutomationPlatformsData.Add(automationPlatformData = new AutomationWorkspaceData.AutomationPlatformData());
            automationPlatformData.hardwareConfigurationData.name = "PLC0";
            automationPlatformData.ScheduleGroupsData.Add(new AutomationWorkspaceData.AutomationPlatformData.ScheduleGroupData("Periodic100ms", 100, 0, 99));
            automationPlatformData.RutinesData.Add(rutineData = new AutomationWorkspaceData.AutomationPlatformData.RutineData(automationPlatformData.ScheduleGroupsData[0].id));
            rutineData.OperationsData.Add(new AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData(automationLibrary.OperationsLibrary.Find(x => x.id == "baselib.AND2")));
            rutineData.OperationsData[0].ExecutionOrder = 1;
            rutineData.OperationsData[0].Pins.Find(x => x.name == "A").data = "Registro1";
            rutineData.OperationsData[0].Pins.Find(x => x.name == "B").data = "Registro2";
            rutineData.OperationsData[0].Pins.Find(x => x.name == "C").data = "Registro3";
            rutineData.OperationsData[0].position = new PointF(100, 100);
            //creo la interfaz grafica
            rutineBDUI = new RutineBDUI(this, rutineData);
        }
コード例 #2
0
ファイル: RutineBDUI.cs プロジェクト: Gaybee/ABDL
 public RutineBDUI(Form form, AutomationWorkspaceData.AutomationPlatformData.RutineData rutineData)
 {
     brush = Brushes.Black;
     font  = form.Font;
     pen   = new Pen(brush, 1);
     //pointStart = new PointF(10, 10);
     this.rutineData = rutineData;
     operationBDUIs  = new List <OperationBDUI>();
     foreach (AutomationWorkspaceData.AutomationPlatformData.RutineData.OperationData o in rutineData.OperationsData)
     {
         operationBDUIs.Add(new OperationBDUI(this, o));
     }
     this.form = form;
 }