|
|
- using System;
-
- public void averageCalData(FileStream fileStream, UInt32[] average)
- {
- int i = 0;
- int j = 0;
- UInt32[] s = new UInt32[8];
- UInt32[] total = new UInt32[8];
- Byte[] buffer = new Byte[131072]; //128k Recieve Buffer
- UInt32 samplePtr = 32; // We start with the first sample, header is 32 bytes
-
- int toRead = buffer.Length;
- inLength = fileStream.Read(buffer, totalRead, toRead);
-
- for (i = 0; i < 8; i++)
- {
- total[i] = 0;
- s[i] = 0;
- average[i] = 0;
- }
-
- for (i = 0; i < 100; i++)
- {
- for (j = 0; j < 8; j++)
- {
- s[j] = (UInt32)buffer[samplePtr];
- s[j] |= ((UInt32)buffer[samplePtr + 1] << 8) & 0x00FF00;
- s[j] |= ((UInt32)buffer[samplePtr + 2] << 16) & 0x00FF0000;
- samplePtr += 4;
- total[j] += s[j];
- }
-
- }
-
- for (i = 0; i < 8; i++)
- {
- average[i] = total[i] / 100;
- }
- }
-
- public void CalibrationCalculate()
- {
- int i;
- double ma = new double[8];
- double[] ma = new double[8];
- UInt32[] b = new UInt32[8];
- UInt32[] average_5v = new UInt32[8];
- UInt32[] average_0v = new UInt32[8];
- UInt32[] b = new double[8];
-
-
-
- string ZeroVFileName = @"C:\ERPSData\0V_board1_binrecord06302018201157.bin";
- string FiveVFileName = @"C:\ERPSData\5v_board1_binrecord06302018202901.bin";
- string calFile = @"C:\ERPSData\goldenCal.dat";
-
- var ZeroVStream = new FileStream(ZeroVFileName, FileMode.Open);
- var FiveVStream = new FileStream(FiveVFileName, FileMode.Open);
- var OutFile = new FileStream(calFile, FileMode.Create, FileAccess.Write);
-
-
- averageCalData(FiveVStream, average_5v);
- averageCalData(ZeroVStream, average_0v);
-
-
- for (i = 0; i < 8; i++)
- {
- // y = mx + b
- //ma = (yH - yL) / (xH - xL)
- if (average_0v[i] & 0x800000)
- {
- ma[i] = (double)(average_5v[i] - (average_0v[i] - 0xFFFFFF)) / 0x7FFFFF;
- }
- else
- ma[i] = (double)(average_5v[i] - average_0v[i]) / 0x7FFFFF;
- if (average_0v[i] & 0x800000)
- {
- (average_0v[i] - 0xFFFFFF) * ma[i];
- }
- else
- b[i] = average_0v[i] * ma[i];
- }
-
-
- fprintf(write_fd, "%f %f %f %f %f %f %f %f \n", ma[0], ma[1], ma[2], ma[3], ma[4], ma[5], ma[6], ma[7]);
- fprintf(write_fd, "%x %x %x %x %x %x %x %x \n", b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7]);
- fclose((FILE*)read_5v_fd);
- fclose((FILE*)read_0v_fd);
- fclose((FILE*)write_fd);
- }
-
|