| 143 | } |
| 144 | |
| 145 | uint8_t get_value(uint32_t type, uint8_t level) |
| 146 | { |
| 147 | level *= bits_count; // level to bits; |
| 148 | |
| 149 | uint32_t const m = uint32_t(max_value) << level; |
| 150 | type &= m; // leave only our bits |
| 151 | |
| 152 | type = type >> level; // move to start |
| 153 | ASSERT(type <= max_value, ("invalid output value", type)); |
| 154 | |
| 155 | return uint8_t(type); // conversion |
| 156 | } |
| 157 | |
| 158 | uint8_t get_control_level(uint32_t type) |
| 159 | { |