/* * File : demo.c * This file is part of freemodbus in RT-Thread RTOS * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rt-thread.org/license/LICENSE * * Change Logs: * Date Author Notes * 2010-04-04 yi.qiu first version * 2010-04-07 LiJin */ /* ----------------------- Platform includes --------------------------------*/ #include #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ #include "mb.h" #include "mbconfig.h" #include "mbframe.h" #include "mbproto.h" #include "mbfunc.h" #include "varible.h" void rt_modbus_thread_entry(void* parameter) { eMBErrorCode eStatus; USHORT buf[1]; varible_group_t var_group; var_group = varible_group_get(); eStatus = eMBInit( MB_RTU, 0x0A, 0, 115200, MB_PAR_EVEN ); /* Enable the Modbus Protocol Stack. */ eStatus = eMBEnable(); rt_thread_delay(50); while(1) { int i = 0; var_group->table->hash_table[]. if(eMBMReadCoils(0x01, 0x0, 0x6, buf) != MB_ETIMEDOUT) rt_thread_delay(100); } } int modbus_start(void) { rt_thread_t modbus_thread; modbus_thread = rt_thread_create("modbus", rt_modbus_thread_entry, RT_NULL, 2048, 20, 20); if (modbus_thread != RT_NULL) rt_thread_startup(modbus_thread); return 0; } eMBErrorCode eMBRegInputCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs ) { return MB_ENOREG; } eMBErrorCode eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegisterMode eMode ) { return MB_ENOREG; } eMBErrorCode eMBRegCoilsCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNCoils, eMBRegisterMode eMode ) { return MB_ENOREG; } eMBErrorCode eMBRegDiscreteCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNDiscrete ) { return MB_ENOREG; }