Comfiletechnology / Mbed 2 deprecated 2-ComfileHMI_Modbus

Dependencies:   mbed

Fork of 2-ComfileHMI_Modbus by Comfiletechnology

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