]> mj.ucw.cz Git - home-hw.git/blobdiff - test-modbus/test.c
Power daemon: A new daemon for relaying power meter data to MQTT
[home-hw.git] / test-modbus / test.c
index 4dc1f41757f2aaf86d68261ae88e540c9857e050..e8909987baef0d4d2b9cda74929b72daf7f4b349 100644 (file)
@@ -33,6 +33,11 @@ static void gpio_setup(void)
        // PC13 = BluePill LED
        gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO13);
        gpio_clear(GPIOC, GPIO13);
+
+       // Pins for MODBUS USART
+       gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO_USART2_RX);
+       gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO_USART2_TX);
+       gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
 }
 
 static volatile u32 ms_ticks;
@@ -98,7 +103,7 @@ int main(void)
        // gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8);
 
        for (;;) {
-               //gpio_toggle(GPIOC, GPIO13);
+               gpio_toggle(GPIOC, GPIO13);
                delay_ms(50);
                // gpio_toggle(GPIOA, GPIO8);
                //timer_set_oc_mode(TIM4, TIM_OC1, TIM_OCM_FORCE_LOW);
@@ -109,3 +114,62 @@ int main(void)
 
        return 0;
 }
+
+/*** Modbus callbacks ***/
+
+bool modbus_check_discrete_input(u16 addr UNUSED)
+{
+       return false;
+}
+
+bool modbus_get_discrete_input(u16 addr UNUSED)
+{
+       return false;
+}
+
+bool modbus_check_coil(u16 addr UNUSED)
+{
+       return false;
+}
+
+bool modbus_get_coil(u16 addr UNUSED)
+{
+       return false;
+}
+
+void modbus_set_coil(u16 addr UNUSED, bool value UNUSED)
+{
+}
+
+bool modbus_check_input_register(u16 addr UNUSED)
+{
+       return false;
+}
+
+u16 modbus_get_input_register(u16 addr UNUSED)
+{
+       return 0;
+}
+
+bool modbus_check_holding_register(u16 addr UNUSED)
+{
+       return (addr < 16);
+}
+
+u16 modbus_get_holding_register(u16 addr UNUSED)
+{
+       return 0xbeef;
+}
+
+void modbus_set_holding_register(u16 addr UNUSED, u16 value UNUSED)
+{
+}
+
+const char * const modbus_id_strings[MODBUS_ID_MAX] = {
+       [MODBUS_ID_VENDOR_NAME] = "United Computer Wizards",
+       [MODBUS_ID_PRODUCT_CODE] = "42",
+       [MODBUS_ID_MAJOR_MINOR_REVISION] = "1.0",
+       [MODBUS_ID_VENDOR_URL] = "http://www.ucw.cz/",
+       [MODBUS_ID_PRODUCT_NAME] = "Magic Gadget",
+       [MODBUS_ID_USER_APP_NAME] = NULL,
+};