aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection/stubs/Scripts/BTSR/11_DEVICE_CALIBRATION.cs
blob: 8b63f368c7530862d75de6133d49c64907524d97 (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
using System;
using System.Text;
using System.Linq;
using System.Drawing;
using System.Diagnostics;
using System.Windows.Forms;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Tango.PMR.Stubs;
using Tango.Stubs;
const byte YES = 0x01;
const byte NO = 0x00;	

//--------------------------------------------------------------------------------------------------------------
// ------ Request Parameters ------
const byte CODE_STRING = 0x01;//BTSR ID

const byte FUNCTION_STRING = 0x49;

const byte CALIBRATION_COMMAND = 0x84;

const Int32 Auto_Calc_CheckSum = YES;//1 YES, 0 NO   //if YES Don't send the checksum Bytes!!!!

// ------ Response Parameters  ------
const Int32 BytesToRead = 	1;//Number of the expected Bytes to read (iclude CHECK_STRING if available)
const Int32 Verify_Received_CheckSum = 	NO;//1 YES, 0 NO --- TBD NA ---
//--------------------------------------------------------------------------------------------------------------
int BTSR_Write_and_Read() 
{
	StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
	stubI2CWriteBytesRequest.I2CId = 0xFEED; // - Don't Change!! BTSR FEEDR (Script identification)
	stubI2CWriteBytesRequest.SlaveAddress = Auto_Calc_CheckSum;
	
	UInt32 uInt32 = new UInt32();
	//--------------------------------------------------------------
	stubI2CWriteBytesRequest.BytesTWrite.Add(CODE_STRING);//Byte 0 to write  CODE_STRING
	
	stubI2CWriteBytesRequest.BytesTWrite.Add(FUNCTION_STRING);//Byte 1 to write  FUNCTION_STRING
	stubI2CWriteBytesRequest.BytesTWrite.Add(CALIBRATION_COMMAND);//Byte 1 to write  FUNCTION_STRING
	
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//NA
	
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//SPARE

	var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
	
	return 1;
}


int BTSR_Get() 
{
	int i = 0;	
	StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
	stubI2CReadBytesRequest.I2CId = 0xFEED; // - Don't Change!! BTSR FEEDR (Script indentify)
	stubI2CReadBytesRequest.SlaveAddress = Verify_Received_CheckSum;
	stubI2CReadBytesRequest.NumberOfBytesToRead = BytesToRead + Verify_Received_CheckSum; 

	var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
	uint temph=0;

	for(i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead - Verify_Received_CheckSum;i++)
	{
			temph=response1.ReadBytes[i];
			stubManager.WriteLineHex(temph,2);
	}
	if((Verify_Received_CheckSum == YES) && (response1.ReadBytes[i] != 0))//use the next byte to return the checksum status
	{
		stubManager.WriteLine("\n --- Received Wrong CheckSum !!! --- \n");
	}
		
	
	return 1;
}


public void OnExecute(StubManager stubManager)
{
	BTSR_Write_and_Read();
	Thread.Sleep(15); //wait 10mSec in the embedded to read all at once so this value must be > 10 milli.
	stubManager.WriteLine("\n --- DEVICE CALIBRATION --- \n");
	BTSR_Get();
}