OutputPacket *packet = output_create_packet();
packet->bit_duration = 4;
packet->repeat_count = 1;
- packet->final_delay = 0;
+ packet->final_delay = 128;
packet->length = 10;
packet->data[0] = 0x9B;
packet->data[1] = 0;
mfx_encode_bits8_raw(packet, state, state->crc8, 8);
mfx_encode_flag_pairs(packet, 11);
mfx_encode_bits8_raw(packet, state, 0x3, 4);
+ packet->final_delay = 0;
uint8_t fill = (1-mfx_get_output_level(packet))*0xFF;
for(uint8_t i=0; i<2; ++i)
}
mfx_ensure_low_level(packet);
+ packet->final_delay = 128;
}
static void mfx_receive_feedback()
uint8_t speed_dir = cmd[3];
if((speed_dir&0x7F)==0x7F)
return INVALID_VALUE;
- ++speed_dir;
+ // Skip emergency stop
+ if(speed_dir>0)
+ ++speed_dir;
if(cmd[0]==MFX_SPEED)
mfx_speed_packet(addr, speed_dir);