608SCENARIO(
"Setting registers from channels",
"[xtChannels]" )
610 GIVEN(
"A set of input registers to send to the device" )
614 WHEN(
"Individual channels set, all able to output" )
618 uint16_t registers[4];
624 memset( registers, 0,
sizeof( registers ) );
627 REQUIRE( registers[0] == 1 );
628 REQUIRE( registers[1] == 0 );
629 REQUIRE( registers[2] == 0 );
630 REQUIRE( registers[3] == 0 );
636 memset( registers, 0,
sizeof( registers ) );
639 REQUIRE( registers[0] == 2 );
640 REQUIRE( registers[1] == 0 );
641 REQUIRE( registers[2] == 0 );
642 REQUIRE( registers[3] == 0 );
648 memset( registers, 0,
sizeof( registers ) );
651 REQUIRE( registers[0] == 4 );
652 REQUIRE( registers[1] == 0 );
653 REQUIRE( registers[2] == 0 );
654 REQUIRE( registers[3] == 0 );
660 memset( registers, 0,
sizeof( registers ) );
663 REQUIRE( registers[0] == 8 );
664 REQUIRE( registers[1] == 0 );
665 REQUIRE( registers[2] == 0 );
666 REQUIRE( registers[3] == 0 );
672 memset( registers, 0,
sizeof( registers ) );
675 REQUIRE( registers[0] == 0 );
676 REQUIRE( registers[1] == 1 );
677 REQUIRE( registers[2] == 0 );
678 REQUIRE( registers[3] == 0 );
684 memset( registers, 0,
sizeof( registers ) );
687 REQUIRE( registers[0] == 0 );
688 REQUIRE( registers[1] == 2 );
689 REQUIRE( registers[2] == 0 );
690 REQUIRE( registers[3] == 0 );
696 memset( registers, 0,
sizeof( registers ) );
699 REQUIRE( registers[0] == 0 );
700 REQUIRE( registers[1] == 4 );
701 REQUIRE( registers[2] == 0 );
702 REQUIRE( registers[3] == 0 );
708 memset( registers, 0,
sizeof( registers ) );
711 REQUIRE( registers[0] == 0 );
712 REQUIRE( registers[1] == 8 );
713 REQUIRE( registers[2] == 0 );
714 REQUIRE( registers[3] == 0 );
720 memset( registers, 0,
sizeof( registers ) );
723 REQUIRE( registers[0] == 0 );
724 REQUIRE( registers[1] == 0 );
725 REQUIRE( registers[2] == 1 );
726 REQUIRE( registers[3] == 0 );
732 memset( registers, 0,
sizeof( registers ) );
735 REQUIRE( registers[0] == 0 );
736 REQUIRE( registers[1] == 0 );
737 REQUIRE( registers[2] == 2 );
738 REQUIRE( registers[3] == 0 );
744 memset( registers, 0,
sizeof( registers ) );
747 REQUIRE( registers[0] == 0 );
748 REQUIRE( registers[1] == 0 );
749 REQUIRE( registers[2] == 4 );
750 REQUIRE( registers[3] == 0 );
756 memset( registers, 0,
sizeof( registers ) );
759 REQUIRE( registers[0] == 0 );
760 REQUIRE( registers[1] == 0 );
761 REQUIRE( registers[2] == 8 );
762 REQUIRE( registers[3] == 0 );
768 memset( registers, 0,
sizeof( registers ) );
771 REQUIRE( registers[0] == 0 );
772 REQUIRE( registers[1] == 0 );
773 REQUIRE( registers[2] == 0 );
774 REQUIRE( registers[3] == 1 );
780 memset( registers, 0,
sizeof( registers ) );
783 REQUIRE( registers[0] == 0 );
784 REQUIRE( registers[1] == 0 );
785 REQUIRE( registers[2] == 0 );
786 REQUIRE( registers[3] == 2 );
792 memset( registers, 0,
sizeof( registers ) );
795 REQUIRE( registers[0] == 0 );
796 REQUIRE( registers[1] == 0 );
797 REQUIRE( registers[2] == 0 );
798 REQUIRE( registers[3] == 4 );
804 memset( registers, 0,
sizeof( registers ) );
807 REQUIRE( registers[0] == 0 );
808 REQUIRE( registers[1] == 0 );
809 REQUIRE( registers[2] == 0 );
810 REQUIRE( registers[3] == 8 );
813 WHEN(
"Multiple channels set, all able to output" )
817 uint16_t registers[4];
824 memset( registers, 0,
sizeof( registers ) );
827 REQUIRE( registers[0] == 3 );
828 REQUIRE( registers[1] == 0 );
829 REQUIRE( registers[2] == 0 );
830 REQUIRE( registers[3] == 0 );
837 memset( registers, 0,
sizeof( registers ) );
840 REQUIRE( registers[0] == 5 );
841 REQUIRE( registers[1] == 0 );
842 REQUIRE( registers[2] == 0 );
843 REQUIRE( registers[3] == 0 );
850 memset( registers, 0,
sizeof( registers ) );
853 REQUIRE( registers[0] == 9 );
854 REQUIRE( registers[1] == 0 );
855 REQUIRE( registers[2] == 0 );
856 REQUIRE( registers[3] == 0 );
863 memset( registers, 0,
sizeof( registers ) );
866 REQUIRE( registers[0] == 1 );
867 REQUIRE( registers[1] == 1 );
868 REQUIRE( registers[2] == 0 );
869 REQUIRE( registers[3] == 0 );
877 memset( registers, 0,
sizeof( registers ) );
880 REQUIRE( registers[0] == 0 );
881 REQUIRE( registers[1] == 4 );
882 REQUIRE( registers[2] == 2 );
883 REQUIRE( registers[3] == 8 );
886 WHEN(
"Individual channels set, some input only" )
894 uint16_t registers[4];
900 memset( registers, 0,
sizeof( registers ) );
903 REQUIRE( registers[0] == 0 );
904 REQUIRE( registers[1] == 0 );
905 REQUIRE( registers[2] == 0 );
906 REQUIRE( registers[3] == 0 );
912 memset( registers, 0,
sizeof( registers ) );
915 REQUIRE( registers[0] == 2 );
916 REQUIRE( registers[1] == 0 );
917 REQUIRE( registers[2] == 0 );
918 REQUIRE( registers[3] == 0 );
924 memset( registers, 0,
sizeof( registers ) );
927 REQUIRE( registers[0] == 4 );
928 REQUIRE( registers[1] == 0 );
929 REQUIRE( registers[2] == 0 );
930 REQUIRE( registers[3] == 0 );
936 memset( registers, 0,
sizeof( registers ) );
939 REQUIRE( registers[0] == 8 );
940 REQUIRE( registers[1] == 0 );
941 REQUIRE( registers[2] == 0 );
942 REQUIRE( registers[3] == 0 );
948 memset( registers, 0,
sizeof( registers ) );
951 REQUIRE( registers[0] == 0 );
952 REQUIRE( registers[1] == 1 );
953 REQUIRE( registers[2] == 0 );
954 REQUIRE( registers[3] == 0 );
960 memset( registers, 0,
sizeof( registers ) );
963 REQUIRE( registers[0] == 0 );
964 REQUIRE( registers[1] == 0 );
965 REQUIRE( registers[2] == 0 );
966 REQUIRE( registers[3] == 0 );
972 memset( registers, 0,
sizeof( registers ) );
975 REQUIRE( registers[0] == 0 );
976 REQUIRE( registers[1] == 4 );
977 REQUIRE( registers[2] == 0 );
978 REQUIRE( registers[3] == 0 );
984 memset( registers, 0,
sizeof( registers ) );
987 REQUIRE( registers[0] == 0 );
988 REQUIRE( registers[1] == 8 );
989 REQUIRE( registers[2] == 0 );
990 REQUIRE( registers[3] == 0 );
996 memset( registers, 0,
sizeof( registers ) );
999 REQUIRE( registers[0] == 0 );
1000 REQUIRE( registers[1] == 0 );
1001 REQUIRE( registers[2] == 1 );
1002 REQUIRE( registers[3] == 0 );
1008 memset( registers, 0,
sizeof( registers ) );
1011 REQUIRE( registers[0] == 0 );
1012 REQUIRE( registers[1] == 0 );
1013 REQUIRE( registers[2] == 2 );
1014 REQUIRE( registers[3] == 0 );
1020 memset( registers, 0,
sizeof( registers ) );
1023 REQUIRE( registers[0] == 0 );
1024 REQUIRE( registers[1] == 0 );
1025 REQUIRE( registers[2] == 0 );
1026 REQUIRE( registers[3] == 0 );
1032 memset( registers, 0,
sizeof( registers ) );
1035 REQUIRE( registers[0] == 0 );
1036 REQUIRE( registers[1] == 0 );
1037 REQUIRE( registers[2] == 8 );
1038 REQUIRE( registers[3] == 0 );
1044 memset( registers, 0,
sizeof( registers ) );
1047 REQUIRE( registers[0] == 0 );
1048 REQUIRE( registers[1] == 0 );
1049 REQUIRE( registers[2] == 0 );
1050 REQUIRE( registers[3] == 1 );
1056 memset( registers, 0,
sizeof( registers ) );
1059 REQUIRE( registers[0] == 0 );
1060 REQUIRE( registers[1] == 0 );
1061 REQUIRE( registers[2] == 0 );
1062 REQUIRE( registers[3] == 2 );
1068 memset( registers, 0,
sizeof( registers ) );
1071 REQUIRE( registers[0] == 0 );
1072 REQUIRE( registers[1] == 0 );
1073 REQUIRE( registers[2] == 0 );
1074 REQUIRE( registers[3] == 4 );
1080 memset( registers, 0,
sizeof( registers ) );
1083 REQUIRE( registers[0] == 0 );
1084 REQUIRE( registers[1] == 0 );
1085 REQUIRE( registers[2] == 0 );
1086 REQUIRE( registers[3] == 0 );
1089 WHEN(
"Multiple channels set, some input only" )
1097 uint16_t registers[4];
1104 memset( registers, 0,
sizeof( registers ) );
1107 REQUIRE( registers[0] == 2 );
1108 REQUIRE( registers[1] == 0 );
1109 REQUIRE( registers[2] == 0 );
1110 REQUIRE( registers[3] == 0 );
1117 memset( registers, 0,
sizeof( registers ) );
1120 REQUIRE( registers[0] == 4 );
1121 REQUIRE( registers[1] == 0 );
1122 REQUIRE( registers[2] == 0 );
1123 REQUIRE( registers[3] == 0 );
1130 memset( registers, 0,
sizeof( registers ) );
1133 REQUIRE( registers[0] == 8 );
1134 REQUIRE( registers[1] == 0 );
1135 REQUIRE( registers[2] == 0 );
1136 REQUIRE( registers[3] == 0 );
1143 memset( registers, 0,
sizeof( registers ) );
1146 REQUIRE( registers[0] == 0 );
1147 REQUIRE( registers[1] == 1 );
1148 REQUIRE( registers[2] == 0 );
1149 REQUIRE( registers[3] == 0 );
1157 memset( registers, 0,
sizeof( registers ) );
1160 REQUIRE( registers[0] == 0 );
1161 REQUIRE( registers[1] == 4 );
1162 REQUIRE( registers[2] == 2 );
1163 REQUIRE( registers[3] == 0 );