You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
3.4 KiB
98 lines
3.4 KiB
//////////////////////////////////////////////////////////////////////////
|
|
/// COPYRIGHT NOTICE
|
|
/// Copyright (c) 2018, 传控科技
|
|
/// All rights reserved.
|
|
///
|
|
/// @file tpc_fsk.c
|
|
/// @brief transaction protocol control of fsk
|
|
///
|
|
///(本文件实现的功能的详述)
|
|
///
|
|
/// @version 1.1 CCsens technology
|
|
/// @author CC
|
|
/// @date 20150102
|
|
///
|
|
///
|
|
/// @version 1.2 CCsens technology
|
|
/// @author CC
|
|
/// @date 20180308
|
|
/// @info 整理
|
|
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
/*****************************************************************************
|
|
@version 1.2
|
|
update by cc @201501101001
|
|
针对多串口 和 单一串口 有区别 每个串口是独立的还是分开的有讲究 程序是复杂的还是软件应用简单是
|
|
个需要平衡的事情.
|
|
|
|
clib/uartlib.c:
|
|
公用的函数 和硬件无关
|
|
接收各类协议的处理函数
|
|
放置串行模式(串口等其他通讯总线类的输出)输出的函数,
|
|
一些覆盖模式输出的(lcd等固屏输出的)的也可使用
|
|
void Lc_print(void (*L0pf_send_uc)(char ww), char *dat,...)
|
|
-----------------------------------------------------------------------------------------
|
|
|
|
|
|
-----------------------------------------------------------------------------------------
|
|
|
|
|
|
--------------------------------------------------------------------------------------------
|
|
msp/uartx.c 底层代码 和cpu相关
|
|
L0_UART0_Init
|
|
UART0_IRQHandler
|
|
L0_Usend_uc----------s_at0
|
|
-----------------------------------------------------------------------------------------
|
|
********************************************************************************/
|
|
|
|
|
|
|
|
#ifndef __TPC_CCMODBUS_H_
|
|
#define __TPC_CCMODBUS_H_
|
|
|
|
#include "tpc_x.h"
|
|
#include "modbus.h"
|
|
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
|
///协议类型: 十六进制协议3->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
/// 发送的数据为有ff fe开头的十六进制的长协议,内包含标准的modbus协议
|
|
///FF FE 08 52 16 11 22 33 44 F5 9F 发送了一个modbus协议包(8个数据52 16 11 22 33 44 F5 9F )
|
|
/// 协议表达的意思为地址为0x52的从机, 功能码16 数据为11 22 33 44,校验码 F5 9F
|
|
/// 校验码的范围为
|
|
|
|
#define D_s_PH3_ccmodbus_max 128
|
|
#define D_s_ccmodbus_min (D_s_modbus_min + 3)
|
|
extern vU8 D_CMD_Filter1_ff;
|
|
extern vU8 D_CMD_Filter2_fe;
|
|
typedef struct
|
|
{//8byte
|
|
vU8 filter1;
|
|
vU8 filter2;
|
|
vU8 num; //接收到的数据的计数, 随着数据接收而变化注意数据长度的范围
|
|
vU8 slaver; //发送方的地址或命令
|
|
vU8 oper; //命令
|
|
vU8 buf[D_s_PH3_ccmodbus_max - 3];//D_s_PH3_ccmodbus_max - 3,长一点防止越界
|
|
vU8 crc[2]; //crc16
|
|
}TS_PH3_ccmodbus;
|
|
|
|
#if 0
|
|
typedef struct
|
|
{
|
|
U16 slaver;
|
|
U16 oper;
|
|
U16 reg;
|
|
U16 regnum;
|
|
U16 bytes;
|
|
U8 *buf;
|
|
U16 mask;
|
|
}CCMD_SLAVER_INFO;
|
|
#endif
|
|
|
|
extern U8 L3_pack_ccmodbus(TS_PH3_ccmodbus *pccmodbus, MD_SLAVER_INFO *slaver_info);
|
|
extern U16 L3_ccmodbus_slaver_ack(TS_PH3_ccmodbus *pccmodbus,TS_PH3_ccmodbus *pModbusAck);
|
|
extern void L3_ccmodbus_master_handler(TS_PH3_ccmodbus *pmodbus,MD_SLAVER_INFO *p_slaver_info);
|
|
extern void L1_s2b_PH3(struct _tp_handler_x *p);// reentrant;
|
|
|
|
#endif /* end __TPC_CCMODBUS_H_ */
|