in gpio.ts, if dir change, trigger dirListener, would it be batter? 