void GPS_Packet(object sender, Phidgets.Events.PacketEventArgs e) { int i = 0; while ((i < 64) && ((byte)(sckbuf_write + 1) != sckbuf_read)) { sckbuf[(byte)sckbuf_write++] = e.Packet[i]; i++; } parse_GPS_packets(); }
void Bridge_Packet(object sender, Phidgets.Events.PacketEventArgs e) { int[] strain = new int[4]; double[] oldValue = new double[4]; int x = 1; int y = 2; int z = 3; if (e.Packet[0] == 1) { msCounter += 8; } dataCounter++; for (int i = 0; i < 4; i++) { strain[i] = ((e.Packet[x] << 16) + (e.Packet[y] << 8) + e.Packet[z]); x += 3; y += 3; z += 3; //oldValue[i] = bridges[i].bridgeValue; if (bridges[i].enabled) { valueSums[i] += (strain[i] - (int)(Math.Pow(2, 23))) / (int)gain / (Math.Pow(2, 23)) * 1000; } else { valueSums[i] += 0; } //bridges[i].bridgeValue = (strain[i] - (int)(Math.Pow(2, 23))) / (int)gain / (Math.Pow(2, 23)) * 1000; if (msCounter >= dataRate) { bridges[i].bridgeValue = valueSums[i] / dataCounter; OnBridgeChange(new BridgeChangeEventArgs(i, bridges[i].bridgeValue)); msCounter = 0; valueSums[i] = 0; } } }
void FrequencyCounter_Packet(object sender, Phidgets.Events.PacketEventArgs e) { int[] Count = new int[2]; int[] TimeLastEvent = new int[2]; //Read the packet int n = 0; int TimerCount = ((int)e.Packet[n++]) | ((int)e.Packet[n++] << 8); Count[0] = (((int)e.Packet[n++]) | ((int)e.Packet[n++] << 8) | ((int)e.Packet[n++] << 16)); TimeLastEvent[0] = ((int)e.Packet[n++]) | ((int)e.Packet[n++] << 8); Count[1] = (((int)e.Packet[n++]) | ((int)e.Packet[n++] << 8) | ((int)e.Packet[n++] << 16)); TimeLastEvent[1] = ((int)e.Packet[n++]) | ((int)e.Packet[n++] << 8); for (int i = 0; i < 2; i++) { long lastCount = inputs[i].totalCount; double lastFreq = inputs[i].frequency; inputs[i].totalCount += Count[i]; inputs[i].totalTime += TimerCount; if (Count[i] == 0) { if (i == 0) { i = 0; } if (inputs[i].adjust != -1) //Do not accumulate if timed out { inputs[i].adjust += TimerCount; } if (inputs[i].adjust > inputs[i].timeOut * tickspersec) { inputs[i].adjust = -1; inputs[i].frequency = 0; OnCountChange(new CountChangeEventArgs(i, (int)Count[i], (int)inputs[i].frequency, (int)TimerCount)); } } else if (Count[i] >= 1) { if ((inputs[i].adjust == -1) && (Count[i] == 1)) { inputs[i].adjust = TimerCount - TimeLastEvent[i]; } else { if (inputs[i].adjust == -1) { inputs[i].adjust = 0; } inputs[i].frequency = (double)((double)Count[i] / (inputs[i].adjust + TimeLastEvent[i]) * tickspersec); inputs[i].adjust = TimerCount - TimeLastEvent[i]; } } if (lastCount != inputs[i].totalCount) { OnCountChange(new CountChangeEventArgs(i, (int)Count[i], (double)inputs[i].frequency, (long)TimerCount)); } } }
void Analog_Packet(object sender, Phidgets.Events.PacketEventArgs e) { }