si5351_get_instance, first sinfo command
This commit is contained in:
parent
b50820b49e
commit
152ccf00e4
@ -23,6 +23,7 @@ extern RTC_HandleTypeDef hrtc;
|
|||||||
int do_help(char *args);
|
int do_help(char *args);
|
||||||
int do_devid(char *args);
|
int do_devid(char *args);
|
||||||
int do_info(char *args);
|
int do_info(char *args);
|
||||||
|
int do_sinfo(char *args);
|
||||||
int do_test(/*command_inst_t inst,*/ char *args);
|
int do_test(/*command_inst_t inst,*/ char *args);
|
||||||
int do_time(char *args);
|
int do_time(char *args);
|
||||||
|
|
||||||
|
@ -155,6 +155,8 @@ char * si5351_read_register_debug(si5351_inst_t inst, char *buf, size_t bufsize,
|
|||||||
int si5351_write_data(si5351_inst_t inst, void * data);
|
int si5351_write_data(si5351_inst_t inst, void * data);
|
||||||
int si5351_read_data(si5351_inst_t inst, void * data);
|
int si5351_read_data(si5351_inst_t inst, void * data);
|
||||||
|
|
||||||
|
int si5351_get_instance(si5351_inst_t *inst);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include <string.h> //strchr
|
#include <string.h> //strchr
|
||||||
#include <stdlib.h> //bsearch
|
#include <stdlib.h> //bsearch
|
||||||
#include "helper.h" //ltrim
|
#include "helper.h" //ltrim
|
||||||
|
#include "stm32_si5351.h"
|
||||||
|
|
||||||
#include "commands.h"
|
#include "commands.h"
|
||||||
|
|
||||||
@ -55,7 +56,8 @@ static const cmd_table_t cmd_table[] = {
|
|||||||
{"help", 1, CMD_NO_FLAG, do_help },
|
{"help", 1, CMD_NO_FLAG, do_help },
|
||||||
{"hidden", 2, CMD_HIDDEN, do_test },
|
{"hidden", 2, CMD_HIDDEN, do_test },
|
||||||
{"info", 1, CMD_NO_FLAG, do_info },
|
{"info", 1, CMD_NO_FLAG, do_info },
|
||||||
{"secret", 1, CMD_SECRET, do_test },
|
{"sinfo", 1, CMD_SECRET, do_sinfo },
|
||||||
|
|
||||||
{"time", 1, CMD_NO_FLAG, do_time },
|
{"time", 1, CMD_NO_FLAG, do_time },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -156,6 +158,20 @@ int do_info(char *args) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int do_sinfo(char *args) {
|
||||||
|
int rv = 0;
|
||||||
|
(void)args;
|
||||||
|
si5351_inst_t inst = NULL;
|
||||||
|
rv = si5351_get_instance(&inst);
|
||||||
|
printf("%d Si5351 instance%s found.\n", rv, (rv==1)?"":"s");
|
||||||
|
while (rv > 0) {
|
||||||
|
printf("Si5351 Handle: 0x%08lx\n", (uint32_t)inst);
|
||||||
|
|
||||||
|
rv = si5351_get_instance(&inst);
|
||||||
|
}
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
int do_time(char *args) {
|
int do_time(char *args) {
|
||||||
|
|
||||||
HAL_StatusTypeDef status;
|
HAL_StatusTypeDef status;
|
||||||
|
@ -112,7 +112,7 @@ typedef struct {
|
|||||||
|
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
si5351_HandleTypeDef * first_handle = NULL; /* pointer to the first instance */
|
si5351_HandleTypeDef * first_handle = NULL; /* pointer to the first instance */
|
||||||
int si5351_errno = 0; /* error_number for functions whith return == NULL */
|
int si5351_errno = 0; /* error_number for functions with return == NULL */
|
||||||
|
|
||||||
/* Private function prototypes -----------------------------------------------*/
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@ -932,3 +932,31 @@ char * si5351_read_register_debug(si5351_inst_t inst, char *buf, size_t bufsize,
|
|||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
#endif //DEBUG
|
#endif //DEBUG
|
||||||
|
|
||||||
|
/* some additional functions */
|
||||||
|
/** @brief Function to get the handle of a si5351 device instance
|
||||||
|
* @param si5351_instance Given si5351 device handle or NULL for the first handle.
|
||||||
|
* @return si5351_inst_t handle
|
||||||
|
* @retval NULL when not found
|
||||||
|
*/
|
||||||
|
int si5351_get_instance(si5351_inst_t *inst) {
|
||||||
|
|
||||||
|
si5351_inst_t tinst;
|
||||||
|
int rv = 0;
|
||||||
|
|
||||||
|
if (!inst)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (!(*inst))
|
||||||
|
*inst = first_handle;
|
||||||
|
else
|
||||||
|
*inst = (*inst)->next;
|
||||||
|
|
||||||
|
tinst = *inst;
|
||||||
|
while (tinst) {
|
||||||
|
rv++;
|
||||||
|
tinst = tinst->next;
|
||||||
|
}
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user