package bx

type BxCmd interface {
	Build() []byte
}

type baseBxCmd struct {
	BxCmd
	group   byte
	cmd     byte
	reqResp byte
	r0      byte
	r1      byte
}

func newBaseCmd(group, cmd byte) baseBxCmd {
	return baseBxCmd{
		group:   group,
		cmd:     cmd,
		reqResp: 0x01,
	}
}
func (b *baseBxCmd) Group() byte {
	return b.group
}

func (b *baseBxCmd) SetGroup(group byte) {
	b.group = group
}

func (b *baseBxCmd) Cmd() byte {
	return b.cmd
}

func (b *baseBxCmd) SetCmd(cmd byte) {
	b.cmd = cmd
}

func (b *baseBxCmd) ReqResp() byte {
	return b.reqResp
}

func (b *baseBxCmd) SetReqResp(reqResp byte) {
	b.reqResp = reqResp
}

func (b *baseBxCmd) R0() byte {
	return b.r0
}

func (b *baseBxCmd) SetR0(r0 byte) {
	b.r0 = r0
}

func (b *baseBxCmd) R1() byte {
	return b.r1
}

func (b *baseBxCmd) SetR1(r1 byte) {
	b.r1 = r1
}
