1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

OP-4 Flight/Telemetry More bug fixes after testing telemetry

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@506 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
vassilis 2010-04-16 01:56:08 +00:00 committed by vassilis
parent 27f56a014b
commit bc472102b4
3 changed files with 14 additions and 13 deletions

View File

@ -88,9 +88,10 @@ static void exampleTask(void* parameters)
ExampleSettingsGet(&settings); ExampleSettingsGet(&settings);
// TODO: Remove, this is temporary for testing (force settings) // TODO: Remove, this is temporary for testing (force settings)
// will remove when default setting values are implemented
settings.StepDirection = EXAMPLESETTINGS_STEPDIRECTION_UP; settings.StepDirection = EXAMPLESETTINGS_STEPDIRECTION_UP;
settings.StepSize = 1; settings.StepSize = 1;
settings.UpdatePeriod = 10; settings.UpdatePeriod = 100;
// Get the object data // Get the object data
ExampleObject2Get(&data); ExampleObject2Get(&data);

View File

@ -121,7 +121,7 @@ int main()
//xTaskCreate(TaskSDCard, (signed portCHAR *)"SDCard", configMINIMAL_STACK_SIZE, NULL, (tskIDLE_PRIORITY + 2), NULL); //xTaskCreate(TaskSDCard, (signed portCHAR *)"SDCard", configMINIMAL_STACK_SIZE, NULL, (tskIDLE_PRIORITY + 2), NULL);
/* Initialize modules */ /* Initialize modules */
//SystemModInitialize(); SystemModInitialize();
TelemetryInitialize(); TelemetryInitialize();
//ExampleModEventInitialize(); //ExampleModEventInitialize();
ExampleModPeriodicInitialize(); ExampleModPeriodicInitialize();

View File

@ -195,7 +195,7 @@ int32_t UAVTalkProcessInputStream(uint8_t rxbyte)
if (rxCount == 4) if (rxCount == 4)
{ {
// Search for object, if not found reset state machine // Search for object, if not found reset state machine
objId = (tmpBuffer[0] << 24) | (tmpBuffer[1] << 16) | (tmpBuffer[2] << 8) | (tmpBuffer[3]); objId = (tmpBuffer[3] << 24) | (tmpBuffer[2] << 16) | (tmpBuffer[1] << 8) | (tmpBuffer[0]);
obj = UAVObjGetByID(objId); obj = UAVObjGetByID(objId);
if (obj == 0) if (obj == 0)
{ {
@ -249,7 +249,7 @@ int32_t UAVTalkProcessInputStream(uint8_t rxbyte)
tmpBuffer[rxCount++] = rxbyte; tmpBuffer[rxCount++] = rxbyte;
if (rxCount == 2) if (rxCount == 2)
{ {
instId = (tmpBuffer[0] << 8) | (tmpBuffer[1]); instId = (tmpBuffer[1] << 8) | (tmpBuffer[0]);
cs = updateChecksum(cs, tmpBuffer, 2); cs = updateChecksum(cs, tmpBuffer, 2);
rxCount = 0; rxCount = 0;
// If there is a payload get it, otherwise receive checksum // If there is a payload get it, otherwise receive checksum
@ -276,7 +276,7 @@ int32_t UAVTalkProcessInputStream(uint8_t rxbyte)
tmpBuffer[rxCount++] = rxbyte; tmpBuffer[rxCount++] = rxbyte;
if (rxCount == 2) if (rxCount == 2)
{ {
csRx = (tmpBuffer[0] << 8) | (tmpBuffer[1]); csRx = (tmpBuffer[1] << 8) | (tmpBuffer[0]);
if (csRx == cs) if (csRx == cs)
{ {
xSemaphoreTakeRecursive(lock, portMAX_DELAY); xSemaphoreTakeRecursive(lock, portMAX_DELAY);
@ -456,10 +456,10 @@ static int32_t sendSingleObject(UAVObjHandle obj, uint16_t instId, uint8_t type)
// Setup type and object id fields // Setup type and object id fields
objId = UAVObjGetID(obj); objId = UAVObjGetID(obj);
txBuffer[0] = type; txBuffer[0] = type;
txBuffer[1] = (uint8_t)((objId >> 24) & 0xFF); txBuffer[1] = (uint8_t)(objId & 0xFF);
txBuffer[2] = (uint8_t)((objId >> 16) & 0xFF); txBuffer[2] = (uint8_t)((objId >> 8) & 0xFF);
txBuffer[3] = (uint8_t)((objId >> 8) & 0xFF); txBuffer[3] = (uint8_t)((objId >> 16) & 0xFF);
txBuffer[4] = (uint8_t)(objId & 0xFF); txBuffer[4] = (uint8_t)((objId >> 24) & 0xFF);
// Setup instance ID if one is required // Setup instance ID if one is required
if (UAVObjIsSingleInstance(obj)) if (UAVObjIsSingleInstance(obj))
@ -468,8 +468,8 @@ static int32_t sendSingleObject(UAVObjHandle obj, uint16_t instId, uint8_t type)
} }
else else
{ {
txBuffer[5] = (uint8_t)((instId >> 8) & 0xFF); txBuffer[5] = (uint8_t)(instId & 0xFF);
txBuffer[6] = (uint8_t)(instId & 0xFF); txBuffer[6] = (uint8_t)((instId >> 8) & 0xFF);
dataOffset = 7; dataOffset = 7;
} }
@ -501,8 +501,8 @@ static int32_t sendSingleObject(UAVObjHandle obj, uint16_t instId, uint8_t type)
// Calculate checksum // Calculate checksum
cs = 0; cs = 0;
cs = updateChecksum(cs, txBuffer, dataOffset+length); cs = updateChecksum(cs, txBuffer, dataOffset+length);
txBuffer[dataOffset+length] = (uint8_t)((cs >> 8) & 0xFF); txBuffer[dataOffset+length] = (uint8_t)(cs & 0xFF);
txBuffer[dataOffset+length+1] = (uint8_t)(cs & 0xFF); txBuffer[dataOffset+length+1] = (uint8_t)((cs >> 8) & 0xFF);
// Send buffer // Send buffer
if (outStream!=NULL) (*outStream)(txBuffer, dataOffset+length+CHECKSUM_LENGTH); if (outStream!=NULL) (*outStream)(txBuffer, dataOffset+length+CHECKSUM_LENGTH);