diff options
Diffstat (limited to 'source/hal/include')
-rw-r--r-- | source/hal/include/data_acq.h | 52 | ||||
-rw-r--r-- | source/hal/include/data_psn.h | 72 | ||||
-rw-r--r-- | source/hal/include/hal.h | 29 | ||||
-rw-r--r-- | source/hal/include/hal_lcd.h | 49 |
4 files changed, 65 insertions, 137 deletions
diff --git a/source/hal/include/data_acq.h b/source/hal/include/data_acq.h deleted file mode 100644 index 965fbe5..0000000 --- a/source/hal/include/data_acq.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2021 Arm Limited. All rights reserved. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef DATA_ACQ_H -#define DATA_ACQ_H - -/** - * This file is the top level abstraction for the data acquisition module. - **/ -#include <stdint.h> - -/* Structure to encompass the data acquisition module and it's methods. */ -typedef struct data_acquisition_module { - int inited; /**< initialised or not. */ - char system_name[8]; /**< name(s) of the channel in use. */ - int (* system_init)(void); /**< channel initialisation function. */ - - /* Function to go and check if there are any events that require handling. */ - int (* get_input)(char *user_input, int size); -} data_acq_module; - -/** - * @brief Initialise the data acquisition channel: goes and - * sets the required channel up for usage. - * @param[in,out] module Pointer to a pre-allocated data - * acquisition structure object. - * @return 0 if successful, error code otherwise. - **/ -int data_acq_channel_init(data_acq_module *module); - -/** - * @brief Releases the data acquisition channel. - * @param[in,out] module Pointer to a pre-allocated data - * acquisition structure object. - * @return 0 if successful, error code otherwise. - **/ -int data_acq_channel_release(data_acq_module *module); - -#endif /* DATA_ACQ_H */ diff --git a/source/hal/include/data_psn.h b/source/hal/include/data_psn.h deleted file mode 100644 index 05d7649..0000000 --- a/source/hal/include/data_psn.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2021-2022 Arm Limited. All rights reserved. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef DATA_PSN_H -#define DATA_PSN_H - -/** - * This file is the top level abstraction for the data presentation module - **/ -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> - -/* Structure to encompass the data presentation module and it's methods */ -typedef struct data_presentation_module { - int inited; /**< initialised or not */ - char system_name[8]; /**< name of the system in use */ - int (* system_init)(void); /**< pointer to init function */ - - /** Pointer to the image presentation function */ - int (* present_data_image)(const uint8_t *data, const uint32_t width, - const uint32_t height, const uint32_t channels, - const uint32_t pos_x, const uint32_t pos_y, - const uint32_t downsample_factor); - - /* Pointer to text presentation function */ - int (* present_data_text)(const char *str, const size_t str_sz, - const uint32_t pos_x, const uint32_t pos_y, - const bool allow_multiple_lines); - - /* Pointer to box presentation function */ - int (* present_box)(const uint32_t pos_x, const uint32_t pos_y, - const uint32_t width, const uint32_t height, const uint16_t color); - - /* Pointer to clear presentation function */ - int (* clear)(const uint16_t color); - - /* Pointer to set text color presentation function */ - int (* set_text_color)(const uint16_t color); -} data_psn_module; - - -/** - * @brief Initialises the data presentation system. - * @param[in,out] module Pointer to a pre-allocated data - * presentation structure object. - * @return 0 if successful, error code otherwise. - **/ -int data_psn_system_init(data_psn_module *module); - -/** - * @brief Releases the data presentation system. - * @param[in,out] module Pointer to a pre-allocated data - * presentation structure object. - * @return 0 if successful, error code otherwise. - **/ -int data_psn_system_release(data_psn_module *module); - -#endif /* DATA_PSN_H */ diff --git a/source/hal/include/hal.h b/source/hal/include/hal.h index 6335e6d..25ea1e2 100644 --- a/source/hal/include/hal.h +++ b/source/hal/include/hal.h @@ -28,20 +28,18 @@ extern "C" { #endif -#include "platform_drivers.h" /* Platform drivers */ -#include "data_acq.h" /* Data acquisition abstraction */ -#include "data_psn.h" /* Data presentation abstraction */ -#include "timer.h" /* Timer/profiler API */ +#include "platform_drivers.h" /* Platform drivers */ +#include "timer.h" /* Timer/profiler API */ +#include "hal_lcd.h" /* LCD functions */ #include <inttypes.h> +#include <stdbool.h> /* Structure to define a platform context to be used by the application */ typedef struct hal_platform_context { int inited; /**< initialised */ char plat_name[64]; /**< name of this platform */ - data_acq_module * data_acq; /**< data acquisition module pointer */ - data_psn_module * data_psn; /**< data presentation module pointer */ - platform_timer * timer; /**< timer */ + platform_timer* timer; /**< timer */ int (* platform_init)(); /**< pointer to platform initialisation function */ void (* platform_release)(); /**< pointer to platform release function */ } hal_platform; @@ -50,13 +48,10 @@ typedef struct hal_platform_context { * @brief Initialise the HAL structure based on compile time config. This * should be called before any other function in this API. * @param[in,out] platform Pointer to a pre-allocated platform struct. - * @param[in,out] data_acq Pointer to a pre-allocated data acquisition module. - * @param[in,out] data_psn Pointer to a pre-allocated data presentation module. * @param[in,out] timer Pointer to a pre-allocated timer module. * @return 0 if successful, error code otherwise. **/ -int hal_init(hal_platform *platform, data_acq_module *data_acq, - data_psn_module *data_psn, platform_timer *timer); +int hal_init(hal_platform* platform, platform_timer* timer); /** @@ -66,7 +61,7 @@ int hal_init(hal_platform *platform, data_acq_module *data_acq, * platform structure. * @return 0 if successful, error code otherwise. **/ -int hal_platform_init(hal_platform *platform); +int hal_platform_init(hal_platform* platform); /** @@ -74,7 +69,15 @@ int hal_platform_init(hal_platform *platform); * @param[in] platform pointer to a pre-allocated and initialised * platform structure. **/ -void hal_platform_release(hal_platform *platform); +void hal_platform_release(hal_platform* platform); + +/** + * @brief Gets user input from the stdin interface. + * @param[out] user_input Pointer to a buffer where the input will be stored. + * @param[in] size Buffer size in bytes. + * @return True if successful, false otherwise. + */ +bool hal_get_user_input(char* user_input, int size); #ifdef __cplusplus } diff --git a/source/hal/include/hal_lcd.h b/source/hal/include/hal_lcd.h new file mode 100644 index 0000000..0a484c5 --- /dev/null +++ b/source/hal/include/hal_lcd.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2021-2022 Arm Limited. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef HAL_LCD_H +#define HAL_LCD_H +/** + * This file is the top level abstraction for the LCD related functions + **/ + +#include "lcd_img.h" + +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> + +/** + * See lcd_img.h for function docstrings. + * In the following macro definitions: + * d = data (pointer) + * w = width + * h = height + * c = channels + * x = x position + * y = y position + * s = down-sample factor (images) + * m = allow multiple lines (text) + * cl = colour + */ +#define hal_lcd_init() lcd_init() +#define hal_lcd_display_image(d,w,h,c,x,y,s) lcd_display_image(d,w,h,c,x,y,s) +#define hal_lcd_display_text(s,l,x,y,m) lcd_display_text(s,l,x,y,m) +#define hal_lcd_display_box(x,y,w,h,cl) lcd_display_box(x,y,w,h,cl) +#define hal_lcd_clear(cl) lcd_clear(cl) +#define hal_lcd_set_text_color(cl) lcd_set_text_color(cl) + +#endif /* HAL_LCD_H */ |