gray code reading functionnal