@@ -12,6 +12,12 @@ use time_alarm_service_interface::{
1212} ;
1313use { defmt_rtt as _, panic_probe as _} ;
1414
15+ // Type aliases to make it easier to use the service and relay handler types without needing to write out all the generic parameters every time.
16+ // This is especially helpful for the relay handler, which has a lot of generic parameters due to the traits it needs to implement.
17+ //
18+ type TimeAlarmServiceType = time_alarm_service:: Service < ' static > ;
19+ type TimeAlarmServiceRelayHandlerType = time_alarm_service_relay:: TimeAlarmServiceRelayHandler < TimeAlarmServiceType > ;
20+
1521#[ embassy_executor:: main]
1622async fn main ( spawner : embassy_executor:: Spawner ) {
1723 let p = embassy_imxrt:: init ( Default :: default ( ) ) ;
@@ -25,7 +31,6 @@ async fn main(spawner: embassy_executor::Spawner) {
2531 embedded_services:: init ( ) . await ;
2632 info ! ( "services initialized" ) ;
2733
28- type TimeAlarmServiceType = time_alarm_service:: Service < ' static > ;
2934 let time_service = odp_service_common:: spawn_service!(
3035 spawner,
3136 TimeAlarmServiceType ,
@@ -40,19 +45,13 @@ async fn main(spawner: embassy_executor::Spawner) {
4045 )
4146 . expect ( "Failed to spawn time alarm service" ) ;
4247
43- type TimeAlarmRelayHandlerType = time_alarm_service_relay:: TimeAlarmServiceRelayHandler < TimeAlarmServiceType > ;
44-
4548 use embedded_services:: relay:: mctp:: impl_odp_mctp_relay_handler;
46- // impl_odp_mctp_relay_handler!(
47- // EspiRelayHandler;
48- // TimeAlarm, 0x0B, TimeAlarmRelayHandlerType; // TODO why doesn't it like the aliases?
49- // );
5049 impl_odp_mctp_relay_handler ! (
5150 EspiRelayHandler ;
52- TimeAlarm , 0x0B , time_alarm_service_relay :: TimeAlarmServiceRelayHandler <time_alarm_service :: Service < ' static >> ;
51+ TimeAlarm , 0x0B , crate :: TimeAlarmServiceRelayHandlerType ;
5352 ) ;
5453
55- let _relay_handler = EspiRelayHandler :: new ( TimeAlarmRelayHandlerType :: new ( time_service. clone ( ) ) ) ;
54+ let _relay_handler = EspiRelayHandler :: new ( TimeAlarmServiceRelayHandlerType :: new ( time_service. clone ( ) ) ) ;
5655
5756 // Here, you'd normally pass _relay_handler to your relay service (e.g. eSPI service).
5857 // In this example, we're not leveraging a relay service, so we'll just demonstrate some direct calls.
0 commit comments