diff --git a/ArbiterCommand.c b/ArbiterCommand.c index eeac265..91560f6 100644 --- a/ArbiterCommand.c +++ b/ArbiterCommand.c @@ -31,8 +31,12 @@ void SerialCommand_Scheduler(tTaskSerial *env) { if (AtCmdRxBeginWithStatic(&env->At, "T")) { uint8_t data[8]; - uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], - &env->At.rxBuffer.data[7]); + //uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], + // &env->At.rxBuffer.data[7]); + + uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[3], 4); + uint32_t adr = (data[0] << 8) | data[1]; + uint8_t len = &env->At.rxBuffer.data[env->At.rxBuffer.len] - &env->At.rxBuffer.data[7] - 2; @@ -40,7 +44,7 @@ void SerialCommand_Scheduler(tTaskSerial *env) { len = 16; } - uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[7], len); + size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[7], len); uint16_t sent = env->ioCAN->transmit(env->ioCAN->env, data, size, adr, 0, env->numberMailBox, 1000); @@ -50,8 +54,11 @@ void SerialCommand_Scheduler(tTaskSerial *env) { if (AtCmdRxBeginWithStatic(&env->At, "t")) { uint8_t data[8]; - uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], - &env->At.rxBuffer.data[9]); + //uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], + // &env->At.rxBuffer.data[9]); + + uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[3], 8); + uint32_t adr = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3] << 0); uint8_t len = &env->At.rxBuffer.data[env->At.rxBuffer.len] - &env->At.rxBuffer.data[9] - 2; @@ -59,7 +66,7 @@ void SerialCommand_Scheduler(tTaskSerial *env) { len = 16; } - uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[9], len); + size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[9], len); env->ioCAN->transmit(env->ioCAN->env, data, size, adr, 1, env->numberMailBox, 1000);