aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection/stubs/Load_F2_Tango_Full_Vme.cs
blob: 81266e65ca06f203d92719536f425000047792da (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
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.IO;
using Tango.Stubs;
using Google.Protobuf;
using System.IO;

public void OnExecute(StubManager stubManager)
{
	
GetStorageInfoRequest getStorageInfoRequest = new GetStorageInfoRequest();
	var response = stubManager.Run<GetStorageInfoResponse>(getStorageInfoRequest);


CreateRequest createRequest = new CreateRequest();
createRequest.Attribute = Tango.PMR.IO.FileAttribute.Directory;
createRequest.Path = "0://FPGAJTAG";
	var response1 = stubManager.Run<CreateResponse>(createRequest);

DeleteRequest deleteRequest = new DeleteRequest();
deleteRequest.Path = "0://FPGAJTAG//F2TangoF.vme";
	var response5 = stubManager.Run<DeleteResponse>(deleteRequest);
//deleteRequest.Path = "0://FPGAJTAG//F1_Tango.vme";
//	response5 = stubManager.Run<DeleteResponse>(deleteRequest);

	createRequest.Attribute = 0;
createRequest.Path = "0://FPGAJTAG//F2TangoF.vme";
	response1 = stubManager.Run<CreateResponse>(createRequest);
//createRequest.Attribute = 0;
//createRequest.Path = "0://FPGAJTAG//FPGAJTAG2.txt";
//	response1 = stubManager.Run<CreateResponse>(createRequest);


byte[] fileBytes = File.ReadAllBytes("C:\\FileSystemTests\\F2TangoF.vme");
	
FileUploadRequest fileUploadRequest = new FileUploadRequest();
fileUploadRequest.Path = "0://FPGAJTAG//F2TangoF.vme";
fileUploadRequest.Length = (int)fileBytes.Length;
FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest);

long chunk_size = response2.MaxChunkLength;

FileStream fs = new FileStream("C:\\FileSystemTests\\F2TangoF.vme",FileMode.Open);

while (fs.Position < fs.Length)
{
		stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n");
		FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();
		fileChunkUploadRequest.UploadID = response2.UploadID;
		byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];
		fs.Read(chunk,0,chunk.Length);
		fileChunkUploadRequest.Path = "0://FPGAJTAG//F2TangoF.vme";
		fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);	
		var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest);
		Thread.Sleep(300);//nedded for big files

}


GetFilesRequest getFilesRequest = new GetFilesRequest();
getFilesRequest.Path = "0://FPGAJTAG";

	var response4 = stubManager.Run<GetFilesResponse>(getFilesRequest);


}