aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs
blob: d7729ca2f053d9282ba0e9469d7df109da4a1b83 (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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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 Int32 I2C_ID =  3;			//MCU_I2C3 
const Int32 TCA9548A_address =	 0xE2;	 	
const Int32 I2C_Slave_Add = 	0xA0;			//	//eeprom address - 32kByte 
int Head_Mux_Channel_ID = 4; //Head MUX channel
//----------------------

const Int32 SerialNum = 	0x01;


int enable_channel(int Channel_ID) 
{
	uint Const_temp = 0x01;	
	
	StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
	stubI2CWriteBytesRequest.I2CId = I2C_ID;
	stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
	
	Const_temp = Const_temp << Channel_ID;
	stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);

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


int adc_write(uint I2C_Slave_Add, uint Page) 
{
	StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
	stubI2CWriteBytesRequest.I2CId = I2C_ID;
	stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
	
	UInt32 uInt32 = new UInt32();
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
	stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
	//--------------------------------------------------------------

	stubI2CWriteBytesRequest.BytesTWrite.Add(SerialNum);//S/N
	stubI2CWriteBytesRequest.BytesTWrite.Add(0x03);//HEAD_TYPE_SYLKO
	//stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
	
	var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
	
	return 1;
}

int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)  
{
	StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
	stubI2CWriteBytesRequest.I2CId = I2C_ID;
	stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;

	
	UInt32 uInt32 = new UInt32();
	stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
	stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write

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

int adc_read_ch(uint I2C_Slave_Add) 
{
	StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
	stubI2CReadBytesRequest.I2CId = I2C_ID;
	stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
	stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read

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

	for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
	{
			temph=response1.ReadBytes[i];
			stubManager.WriteHex(temph,2);
	}
	
	return 1;
}


public void OnExecute(StubManager stubManager)
{
	
	//enable_all_channel();
	enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 
	
	for (int i = 0; i<1; i++)
	{	
		
		adc_write(I2C_Slave_Add,0x00);
		Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
		
		stubManager.Write("\nPage 0x00 #");
		stubManager.Write(i);
		stubManager.Write("\t- The Buffer is: ");
		adc_set_for_read_ch(I2C_Slave_Add, 0x00);
		//Thread.Sleep(1); //Sleep for 10 milli.
		adc_read_ch(I2C_Slave_Add);
		
		Thread.Sleep(1000);		

	}
}