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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Animation;
/// <exclude/>
/// <summary>
/// Contains a collection of DependencyObject extension methods.
/// </summary>
public static class DependencyObjectExtensions
{
/// <summary>
/// Invokes the current dependency object dispatcher.
/// </summary>
/// <param name="dependencyObject">The dependency object.</param>
/// <param name="action">The action.</param>
internal static void BeginInvoke(this DependencyObject dependencyObject, Action action)
{
dependencyObject.Dispatcher.BeginInvoke(action);
}
/// <summary>
/// Invokes the specified action.
/// </summary>
/// <param name="dependencyObject">The dependency object.</param>
/// <param name="action">The action.</param>
internal static void Invoke(this DependencyObject dependencyObject, Action action)
{
dependencyObject.Dispatcher.Invoke(action);
}
/// <summary>
/// Determines whether this object is currently in design time mode.
/// </summary>
/// <param name="obj">The object.</param>
/// <returns></returns>
internal static bool IsInDesignMode(this DependencyObject obj)
{
return (DesignerProperties.GetIsInDesignMode(obj));
}
/// <summary>
/// Binds the specified dependency property to a another object property.
/// </summary>
/// <param name="target">The target dependency object.</param>
/// <param name="targetDP">The target dependency property.</param>
/// <param name="source">The source object.</param>
/// <param name="sourceDP">The source dependency property.</param>
/// <param name="mode">Binding mode.</param>
/// <param name="converter">Binding converter.</param>
/// <returns></returns>
public static Binding Bind(this DependencyObject target, DependencyProperty targetDP, DependencyObject source, DependencyProperty sourceDP, BindingMode mode, IValueConverter converter = null)
{
Binding binding = new Binding();
binding.Mode = mode;
binding.Source = source;
binding.Path = new PropertyPath(sourceDP);
binding.Converter = converter;
BindingOperations.SetBinding(target, targetDP, binding);
return binding;
}
/// <summary>
/// Binds the specified dependency property to a another object property.
/// </summary>
/// <param name="target">The target dependency object.</param>
/// <param name="targetDP">The target dependency property.</param>
/// <param name="source">The source object.</param>
/// <param name="sourceDP">The source dependency property.</param>
/// <param name="mode">Binding mode.</param>
/// <returns></returns>
public static Binding Bind(this DependencyObject target, DependencyProperty targetDP, DependencyObject source, DependencyProperty sourceDP, BindingMode mode = BindingMode.Default)
{
Binding binding = new Binding();
binding.Mode = mode;
binding.Source = source;
binding.Path = new PropertyPath(sourceDP);
BindingOperations.SetBinding(target, targetDP, binding);
return binding;
}
/// <summary>
/// Create asynchronous binding between target and source.
/// </summary>
/// <param name="target">The target dependency object.</param>
/// <param name="targetDP">The target dependency property.</param>
/// <param name="source">The source object.</param>
/// <param name="sourceDP">The source dependency property.</param>
/// <param name="mode">Binding mode.</param>
/// <returns></returns>
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */#ifndef DATADEF_H
#define DATADEF_H
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <driverlib/gpio.h>
#include "common/report/report.h"
//#define EVALUATION_BOARD // to use the LCD only when using the evaluation board
//#define USE_USB
#define Stub_Mode 1
#define USE_HIGH_SPEED_GPIO // to use AHB GPIO (A..J) ports A-J APB or AHB, ports K-Q on AHB only
//#define test_RTFU_dancer 1
//#define WithTempSensorFiltrer (to use the function Filter_Temparature_Measurement)
//#define DEBUG_TEST_FUNCTIONS
#define HIZ_TIMEOUT 1000
//#define TEST_LONGER_PID_THREAD
//#define HUNDRED_MICROSECONDS_DANCER_READ
#define NO_INITIAL_HEATING
#define MAX_STRING_LEN 255 //Embedded version + filter.c
#define WATCHDOG
//#define DISPESER_TEST
//#define FPGA_WATCHDOG_DISABLE
#ifndef WATCHDOG
#define STORE_DEBUG_LOGS
#endif
//#define STORE_DEBUG_LOGS
//#define FOUR_WINDERS
#ifdef FOUR_WINDERS
#define BTSR_NO_FEEDER_TFU
#define BTSR_NO_PULLER_TFU
#define BTSR_ROTATED_WINDER_TFU
#endif
//#define BTSR_ROTATED_WINDER_TFU
//#define UFEEDER_BTSR
#ifdef UFEEDER_BTSR
#define BTSR_NO_FEEDER_TFU
#define BTSR_NO_PULLER_TFU
#define BTSR_ROTATED_WINDER_TFU
#endif
//#define USE_UART4_FOR_BTSR // need change in FRPGA FPGA_1 yy > 0x20 + jumpers in main board need to read HW Version - no need when working only with stubs
//#define FORCE_BTSR_CARD_0023 //0014 only for testing, include changes for BTSR without ASSY ID. use it with USE_UART4_FOR_BTSR
//#define USE_RFID_STUB //stub only. to use it undef USE_RFID_LOGIC
//#define RFID_READ_ONLY //
//#define USE_RFID_LOGIC //See more settings in RFID_Settings.h
//#define USE_POWERSTEP01 -NA
//#define LIGHT_COLORS
//#define EMC_FORCE_MOT_CLOCK_INTERNAL
//#define VAC_TEST
#define DISPENSER_VALVES_OPEN
//#define DISPENSER_PBU_PRE_RUN
//#d |