mirror of
https://github.com/thelsing/knx.git
synced 2025-06-04 01:15:26 +02:00
Cosmetic changes. Fix whitespace and "{".
This commit is contained in:
parent
daf1cabedf
commit
d315aee70e
@ -35,7 +35,7 @@ uint16_t AddressTableObject::getGa(uint16_t tsap)
|
|||||||
{
|
{
|
||||||
if (loadState() != LS_LOADED || tsap > entryCount() )
|
if (loadState() != LS_LOADED || tsap > entryCount() )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return ntohs(_groupAddresses[tsap]);
|
return ntohs(_groupAddresses[tsap]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,9 +58,9 @@ uint8_t* AddressTableObject::save(uint8_t* buffer)
|
|||||||
uint8_t* AddressTableObject::restore(uint8_t* buffer)
|
uint8_t* AddressTableObject::restore(uint8_t* buffer)
|
||||||
{
|
{
|
||||||
buffer = TableObject::restore(buffer);
|
buffer = TableObject::restore(buffer);
|
||||||
|
|
||||||
_groupAddresses = (uint16_t*)_data;
|
_groupAddresses = (uint16_t*)_data;
|
||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,8 +84,9 @@ void AddressTableObject::beforeStateChange(LoadState& newState)
|
|||||||
_groupAddresses = (uint16_t*)_data;
|
_groupAddresses = (uint16_t*)_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PropertyDescription _propertyDescriptions[] = {
|
static PropertyDescription _propertyDescriptions[] =
|
||||||
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 },
|
{
|
||||||
|
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 }
|
||||||
};
|
};
|
||||||
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
||||||
|
|
||||||
|
@ -45,8 +45,8 @@ uint8_t ApplicationProgramObject::propertySize(PropertyID id)
|
|||||||
{
|
{
|
||||||
case PID_PEI_TYPE:
|
case PID_PEI_TYPE:
|
||||||
return 1;
|
return 1;
|
||||||
case PID_OBJECT_TYPE:
|
case PID_OBJECT_TYPE:
|
||||||
return 2;
|
return 2;
|
||||||
case PID_PROG_VERSION:
|
case PID_PROG_VERSION:
|
||||||
return 5;
|
return 5;
|
||||||
}
|
}
|
||||||
@ -76,7 +76,7 @@ uint32_t ApplicationProgramObject::getInt(uint32_t addr)
|
|||||||
uint8_t* ApplicationProgramObject::save(uint8_t* buffer)
|
uint8_t* ApplicationProgramObject::save(uint8_t* buffer)
|
||||||
{
|
{
|
||||||
buffer = pushByteArray(_programVersion, 5, buffer);
|
buffer = pushByteArray(_programVersion, 5, buffer);
|
||||||
|
|
||||||
return TableObject::save(buffer);
|
return TableObject::save(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,8 +87,9 @@ uint8_t* ApplicationProgramObject::restore(uint8_t* buffer)
|
|||||||
return TableObject::restore(buffer);
|
return TableObject::restore(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PropertyDescription _propertyDescriptions[] = {
|
static PropertyDescription _propertyDescriptions[] =
|
||||||
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 },
|
{
|
||||||
|
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 }
|
||||||
};
|
};
|
||||||
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
||||||
|
|
||||||
|
@ -68,10 +68,10 @@ void AssociationTableObject::beforeStateChange(LoadState& newState)
|
|||||||
_tableData = (uint16_t*)_data;
|
_tableData = (uint16_t*)_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PropertyDescription _propertyDescriptions[] =
|
static PropertyDescription _propertyDescriptions[] =
|
||||||
{
|
{
|
||||||
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 },
|
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 },
|
||||||
{ PID_TABLE, false, PDT_GENERIC_02, 254, ReadLv3 | WriteLv0 },
|
{ PID_TABLE, false, PDT_GENERIC_02, 254, ReadLv3 | WriteLv0 }
|
||||||
};
|
};
|
||||||
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
||||||
|
|
||||||
|
24
bau57B0.cpp
24
bau57B0.cpp
@ -5,10 +5,10 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
Bau57B0::Bau57B0(Platform& platform): _memoryReference((uint8_t*)&_deviceObj), _memory(platform), _addrTable(_memoryReference),
|
Bau57B0::Bau57B0(Platform& platform): _memoryReference((uint8_t*)&_deviceObj), _memory(platform), _addrTable(_memoryReference),
|
||||||
_assocTable(_memoryReference), _groupObjTable(_memoryReference), _appProgram(_memoryReference),
|
_assocTable(_memoryReference), _groupObjTable(_memoryReference), _appProgram(_memoryReference),
|
||||||
_ipParameters(_deviceObj, platform), _platform(platform), _appLayer(_assocTable, *this),
|
_ipParameters(_deviceObj, platform), _platform(platform), _appLayer(_assocTable, *this),
|
||||||
_transLayer(_appLayer, _addrTable, _platform), _netLayer(_transLayer),
|
_transLayer(_appLayer, _addrTable, _platform), _netLayer(_transLayer),
|
||||||
_dlLayer(_deviceObj, _addrTable, _ipParameters, _netLayer, _platform)
|
_dlLayer(_deviceObj, _addrTable, _ipParameters, _netLayer, _platform)
|
||||||
{
|
{
|
||||||
_appLayer.transportLayer(_transLayer);
|
_appLayer.transportLayer(_transLayer);
|
||||||
@ -50,7 +50,7 @@ void Bau57B0::sendNextGroupTelegram()
|
|||||||
if (flag == WriteRequest)
|
if (flag == WriteRequest)
|
||||||
{
|
{
|
||||||
uint8_t* data = go.valueRef();
|
uint8_t* data = go.valueRef();
|
||||||
_appLayer.groupValueWriteRequest(AckRequested, asap, go.priority(), NetworkLayerParameter, data,
|
_appLayer.groupValueWriteRequest(AckRequested, asap, go.priority(), NetworkLayerParameter, data,
|
||||||
go.sizeInTelegram());
|
go.sizeInTelegram());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -121,7 +121,7 @@ void Bau57B0::enabled(bool value)
|
|||||||
_dlLayer.enabled(value);
|
_dlLayer.enabled(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bau57B0::memoryWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number,
|
void Bau57B0::memoryWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number,
|
||||||
uint16_t memoryAddress, uint8_t * data)
|
uint16_t memoryAddress, uint8_t * data)
|
||||||
{
|
{
|
||||||
memcpy(_memoryReference + memoryAddress, data, number);
|
memcpy(_memoryReference + memoryAddress, data, number);
|
||||||
@ -131,7 +131,7 @@ void Bau57B0::memoryWriteIndication(Priority priority, HopCountType hopType, uin
|
|||||||
memoryReadIndication(priority, hopType, asap, number, memoryAddress);
|
memoryReadIndication(priority, hopType, asap, number, memoryAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bau57B0::memoryReadIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number,
|
void Bau57B0::memoryReadIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number,
|
||||||
uint16_t memoryAddress)
|
uint16_t memoryAddress)
|
||||||
{
|
{
|
||||||
_appLayer.memoryReadResponse(AckRequested, priority, hopType, asap, number, memoryAddress,
|
_appLayer.memoryReadResponse(AckRequested, priority, hopType, asap, number, memoryAddress,
|
||||||
@ -142,7 +142,7 @@ void Bau57B0::deviceDescriptorReadIndication(Priority priority, HopCountType hop
|
|||||||
{
|
{
|
||||||
if (descriptorType != 0)
|
if (descriptorType != 0)
|
||||||
descriptorType = 0x3f;
|
descriptorType = 0x3f;
|
||||||
|
|
||||||
uint8_t descriptor[] = { 0x57, 0xb0 };
|
uint8_t descriptor[] = { 0x57, 0xb0 };
|
||||||
|
|
||||||
_appLayer.deviceDescriptorReadResponse(AckRequested, priority, hopType, asap, descriptorType, descriptor);
|
_appLayer.deviceDescriptorReadResponse(AckRequested, priority, hopType, asap, descriptorType, descriptor);
|
||||||
@ -178,10 +178,10 @@ void Bau57B0::userMemoryWriteIndication(Priority priority, HopCountType hopType,
|
|||||||
userMemoryReadIndication(priority, hopType, asap, number, memoryAddress);
|
userMemoryReadIndication(priority, hopType, asap, number, memoryAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bau57B0::propertyDescriptionReadIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex,
|
void Bau57B0::propertyDescriptionReadIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex,
|
||||||
uint8_t propertyId, uint8_t propertyIndex)
|
uint8_t propertyId, uint8_t propertyIndex)
|
||||||
{
|
{
|
||||||
uint8_t pid = propertyId;
|
uint8_t pid = propertyId;
|
||||||
bool writeEnable = false;
|
bool writeEnable = false;
|
||||||
uint8_t type = 0;
|
uint8_t type = 0;
|
||||||
uint16_t numberOfElements = 0;
|
uint16_t numberOfElements = 0;
|
||||||
@ -194,7 +194,7 @@ void Bau57B0::propertyDescriptionReadIndication(Priority priority, HopCountType
|
|||||||
writeEnable, type, numberOfElements, access);
|
writeEnable, type, numberOfElements, access);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bau57B0::propertyValueWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex,
|
void Bau57B0::propertyValueWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex,
|
||||||
uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
|
uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
|
||||||
{
|
{
|
||||||
InterfaceObject* obj = getInterfaceObject(objectIndex);
|
InterfaceObject* obj = getInterfaceObject(objectIndex);
|
||||||
@ -216,7 +216,7 @@ void Bau57B0::propertyValueReadIndication(Priority priority, HopCountType hopTyp
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
elementCount = 0;
|
elementCount = 0;
|
||||||
|
|
||||||
uint8_t data[size];
|
uint8_t data[size];
|
||||||
if(obj)
|
if(obj)
|
||||||
obj->readProperty((PropertyID)propertyId, startIndex, elementCount, data);
|
obj->readProperty((PropertyID)propertyId, startIndex, elementCount, data);
|
||||||
@ -261,11 +261,11 @@ void Bau57B0::groupValueReadIndication(uint16_t asap, Priority priority, HopCoun
|
|||||||
_appLayer.groupValueReadResponse(AckRequested, asap, priority, hopType, data, go.sizeInTelegram());
|
_appLayer.groupValueReadResponse(AckRequested, asap, priority, hopType, data, go.sizeInTelegram());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bau57B0::groupValueReadAppLayerConfirm(uint16_t asap, Priority priority, HopCountType hopType, uint8_t* data,
|
void Bau57B0::groupValueReadAppLayerConfirm(uint16_t asap, Priority priority, HopCountType hopType, uint8_t* data,
|
||||||
uint8_t dataLength)
|
uint8_t dataLength)
|
||||||
{
|
{
|
||||||
GroupObject& go = _groupObjTable.get(asap);
|
GroupObject& go = _groupObjTable.get(asap);
|
||||||
|
|
||||||
if (!go.communicationEnable() || !go.responseUpdateEnable())
|
if (!go.communicationEnable() || !go.responseUpdateEnable())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -48,10 +48,10 @@ void DeviceObject::readProperty(PropertyID propertyId, uint32_t start, uint32_t&
|
|||||||
uint32_t ifObjs[] = {
|
uint32_t ifObjs[] = {
|
||||||
6, // length
|
6, // length
|
||||||
OT_DEVICE, OT_ADDR_TABLE, OT_ASSOC_TABLE, OT_GRP_OBJ_TABLE, OT_APPLICATION_PROG, OT_IP_PARAMETER};
|
OT_DEVICE, OT_ADDR_TABLE, OT_ASSOC_TABLE, OT_GRP_OBJ_TABLE, OT_APPLICATION_PROG, OT_IP_PARAMETER};
|
||||||
|
|
||||||
for (uint32_t i = start; i < (ifObjs[0] + 1) && i < count; i++)
|
for (uint32_t i = start; i < (ifObjs[0] + 1) && i < count; i++)
|
||||||
pushInt(ifObjs[i], data);
|
pushInt(ifObjs[i], data);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PID_DEVICE_DESCRIPTOR:
|
case PID_DEVICE_DESCRIPTOR:
|
||||||
@ -254,9 +254,10 @@ void DeviceObject::version(uint16_t value)
|
|||||||
_version = value;
|
_version = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PropertyDescription _propertyDescriptions[] = {
|
static PropertyDescription _propertyDescriptions[] =
|
||||||
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 },
|
{
|
||||||
{ PID_SERIAL_NUMBER, false, PDT_GENERIC_06, 1, ReadLv3 | WriteLv0 },
|
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 },
|
||||||
|
{ PID_SERIAL_NUMBER, false, PDT_GENERIC_06, 1, ReadLv3 | WriteLv0 }
|
||||||
};
|
};
|
||||||
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
||||||
|
|
||||||
|
@ -47,10 +47,10 @@ uint8_t* GroupObjectTableObject::save(uint8_t* buffer)
|
|||||||
uint8_t* GroupObjectTableObject::restore(uint8_t* buffer)
|
uint8_t* GroupObjectTableObject::restore(uint8_t* buffer)
|
||||||
{
|
{
|
||||||
buffer = TableObject::restore(buffer);
|
buffer = TableObject::restore(buffer);
|
||||||
|
|
||||||
_tableData = (uint16_t*)_data;
|
_tableData = (uint16_t*)_data;
|
||||||
initGroupObjects();
|
initGroupObjects();
|
||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,12 +116,13 @@ bool GroupObjectTableObject::initGroupObjects()
|
|||||||
if (go._dataLength != go.goSize())
|
if (go._dataLength != go.goSize())
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PropertyDescription _propertyDescriptions[] = {
|
static PropertyDescription _propertyDescriptions[] =
|
||||||
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 },
|
{
|
||||||
|
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 }
|
||||||
};
|
};
|
||||||
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
||||||
|
|
||||||
|
@ -4,29 +4,19 @@ void InterfaceObject::readPropertyDescription(uint8_t& propertyId, uint8_t& prop
|
|||||||
{
|
{
|
||||||
PropertyDescription* descriptions = propertyDescriptions();
|
PropertyDescription* descriptions = propertyDescriptions();
|
||||||
uint8_t count = propertyCount();
|
uint8_t count = propertyCount();
|
||||||
|
|
||||||
PropertyDescription* desc = nullptr;
|
PropertyDescription* desc = nullptr;
|
||||||
|
|
||||||
// from KNX spec. 03.03.07 Application Layer (page 56) - 3.4.3.3 A_PropertyDescription_Read-service
|
// from KNX spec. 03.03.07 Application Layer (page 56) - 3.4.3.3 A_PropertyDescription_Read-service
|
||||||
// [...] and the Property of the object shall be addressed with
|
// Summary: either propertyId OR propertyIndex, but not both at the same time
|
||||||
// a property_id OR with a property_index.The property_index shall be used ONLY if the property_id is zero.
|
|
||||||
// [...]
|
|
||||||
// If the property_id in the A_PropertyDescription_Read - PDU is NOT zero, then the field property_index
|
|
||||||
// shall be IGNORED; the remote application process shall use the indicated property_id to access the Property
|
|
||||||
// description.The property_index in the A_PropertyDescription_Response - PDU shall in this case be :
|
|
||||||
// - the correct value of the Property index of the addressed Property, or
|
|
||||||
// - the value of the field property_index of the received A_PropertyDescription_Read - PDU.
|
|
||||||
// For new implementations the property_index shall contain the correct value of the addressed Property.
|
|
||||||
// If the remote application process has a problem, e.g.Interface Object or Property does not exist, then the
|
|
||||||
// max_nr_of_elem of the A_PropertyDescription_Response - PDU shall be zero.
|
|
||||||
if (propertyId != 0)
|
if (propertyId != 0)
|
||||||
{
|
{
|
||||||
for (uint8_t i = 0; i < count; i++)
|
for (uint8_t i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
PropertyDescription d = descriptions[i];
|
PropertyDescription d = descriptions[i];
|
||||||
if (d.Id != propertyId)
|
if (d.Id != propertyId)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
desc = &d;
|
desc = &d;
|
||||||
propertyIndex = i;
|
propertyIndex = i;
|
||||||
break;
|
break;
|
||||||
@ -34,26 +24,24 @@ void InterfaceObject::readPropertyDescription(uint8_t& propertyId, uint8_t& prop
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// If the property_id in the A_PropertyDescription_Read - PDU is zero, the remote application process shall
|
// If propertyId is zero, propertyIndex shall be used.
|
||||||
// use the indicated property_index to access the Property description.The property_index in the
|
// Response: propertyIndex of received A_PropertyDescription_Read
|
||||||
// A_PropertyDescription_Response - PDU shall be the value of the field property_index of the received
|
if (propertyIndex >= 0 && propertyIndex < count)
|
||||||
// A_PropertyDescription_Read - PDU
|
|
||||||
if (propertyIndex >= 0 && propertyIndex < count)
|
|
||||||
{
|
{
|
||||||
desc = &descriptions[propertyIndex];
|
desc = &descriptions[propertyIndex];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (desc != nullptr)
|
if (desc != nullptr)
|
||||||
{
|
{
|
||||||
propertyId = desc->Id;
|
propertyId = desc->Id;
|
||||||
writeEnable = desc->WriteEnable;
|
writeEnable = desc->WriteEnable;
|
||||||
type = desc->Type;
|
type = desc->Type;
|
||||||
numberOfElements = desc->MaxElements;
|
numberOfElements = desc->MaxElements;
|
||||||
access = desc->Access;
|
access = desc->Access;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
numberOfElements = 0;
|
numberOfElements = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -181,7 +181,7 @@ uint32_t IpParameterObject::multicastAddress() const
|
|||||||
{
|
{
|
||||||
if (_multicastAddress == 0)
|
if (_multicastAddress == 0)
|
||||||
return DEFAULT_MULTICAST_ADDR;
|
return DEFAULT_MULTICAST_ADDR;
|
||||||
|
|
||||||
return _multicastAddress;
|
return _multicastAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,8 +304,9 @@ void IpParameterObject::additionalLoadControls(uint8_t* data)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PropertyDescription _propertyDescriptions[] = {
|
static PropertyDescription _propertyDescriptions[] =
|
||||||
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 },
|
{
|
||||||
|
{ PID_OBJECT_TYPE, false, PDT_UNSIGNED_INT, 1, ReadLv3 | WriteLv0 }
|
||||||
};
|
};
|
||||||
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
static uint8_t _propertyCount = sizeof(_propertyDescriptions) / sizeof(PropertyDescription);
|
||||||
|
|
||||||
|
@ -52,8 +52,8 @@ uint8_t TableObject::propertySize(PropertyID id)
|
|||||||
return 4;
|
return 4;
|
||||||
case PID_ERROR_CODE:
|
case PID_ERROR_CODE:
|
||||||
return 1;
|
return 1;
|
||||||
case PID_OBJECT_TYPE:
|
case PID_OBJECT_TYPE:
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -84,7 +84,7 @@ uint8_t* TableObject::save(uint8_t* buffer)
|
|||||||
buffer = pushByte(_errorCode, buffer);
|
buffer = pushByte(_errorCode, buffer);
|
||||||
buffer = pushInt(_size, buffer);
|
buffer = pushInt(_size, buffer);
|
||||||
buffer = pushByteArray(_data, _size, buffer);
|
buffer = pushByteArray(_data, _size, buffer);
|
||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user