aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MeterItem.cs
blob: 1eb5469d7f5d788eec685555a4fa4e8242582c19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls.Primitives;
using System.Windows.Media;
using System.Xml.Serialization;
using Tango.BL.Entities;
using Tango.SharedUI.Helpers;

namespace Tango.MachineStudio.Technician.TechItems
{
    /// <summary>
    /// Represents an analog style VU meter item.
    /// </summary>
    /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" />
    [TechItem(3)]
    public class MeterItem : TechItem
    {
        private TechMonitor _techMonitor;
        /// <summary>
        /// Gets or sets the db tech monitor.
        /// </summary>
        [XmlIgnore]
        public TechMonitor TechMonitor
        {
            get { return _techMonitor; }
            set { _techMonitor = value; RaisePropertyChangedAuto(); TechName = _techMonitor != null ? _techMonitor.Description : null; ItemGuid = value != null ? value.Guid : null; }
        }

        private double _value;
        /// <summary>
        /// Gets or sets the current value.
        /// </summary>
        [XmlIgnore]
        public double Value
        {
            get { return _value; }
            set { _value = value; RaisePropertyChanged(nameof(Value)); LastUpdateTime = DateTime.Now; }
        }

        private int _updateInterval;
        /// <summary>
        /// Gets or sets the minimum update interval.
        /// </summary>
        public int UpdateInterval
        {
            get { return _updateInterval; }
            set { _updateInterval = value; RaisePropertyChangedAuto(); }
        }

        private int _ledCount;
        /// <summary>
        /// Gets or sets the amount of LED's.
        /// </summary>
        public int LedCount
        {
            get { return _ledCount; }
            set { _ledCount = value; RaisePropertyChangedAuto(); }
        }

        private int _ticksCount;
        /// <summary>
        /// Gets or sets the amount of meter ticks.
        /// </summary>
        public int TicksCount
        {
            get { return _ticksCount; }
            set { _ticksCount = value; RaisePropertyChangedAuto(); }
        }

        private TickPlacement _tickPlacement;
        /// <summary>
        /// Gets or sets the ticks placement.
        /// </summary>
        public TickPlacement TickPlacement
        {
            get { return _tickPlacement; }
            set { _tickPlacement = value; RaisePropertyChangedAuto(); }
        }

        /// <summary>
        /// Gets or sets the last update time.
        /// </summary>
        [XmlIgnore]
        public DateTime LastUpdateTime { get; set; }

        /// <summary>
        /// Initializes a new instance of the <see cref="MeterItem"/> class.
        /// </summary>
        public MeterItem() : base()
        {
            Name = "VU Monitor";
            Description = "VU Meter monitor";
            Image = ResourceHelper.GetImageFromResources("Images/volume.png");
            LastUpdateTime = DateTime.Now;
            UpdateInterval = 10;
            LedCount = 14;
            TicksCount = 14;
            TickPlacement = TickPlacement.BottomRight;
            Color = Colors.DimGray;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="MeterItem"/> class.
        /// </summary>
        /// <param name="techMonitor">The db tech monitor.</param>
        public MeterItem(TechMonitor techMonitor) : this()
        {
            TechMonitor = techMonitor;
        }

        /// <summary>
        /// Clones this instance.
        /// </summary>
        /// <returns></returns>
        public override TechItem Clone()
        {
            MeterItem cloned = base.Clone() as MeterItem;
            cloned.TechMonitor = TechMonitor;
            cloned.UpdateInterval = UpdateInterval;
            cloned.LedCount = LedCount;
            cloned.TicksCount = TicksCount;
            return cloned;
        }
    }
}
channel channel 3 adc_set_for_read_ch(0x44); resualt=adc_read_ch(0x44); break; case 6: adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 adc_set_for_read_ch(0x44); resualt=adc_read_ch(0x44); break; case 7: adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 adc_set_for_read_ch(0x46); resualt=adc_read_ch(0x46); break; case 8: adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3 adc_set_for_read_ch(0x46); resualt=adc_read_ch(0x46); break; default: context.Write("Error"); break; } return resualt; } //-------------------------------- int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak { int temp1=Convert_Midtank_No[valve_nm-1] ; string temp; SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1); if (check_valve!=0) { temp="Air"; if (valve_type==1) temp="Ink"; DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo); if(result == DialogResult.No) { // Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; context.Write(temp +"Valve\tFail\n"); return 0; } else { // Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; context.Write(temp +"Valve\tOpen\n"); return 1; } } return 1; } //-------------------------------- int close_valve (int valve_nm,int valve_type,int check_valve) { int temp1=Convert_Midtank_No[valve_nm-1]; string temp; SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0); if (check_valve!=0) { temp="Air"; if (valve_type==1) temp="Ink"; DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo); if(result == DialogResult.No) { // Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; context.Write(temp +"Valve\tFail\n"); return 0; } else { // Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; context.Write(temp +"Valve\tclose\n"); return 1; } } return 1; } public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit) { Int32 BitMask; Int32 RetVal; RetVal = Fpga_Read_Reg(Adr); Int32 RV = RetVal ; if (Bit == 0x1) { BitMask = 0x1 << BitNo; RV = RV | BitMask; Fpga_Write_Reg( Adr, RV ); } else if (Bit == 0x0) { BitMask = ~(0x1 << BitNo); RV = RV & BitMask; Fpga_Write_Reg(Adr, RV ); } return 1; } int Fpga_Write_Reg(Int32 Addr, Int32 Data) { var response =context.Send<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data); return 1; } Int32 check_valve (Int32 valve_nm,int valve_type) { Int32 temp1=Convert_Midtank_No[valve_nm-1]; var response =context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_VALVE_OUT); Int32 RV =(Int32) response.Value & 0xffff ; RV = RV & ( 0x1 << (((valve_type+1)*8)- temp1)); return RV; } Int32 Fpga_Read_Reg(Int32 Addr) { context.Write("123"); var response =context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr); context.Write("456"); Int32 RV= (Int32) response.Value & 0xffff; context.Write("789"); return RV; } }