11-- ----------------------------------------------------------------------------
22-- --
3- -- Copyright (C) 2025 , AdaCore --
3+ -- Copyright (C) 2026 , AdaCore --
44-- --
55-- Redistribution and use in source and binary forms, with or without --
66-- modification, are permitted provided that the following conditions are --
3232package body BMP280 is
3333
3434 function Time_Standby_To_UInt3
35- (Time_Standby : Time_Standby_Type ) return UInt3;
35+ (Time_Standby : Standby_Milliseconds ) return UInt3;
3636
3737 -- --------------
3838 -- Initialize --
3939 -- --------------
4040
4141 procedure Initialize
42- (This : in out BMP280_Device ;
42+ (This : in out BMP280_Pressure_Sensor ;
4343 CS : Any_GPIO_Point;
4444 SPI : Any_SPI_Port;
4545 Error : out Boolean) is
@@ -77,7 +77,7 @@ package body BMP280 is
7777 -- CS_Low --
7878 -- ----------
7979
80- procedure CS_Low (This : BMP280_Device ) is
80+ procedure CS_Low (This : BMP280_Pressure_Sensor ) is
8181 begin
8282 if This.Holder.CS /= null then
8383 This.Holder.CS.Clear;
@@ -88,7 +88,7 @@ package body BMP280 is
8888 -- CS_High --
8989 -- -----------
9090
91- procedure CS_High (This : BMP280_Device ) is
91+ procedure CS_High (This : BMP280_Pressure_Sensor ) is
9292 begin
9393 if This.Holder.CS /= null then
9494 This.Holder.CS.Set;
@@ -100,7 +100,7 @@ package body BMP280 is
100100 -- -----------------
101101
102102 function Read_Register
103- (This : BMP280_Device ;
103+ (This : BMP280_Pressure_Sensor ;
104104 Register : Register_Name)
105105 return UInt8
106106 is
@@ -131,7 +131,7 @@ package body BMP280 is
131131 -- ------------------
132132
133133 procedure Write_Register
134- (This : BMP280_Device ;
134+ (This : BMP280_Pressure_Sensor ;
135135 Register : Register_Name;
136136 Data : UInt8)
137137 is
@@ -161,7 +161,7 @@ package body BMP280 is
161161 -- -----------------
162162
163163 function Read_Register
164- (This : BMP280_Device ;
164+ (This : BMP280_Pressure_Sensor ;
165165 Msb : Register_Name;
166166 Lsb : Register_Name)
167167 return UInt16 is
@@ -175,7 +175,7 @@ package body BMP280 is
175175 -- -----------------
176176
177177 function Read_Register
178- (This : BMP280_Device ;
178+ (This : BMP280_Pressure_Sensor ;
179179 Msb : Register_Name;
180180 Lsb : Register_Name)
181181 return Interfaces.Integer_16
@@ -190,7 +190,7 @@ package body BMP280 is
190190 -- Read_Trim_Registers --
191191 -- -----------------------
192192
193- procedure Read_Trim_Registers (This : in out BMP280_Device ) is
193+ procedure Read_Trim_Registers (This : in out BMP280_Pressure_Sensor ) is
194194 begin
195195 This.Holder.Dig_T1 := Integer_32
196196 (UInt16'(Read_Register (This, dig_T1_msb, dig_T1_lsb)));
@@ -234,18 +234,18 @@ package body BMP280 is
234234 -- -----------------
235235
236236 function Read_Register
237- (This : BMP280_Device ;
238- Precision : Precision_Type ;
239- Msb : Register_Name;
240- Lsb : Register_Name;
241- Xlsb : Register_Name)
237+ (This : BMP280_Pressure_Sensor ;
238+ Resol : Resolution ;
239+ Msb : Register_Name;
240+ Lsb : Register_Name;
241+ Xlsb : Register_Name)
242242 return Interfaces.Integer_32
243243 is
244244 Xlsb_Data : UInt8 := Read_Register (This, Xlsb);
245245 Sb_Data : constant UInt32 := UInt32
246246 (UInt16'(Read_Register (This => This, Msb => Msb, Lsb => Lsb)));
247247 begin
248- case Precision is
248+ case Resol is
249249 when Skipped | Ultra_Low_Power =>
250250 null ;
251251
@@ -270,7 +270,7 @@ package body BMP280 is
270270 -- Get_Chip_ID --
271271 -- ---------------
272272
273- function Get_Chip_ID (This : BMP280_Device ) return Chip_ID is
273+ function Get_Chip_ID (This : BMP280_Pressure_Sensor ) return Chip_ID is
274274 begin
275275 return Chip_ID (Read_Register (This, id));
276276 end Get_Chip_ID ;
@@ -279,7 +279,7 @@ package body BMP280 is
279279 -- Reset --
280280 -- ---------
281281
282- procedure Reset (This : BMP280_Device ) is
282+ procedure Reset (This : BMP280_Pressure_Sensor ) is
283283 begin
284284 Write_Register
285285 (This => This,
@@ -291,10 +291,10 @@ package body BMP280 is
291291 -- Get_Status --
292292 -- --------------
293293
294- function Get_Status (This : BMP280_Device ) return Status_Type
294+ function Get_Status (This : BMP280_Pressure_Sensor ) return Device_Status
295295 is
296296 Data : UInt8;
297- Register : Status_Type with Import, Address => Data'Address;
297+ Register : Device_Status with Import, Address => Data'Address;
298298 begin
299299 Data := Read_Register (This, status);
300300 return Register;
@@ -304,7 +304,7 @@ package body BMP280 is
304304 -- Is_Measuring_Set --
305305 -- --------------------
306306
307- function Is_Measuring_Set (Status : Status_Type ) return Boolean is
307+ function Is_Measuring_Set (Status : Device_Status ) return Boolean is
308308 begin
309309 return Status.Measuring = 1 ;
310310 end Is_Measuring_Set ;
@@ -313,7 +313,7 @@ package body BMP280 is
313313 -- Is_Im_Update_Set --
314314 -- --------------------
315315
316- function Is_Im_Update_Set (Status : Status_Type ) return Boolean is
316+ function Is_Im_Update_Set (Status : Device_Status ) return Boolean is
317317 begin
318318 return Status.Im_Update = 1 ;
319319 end Is_Im_Update_Set ;
@@ -323,8 +323,8 @@ package body BMP280 is
323323 -- ------------------
324324
325325 procedure Set_Power_Mode
326- (This : BMP280_Device ;
327- Power_Mode : Power_Mode_Type )
326+ (This : BMP280_Pressure_Sensor ;
327+ Power_Mode : Power_Modes )
328328 is
329329 Data : UInt8;
330330 Register : Ctrl_Meas_Register with Import, Address => Data'Address;
@@ -339,14 +339,14 @@ package body BMP280 is
339339 -- ----------------------
340340
341341 procedure Set_Temp_Precision
342- (This : BMP280_Device ;
343- Precision : Precision_Type )
342+ (This : BMP280_Pressure_Sensor ;
343+ Value : Resolution )
344344 is
345345 Data : UInt8;
346346 Register : Ctrl_Meas_Register with Import, Address => Data'Address;
347347 begin
348348 Data := Read_Register (This, ctrl_meas);
349- Register.osrs_t := Precision ;
349+ Register.osrs_t := Value ;
350350 Write_Register (This, ctrl_meas, Data);
351351 end Set_Temp_Precision ;
352352
@@ -355,14 +355,14 @@ package body BMP280 is
355355 -- -----------------------
356356
357357 procedure Set_Press_Precision
358- (This : BMP280_Device ;
359- Precision : Precision_Type )
358+ (This : BMP280_Pressure_Sensor ;
359+ Value : Resolution )
360360 is
361361 Data : UInt8;
362362 Register : Ctrl_Meas_Register with Import, Address => Data'Address;
363363 begin
364364 Data := Read_Register (This, ctrl_meas);
365- Register.osrs_p := Precision ;
365+ Register.osrs_p := Value ;
366366 Write_Register (This, ctrl_meas, Data);
367367 end Set_Press_Precision ;
368368
@@ -371,11 +371,11 @@ package body BMP280 is
371371 -- --------------------
372372
373373 procedure Set_Time_Standby
374- (This : BMP280_Device ;
375- Time_Standby : Time_Standby_Type )
374+ (This : BMP280_Pressure_Sensor ;
375+ Time_Standby : Standby_Milliseconds )
376376 is
377- Data : UInt8;
378- Register : Config_Register with Import, Address => Data'Address;
377+ Data : UInt8;
378+ Register : Config_Register with Import, Address => Data'Address;
379379 begin
380380 Data := Read_Register (This, config);
381381 Register.t_sb := Time_Standby_To_UInt3 (Time_Standby);
@@ -387,8 +387,8 @@ package body BMP280 is
387387 -- --------------
388388
389389 procedure Set_Filter
390- (This : BMP280_Device ;
391- Filter : Filter_Type )
390+ (This : BMP280_Pressure_Sensor ;
391+ Filter : Filters )
392392 is
393393 Data : UInt8;
394394 Register : Config_Register with Import, Address => Data'Address;
@@ -403,7 +403,7 @@ package body BMP280 is
403403 -- --------------
404404
405405 function Get_T_Fine
406- (This : BMP280_Device ;
406+ (This : BMP280_Pressure_Sensor ;
407407 Adc_T : Interfaces.Integer_32)
408408 return Interfaces.Integer_32
409409 is
@@ -420,11 +420,11 @@ package body BMP280 is
420420 return var1 + var2;
421421 end Get_T_Fine ;
422422
423- -- ------------
424- -- Get_Temp --
425- -- ------------
423+ -- -------------------
424+ -- Get_Temperature --
425+ -- -------------------
426426
427- function Get_Temp (This : BMP280_Device ) return Temperature
427+ function Get_Temperature (This : BMP280_Pressure_Sensor ) return Temperature
428428 is
429429 Val : constant UInt8 := Read_Register (This, ctrl_meas);
430430 Resolution : Ctrl_Meas_Register with Import, Address => Val'Address;
@@ -436,21 +436,21 @@ package body BMP280 is
436436 end if ;
437437
438438 Adc_T := Read_Register
439- (This => This,
440- Precision => Resolution.osrs_t,
441- Msb => temp_msb,
442- Lsb => temp_lsb,
443- Xlsb => temp_xlsb);
439+ (This => This,
440+ Resol => Resolution.osrs_t,
441+ Msb => temp_msb,
442+ Lsb => temp_lsb,
443+ Xlsb => temp_xlsb);
444444 T := (Get_T_Fine (This, Adc_T) * 5 + 128 ) / 256 ;
445445
446446 return Temperature (Float (T) / 100.0 );
447- end Get_Temp ;
447+ end Get_Temperature ;
448448
449- -- -------------
450- -- Get_Press --
451- -- -------------
449+ -- ----------------
450+ -- Get_Pressure --
451+ -- ----------------
452452
453- function Get_Press (This : BMP280_Device ) return Pressure
453+ function Get_Pressure (This : BMP280_Pressure_Sensor ) return Pressure
454454 is
455455 Val : constant UInt8 := Read_Register (This, ctrl_meas);
456456 Resolution : Ctrl_Meas_Register with Import, Address => Val'Address;
@@ -479,14 +479,14 @@ package body BMP280 is
479479
480480 Adc_T := Read_Register
481481 (This => This,
482- Precision => Resolution.osrs_t,
482+ Resol => Resolution.osrs_t,
483483 Msb => temp_msb,
484484 Lsb => temp_lsb,
485485 Xlsb => temp_xlsb);
486486
487487 Adc_P := Read_Register
488488 (This => This,
489- Precision => Resolution.osrs_p,
489+ Resol => Resolution.osrs_p,
490490 Msb => press_msb,
491491 Lsb => press_lsb,
492492 Xlsb => press_xlsb);
@@ -511,13 +511,13 @@ package body BMP280 is
511511 P := (((P + Var1 + Var2) / 256 ) + (Integer_64 (dig_P7) * 16 ));
512512
513513 return Pressure (Float (P) / 25600.0 );
514- end Get_Press ;
514+ end Get_Pressure ;
515515
516516 -- ----------------
517517 -- Set_SPI_Mode --
518518 -- ----------------
519519
520- procedure Set_SPI_Mode (This : BMP280_Device ; Mode : SPI_Mode)
520+ procedure Set_SPI_Mode (This : BMP280_Pressure_Sensor ; Mode : SPI_Mode)
521521 is
522522 Data : UInt8;
523523 Register : Config_Register with Import, Address => Data'Address;
@@ -536,7 +536,7 @@ package body BMP280 is
536536 -- --------------------
537537
538538 function Time_Standby_To_UInt3
539- (Time_Standby : Time_Standby_Type ) return UInt3 is
539+ (Time_Standby : Standby_Milliseconds ) return UInt3 is
540540 begin
541541 return (if Time_Standby = 0.5 then 2#000#
542542 elsif Time_Standby = 62.5 then 2#001#
0 commit comments