Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of 2-ComfileHMI_Modbus by
Diff: SimpleModbus.h
- Revision:
- 2:f0fc57045b3d
diff -r 0bdf3bebb1d7 -r f0fc57045b3d SimpleModbus.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SimpleModbus.h Fri Sep 09 04:07:37 2016 +0000
@@ -0,0 +1,77 @@
+#ifndef __SimpleModbus.H__
+#define __SimpleModbus.H__
+
+#include "mbed.h"
+
+typedef uint8_t u8;
+typedef uint16_t u16;
+
+#define __ring_buffer_max 255
+/*******************************************************************************
+###############################################################################
+# Simple 모드버스 펑션 처리 #
+###############################################################################
+*******************************************************************************/
+
+void StartModbus(PinName tx, PinName rx, long baud,u8 addr ,u16 *Register, u8 *Coil );
+
+class comfileHMI
+{
+ public:
+ //private:
+ u8 __modbusComCh;
+ u8 __modbusSlaveAdr;
+ u16 * __modbusWordBuffer;
+ u8 * __modbusBitBuffer;
+ u8 __modbusBroadMode ;
+ u8 __modbusFoundFrame ;
+ u16 __modbusIntervalCounter;
+ u8 uchCRCHi, uchCRCLo;
+ u16 uINDEX;
+
+ RawSerial* device;
+
+/*******************************************************************************
+ Ring buffer Management
+*******************************************************************************/
+
+ u8 __ring_buffer[4][255];
+ u16 __save_pointer[4];
+ u16 __action_pointer[4];
+ u8 __modbusSwitch[4];
+ u16 __modbusBlankCheck;
+
+public:
+ void Rx_interrupt();
+ void RunTime_HMI();
+ void init_comfileHMI(RawSerial* Serial, u8 addr, u16 *Register, u8 *Coil);
+ void push_ringbuffer(u8 comch, u8 comdt);
+ u8 read_ringbuffer(u8 comch);
+ u16 comLen(u8 comch);
+ short comGet(u8 comch);
+ short comGets(u8 comch, u8 * dest, u16 length);
+ void comPut(u8 comch, u8 cha);
+ void comPuts(u8 comch, u8 * dest, u16 length);
+ void comFlush(u8 comch);
+
+
+
+ u8 mb_get_byte_rtu();
+ u16 mb_get_word_rtu();
+ void mb_inc_pointer();
+ void mb_put_byte_rtu(u8 dt);
+ u8 mb_collectbits(u16 adr);
+ void mbcmd_read_bit_rtu(u8 cmd);
+ void mbcmd_write_bit_single_rtu();
+ void mbcmd_read_word_rtu(u8 cmd);
+ void mbcmd_write_word_single_rtu();
+ void mb_writebits(u16 adr, u8 val, u8 ln);
+ void mbcmd_write_bit_multiple_rtu();
+ void mbcmd_write_word_multiple_rtu();
+ void mb_crc_compute(u8 rch);
+ u16 getCrc(u8 * targetArray, u16 datalength);
+ void startSimpleModbus(u8 comch, u8 modslaveadr, u16 * modbusBufferRegister, u8 * modbusBufferCoil);
+ void modbusFrameSearch(u8 comch);
+ void modbusMainProcessing();
+};
+#endif /*__SimpleModbus.H__*/
\ No newline at end of file
