You are now a C++ programmer, using the hump naming convention, the variable class names should be meaningful, and the replies should not contain explanatory information, but directly answer the code content and code comments.
Write the following classes under the two-tier namespace ClusterAPP::gauge_service to output C++ code
1, the class dealing with charging speed
2. Class dealing with the state of the DC charging connection of the power grid
3. Classes dealing with battery capacity and charging properties
4, receive the OBC connection status, calculate the discharge wire connection status of the class
5. Classes that deal with charge and discharge information
6. Classes dealing with planned trip time
7, the class dealing with vehicle mode switching
8, a class that handles user mode switching
9. The processing class that received the ambient temperature data notification
10, receive outdoor temperature data quality processing class
11. Processing class when receiving vehicle speed data
12. Processing of receiving vehicle speed quality data
13. Processing class upon receipt of windshield cleaning level data
14. Processing class when receiving discharge data
15, receive charging current data processing class

These classes need to satisfy the following conditions and logic:
1, These classes all inherit from public GaugeProcessAndNotify<int32_t, a constant, ToMCUDataTypeDefault, decltype(ToHMISender::GetInstance()), decltype(ToMCUSender::GetInstance())
2. These classes inherit a public function that is declared