But signal itself emmited every 0.5 seconds
Your posted code does not supports this assertion.
Your packet_received signal is only emitted when bayteAvailble()>0 is true however.
So it seems that for some reason bytesAvalable() returns 0 or less unless you press a key.
This sounds like a busy loop problem somewhere in your code.