Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Function returns BYTE array

I want my function to return a BYTE array. The function is as follows.

BYTE sendRecieveData(BYTE control, unsigned int value){

//Open connection to LAC
HANDLE LACOutpipe;
HANDLE LACInpipe;
LACOutpipe=openConnection(MP_WRITE);
LACInpipe=openConnection(MP_READ);

//declare variables
BYTE bufDataOut[3];
BYTE bufDataIn[3];
DWORD bufInProcess;
DWORD bufOutProcess;


//sets CONTROL
bufDataOut[0]=control;

//sets DATA to be sent to LAC
BYTE low_byte = 0xff & value;
BYTE high_byte = value >> 8;
bufDataOut[1]=low_byte;
bufDataOut[2]=high_byte;

MPUSBWrite(LACOutpipe,bufDataOut,3,&bufOutProcess,1000);
MPUSBRead(LACInpipe,bufDataIn,3,&bufInProcess,1000);
MPUSBClose(LACOutpipe);
MPUSBClose(LACInpipe);

return bufDataIn[3];
}

It doesn't return a byte array and when I change BYTE to BYTE[] or BYTE[3] it gives me an error.

like image 993
moesef Avatar asked Feb 27 '12 18:02

moesef


People also ask

How do you find byte array?

We can use String class getBytes() method to encode the string into a sequence of bytes using the platform's default charset. This method is overloaded and we can also pass Charset as argument. Here is a simple program showing how to convert String to byte array in java.

What is the byte array?

A byte array is simply an area of memory containing a group of contiguous (side by side) bytes, such that it makes sense to talk about them in order: the first byte, the second byte etc..

What is byte array in C?

byte array in CAn unsigned char can contain a value from 0 to 255, which is the value of a byte. In this example, we are declaring 3 arrays – arr1, arr2, and arr3, arr1 is initialising with decimal elements, arr2 is initialising with octal numbers and arr3 is initialising with hexadecimal numbers.

What is stored in a byte array?

A byte array is the array of bytes that is used to store the collection of binary data. For example, the byte array of an image stores the information of every pixel of the image. In the byte array, we can store the content of any file in binary format.


1 Answers

Since your array is relatively small I'd recommend to pass your buffer as a function argument.

void sendRecieveData(BYTE control, unsigned int value, BYTE (&buffdataIn)[3] ).

Now, one will use this function as follows:

BYTE result[3] = {0};
sendRecieveData(3, 0, result);

This way you may avoid usage of dynamic memory allocation and make your code safer.

like image 183
Igor Chornous Avatar answered Oct 06 '22 20:10

Igor Chornous