by balo » Thu Mar 29, 2012 1:57 pm
by balo
Thu Mar 29, 2012 1:57 pm
I have succes install the firmware. The code for change values of AX-12 run again.
But I don't read sensor values. If I have correctlly understand, I must change the mode in tossMode to PortMode. But I didn't know how change this...
I have try this
- Code: Select all
int MotorAx12::PortMode(Serial *serialPort)
{
// Open Toss Mode
byte _InitBuffer[15];
_InitBuffer[0] = 't';
_InitBuffer[1] = '\n';
_InitBuffer[2] = 1; //??? because TossMode this value is 0
int _N = serialPort->SendArray(_InitBuffer, 2);
Sleep(200);
serialPort->Clear();
Sleep(5);
return _N;
}
And for read values of sensor, I have tryed this :
- Code: Select all
int MotorAx12::GetSensorValue(Serial *serialPort, int port)
{
int ret = 0;
int n = GetSensorValueCommand(port);
serialPort->SendArray(buffer,n);
Sleep(waitTime);
memset(bufferIn,0,BufferSize);
n = serialPort->GetArray(bufferIn, 8);
short _Position = -1;
if (n > 7) _Position = FromHexHLConversion(bufferIn[5], bufferIn[6]);
printf("\nid=[i] position=[i] length=[i]\n", port, _Position, n);
if (_Position<0> 1023)
{
ret =- 2;
}
else{
ret = _Position;
}
return ret;
}
int MotorAx12::GetSensorValueCommand( byte port)
{
int pos = 0;
buffer[pos++] = 0xff; // header
buffer[pos++] = 0xff; // header
buffer[pos++] = 200; // CM510 ID=200
buffer[pos++] = 0x04; // length
buffer[pos++] = 0x02; // instruction 2 = read
buffer[pos++] = 1; // function = 1
buffer[pos++] = port; // port
byte checksum = CheckSumatory(buffer, pos);
buffer[pos++] = checksum;
return pos;
}
This code don't function
Can you explain to me what is the value in buffer "function" because I didn't know ??
Can you give me, the list of different port use in CM510 ?
Thank's a lot for your help !
I have succes install the firmware. The code for change values of AX-12 run again.
But I don't read sensor values. If I have correctlly understand, I must change the mode in tossMode to PortMode. But I didn't know how change this...
I have try this
- Code: Select all
int MotorAx12::PortMode(Serial *serialPort)
{
// Open Toss Mode
byte _InitBuffer[15];
_InitBuffer[0] = 't';
_InitBuffer[1] = '\n';
_InitBuffer[2] = 1; //??? because TossMode this value is 0
int _N = serialPort->SendArray(_InitBuffer, 2);
Sleep(200);
serialPort->Clear();
Sleep(5);
return _N;
}
And for read values of sensor, I have tryed this :
- Code: Select all
int MotorAx12::GetSensorValue(Serial *serialPort, int port)
{
int ret = 0;
int n = GetSensorValueCommand(port);
serialPort->SendArray(buffer,n);
Sleep(waitTime);
memset(bufferIn,0,BufferSize);
n = serialPort->GetArray(bufferIn, 8);
short _Position = -1;
if (n > 7) _Position = FromHexHLConversion(bufferIn[5], bufferIn[6]);
printf("\nid=[i] position=[i] length=[i]\n", port, _Position, n);
if (_Position<0> 1023)
{
ret =- 2;
}
else{
ret = _Position;
}
return ret;
}
int MotorAx12::GetSensorValueCommand( byte port)
{
int pos = 0;
buffer[pos++] = 0xff; // header
buffer[pos++] = 0xff; // header
buffer[pos++] = 200; // CM510 ID=200
buffer[pos++] = 0x04; // length
buffer[pos++] = 0x02; // instruction 2 = read
buffer[pos++] = 1; // function = 1
buffer[pos++] = port; // port
byte checksum = CheckSumatory(buffer, pos);
buffer[pos++] = checksum;
return pos;
}
This code don't function
Can you explain to me what is the value in buffer "function" because I didn't know ??
Can you give me, the list of different port use in CM510 ?
Thank's a lot for your help !