Subversion Repositories DashDisplay

Rev

Rev 77 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 77 Rev 79
Line 106... Line 106...
106
                        display.display();
106
                        display.display();
107
                        context_t &context = contexts[i];
107
                        context_t &context = contexts[i];
108
                        context.dial_timer = 500; // enough time to see at least one frame of PLX before NVRAM check
108
                        context.dial_timer = 500; // enough time to see at least one frame of PLX before NVRAM check
109
                        context.dial1 = -1;
109
                        context.dial1 = -1;
110
                        context.OldObservation = nullObs;
110
                        context.OldObservation = nullObs;
-
 
111
 
-
 
112
                        context.knobPos = -1; // indicate it is initialised 
111
                }
113
                }
112
        }
114
        }
113
 
115
 
114
        // Check to see if there is an observation/instance in the dynamic data array
116
        // Check to see if there is an observation/instance in the dynamic data array
115
        // that matches the current observation/instance in the NVRAM
117
        // that matches the current observation/instance in the NVRAM
Line 134... Line 136...
134
                        context.dial_timer = DialTimeout;
136
                        context.dial_timer = DialTimeout;
135
                        int i;
137
                        int i;
136
                        // use dialIndex+1 as tag for data : always non-zero.
138
                        // use dialIndex+1 as tag for data : always non-zero.
137
                        nvram_info_t *dial_nvram = find_nvram_data(dialIndex + 1);
139
                        nvram_info_t *dial_nvram = find_nvram_data(dialIndex + 1);
138
 
140
 
-
 
141
                        // initial read operation if knobPos < 0
139
                        if (dial_nvram && context.knobPos < 0)
142
                        if (dial_nvram && context.knobPos < 0)
140
                        {
143
                        {
141
                                for (i = 0; i < INFO_SIZE; i++)
-
 
142
                                        if (isValid(i) && (Info[i].observation.Obs == dial_nvram->data.observation) && (Info[i].observation.Instance == dial_nvram->data.instance))
-
 
143
                                        {
-
 
144
                                                context.knobPos = i;
144
                                context.knobPos = dial_nvram->data.pos;
145
                                                return;
145
                                return;
146
                                        }
-
 
147
                        }
146
                        }
148
                        if (context.knobPos == -1)
147
                        if (context.knobPos < 0)
149
                                context.knobPos = dialIndex; // timed out , not in NVRAM, use a default
148
                                context.knobPos = dialIndex; // timed out , not in NVRAM, use a default
150
 
149
 
151
                        // dont save dial info for invalid data
150
                        // dont save dial info for invalid data
152
                        if (!isValid(context.knobPos))
151
                        if (!isValid(context.knobPos))
153
                                return;
152
                                return;
154
                        // is this a change since the last timeout ?
153
                        // is this a change since the last timeout ?
155
 
154
 
156
                        if (!dial_nvram || (Info[context.knobPos].observation.Obs != dial_nvram->data.observation) || (Info[context.knobPos].observation.Instance != dial_nvram->data.instance))
155
                        if (!dial_nvram  || context.knobPos != dial_nvram->data.pos)
157
                        {
156
                        {
158
 
157
 
159
                                // store the observation and instance in the NVRAM, not dial position.
158
                                // store the observation and instance in the NVRAM, not dial position.
160
                                nvram_info_t curr_val;
159
                                nvram_info_t curr_val;
161
                                curr_val.data.observation = Info[context.knobPos].observation.Obs;
160
                                curr_val.data.pos = context.knobPos;
162
                                curr_val.data.instance = Info[context.knobPos].observation.Instance;
-
 
163
                                curr_val.data.tag = dialIndex + 1;
161
                                curr_val.data.tag = dialIndex + 1;
164
 
162
 
165
                                write_nvram_data(curr_val);
163
                                write_nvram_data(curr_val);
166
                        }
164
                        }
167
                }
165
                }