@@ -12,6 +12,10 @@ namespace MiniCarLib
1212 public delegate void OnCarLeaveConfirmedHandler ( QianCar car ) ;
1313 public delegate void OnCarUnregisterHandler ( QianCar car ) ;
1414 public delegate void OnCarErrorReportedHandler ( QianCar car , CarErrorState errcode , byte [ ] errinfo ) ;
15+ public delegate void OnCarMotorSpeedSetHandler ( QianCar car , byte speed ) ;
16+ //public delegate void OnCarPausedHandler(QianCar car);
17+ public delegate void OnCarResumingHandler ( QianCar car , ReportCarStateData data ) ;
18+
1519 public static class QianCarAPI
1620 {
1721 static QianCarController controller ;
@@ -31,12 +35,25 @@ public static class QianCarAPI
3135 public static event OnCarUnregisterHandler OnCarUnregisterRequest ;
3236 public static event OnCarUnregisterHandler OnCarUnregisterResponse ;
3337 public static event OnCarErrorReportedHandler OnCarErrorReported ;
38+ public static event OnCarMotorSpeedSetHandler OnCarMotorSpeedSet ;
39+ //public static event OnCarPausedHandler OnCarPaused;
40+ public static event OnCarResumingHandler OnCarResuming ;
3441
3542 private static void InitEvents ( )
3643 {
3744 controller . OnCustomData += OnCustomData ;
3845 controller . AfterRegistered += ( car , data ) => { if ( car != null ) OnCarRegistered ? . Invoke ( ( QianCar ) car ) ; } ;
39- controller . AfterReportState += ( car , data ) => OnCarStateReported ? . Invoke ( ( QianCar ) car , ( ( ReportCarStateData ) data ) . IsACK ) ;
46+ controller . AfterReportState += ( car , data ) =>
47+ {
48+ OnCarStateReported ? . Invoke ( ( QianCar ) car , ( ( ReportCarStateData ) data ) . IsACK ) ;
49+ } ;
50+ controller . BeforeReportState += ( car , data ) =>
51+ {
52+ QianCar c = ( QianCar ) car ;
53+ ReportCarStateData dt = ( ReportCarStateData ) data ;
54+ if ( c . State == CarState . EmergencyStop && dt . State != CarState . EmergencyStop )
55+ OnCarResuming ? . Invoke ( c , dt ) ;
56+ } ;
4057 controller . OnApplyForEnter += ( car , data ) => OnCarApplyForEnter ? . Invoke (
4158 ( QianCar ) car ,
4259 controller . Map [ ( ( ApplyForEnterData ) data ) . PointID ]
@@ -57,6 +74,7 @@ private static void InitEvents()
5774 var obj = ( ErrorReportData ) data ;
5875 OnCarErrorReported ? . Invoke ( ( QianCar ) car , obj . ErrorCode , obj . ErrorData ) ;
5976 } ;
77+ controller . OnMotorSpeedSet += ( car , data ) => OnCarMotorSpeedSet ( ( QianCar ) car , ( ( SetMotorSpeedData ) data ) . MotorSpeed ) ;
6078 }
6179
6280
@@ -109,7 +127,10 @@ public static void Init(QianCarController ct, string mapfile, byte[] password =
109127 public static void CallCarLeave ( QianCar car , bool allow ) => controller . CallCarLeave ( car , allow ) ;
110128 public static void UnregisterCar ( QianCar car ) => controller . UnregisterCar ( car ) ;
111129 public static void ConfirmUnregteration ( QianCar car , bool allow , bool removecar = true ) => controller . ConfirmUnregteration ( car , allow , removecar ) ;
112- public static void EmergencyStopCar ( QianCar car ) => controller . EmergencyStopCar ( car , 0x00 ) ;
130+ //public static void EmergencyStopCar(QianCar car) => controller.EmergencyStopCar(car, 0x00);
131+ public static void PauseCar ( QianCar car , byte code = 0x00 ) => controller . EmergencyStopCar ( car , true , code ) ;
132+ public static void ResumeCar ( QianCar car , byte code = 0x00 ) => controller . EmergencyStopCar ( car , false , code ) ;
133+ public static void SetMotroSpeed ( QianCar car , byte speed ) => controller . SetMotorSpeed ( car , speed ) ;
113134 public static void SendCustomData ( QianCar car , byte [ ] data ) => controller . SendCustomData ( car , new CustomData ( ) { UserData = data } ) ;
114135
115136 }
0 commit comments