From 8cb55b6e7ac3494ffd0128d02124a15d0ef25043 Mon Sep 17 00:00:00 2001
From: "7u83@mail.ru" <7u83@mail.ru@noemail.net>
Date: Wed, 28 Mar 2018 08:11:47 +0000
Subject: [PATCH] Separated cw_out_radio generic
There are now cw_write_radio_element.c and cw_out_radio_generic.c
FossilOrigin-Name: b3f00eee8523c9adba6782e6ca63137be405c1d5164695ac614c31c2518f36bb
---
actube.workspace | 4 +-
libcw.project | 1 +
src/cw/Makefile | 3 +-
src/cw/cw.h | 4 +-
src/cw/cw_out_radio_generic.c | 45 +------------------
src/cw/cw_write_radio_element.c | 40 +++++++++++++++++
.../capwap_in_capwap_control_ip_address.c | 2 +-
src/wtp/config.ktv | 5 ++-
8 files changed, 54 insertions(+), 50 deletions(-)
create mode 100644 src/cw/cw_write_radio_element.c
diff --git a/actube.workspace b/actube.workspace
index c63c2d68..e0162c79 100644
--- a/actube.workspace
+++ b/actube.workspace
@@ -4,8 +4,8 @@
-
-
+
+
diff --git a/libcw.project b/libcw.project
index f4087003..692ce758 100644
--- a/libcw.project
+++ b/libcw.project
@@ -267,6 +267,7 @@
+
diff --git a/src/cw/Makefile b/src/cw/Makefile
index 12ec954a..4b8256d9 100644
--- a/src/cw/Makefile
+++ b/src/cw/Makefile
@@ -107,7 +107,8 @@ CWSRC=\
cw_type_word.c\
cw_util.c\
cw_write_descriptor_subelem.c\
- cw_read_from.c
+ cw_read_from.c \
+ cw_write_radio_element.c\
LWSRC=\
diff --git a/src/cw/cw.h b/src/cw/cw.h
index 421def74..72664808 100644
--- a/src/cw/cw.h
+++ b/src/cw/cw.h
@@ -349,7 +349,9 @@ int cw_read_wtp_descriptor(mavl_t mbag, struct conn *conn,
int cw_write_descriptor_subelem (uint8_t *dst, mavl_t ktvstore,
int subelem_id, const char * parent_key);
-
+int cw_write_radio_element(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * params, int idx,
+ uint8_t * dst);
+
extern int cw_read_wtp_descriptor_7(mavl_t mbag, struct conn *conn,
struct cw_ElemHandler *eh, uint8_t * data, int len,
diff --git a/src/cw/cw_out_radio_generic.c b/src/cw/cw_out_radio_generic.c
index b4e350ce..4ef96ce8 100644
--- a/src/cw/cw_out_radio_generic.c
+++ b/src/cw/cw_out_radio_generic.c
@@ -2,50 +2,9 @@
#include "cw.h"
#include "dbg.h"
-
-static int cw_put_radio_generic(struct cw_ElemHandler * handler, int idx, struct cw_ElemHandlerParams * params
- , uint8_t * dst)
-{
- char key[CW_KTV_MAX_KEY_LEN];
- cw_KTV_t *elem, search;
- int len;
- uint8_t * d;
-
- len =0;
-
- sprintf(key,"radio/%d/%s",idx,handler->key);
-
- printf("Looking for key: %s\n",key);
-
- search.key=key;
- elem = mavl_get(params->conn->local_cfg, &search);
-
- if (elem==NULL){
- return 0;
- }
-
- /* Size for msg elem header depends on
- vendor specific payload */
- d = handler->vendor ? dst+10 : dst+4;
-
- /* put radio id */
- len += cw_put_byte(d+len,idx);
-
- len += ((const cw_Type_t*)(handler->type))->put(elem,d+len);
-/* l = len + cw_put_elem_hdr(dst, handler->id, len);*/
-
-/* if (handler->vendor)
- return len + cw_put_elem_vendor_hdr(dst, handler->vendor, handler->id, len);
-*/
- return len + cw_put_elem_hdr(dst, handler->id, len);
-}
-
-
int cw_out_radio_generic(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * params
, uint8_t * dst)
{
-/* char key[CW_KTV_MAX_KEY_LEN];*/
-/* cw_KTV_t *elem, search;*/
int len,i,l;
int radios;
len =0;
@@ -53,10 +12,10 @@ int cw_out_radio_generic(struct cw_ElemHandler * handler, struct cw_ElemHandlerP
radios = cw_ktv_get_byte(params->conn->local_cfg,"wtp-descriptor/max-radios",0);
for(i=1;iconn,params->msgdata->type,handler,dst,l);
len+=l;
}
-
return len;
}
+
diff --git a/src/cw/cw_write_radio_element.c b/src/cw/cw_write_radio_element.c
new file mode 100644
index 00000000..20ed9778
--- /dev/null
+++ b/src/cw/cw_write_radio_element.c
@@ -0,0 +1,40 @@
+#include "cw.h"
+
+
+int cw_write_radio_element(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * params, int idx
+ , uint8_t * dst)
+{
+ char key[CW_KTV_MAX_KEY_LEN];
+ cw_KTV_t *elem, search;
+ int len;
+ uint8_t * d;
+
+ len =0;
+
+ sprintf(key,"radio/%d/%s",idx,handler->key);
+
+ /*printf("Looking for key: %s\n",key);*/
+
+ search.key=key;
+ elem = mavl_get(params->conn->local_cfg, &search);
+
+ if (elem==NULL){
+ return 0;
+ }
+
+ /* Size for msg elem header depends on
+ vendor specific payload */
+ d = handler->vendor ? dst+10 : dst+4;
+
+ /* put radio id */
+ len += cw_put_byte(d+len,idx);
+
+ len += ((const cw_Type_t*)(handler->type))->put(elem,d+len);
+/* l = len + cw_put_elem_hdr(dst, handler->id, len);*/
+
+/* if (handler->vendor)
+ return len + cw_put_elem_vendor_hdr(dst, handler->vendor, handler->id, len);
+*/
+ return len + cw_put_elem_hdr(dst, handler->id, len);
+}
+
diff --git a/src/mod/capwap/capwap_in_capwap_control_ip_address.c b/src/mod/capwap/capwap_in_capwap_control_ip_address.c
index cbb0c17d..0ba05537 100644
--- a/src/mod/capwap/capwap_in_capwap_control_ip_address.c
+++ b/src/mod/capwap/capwap_in_capwap_control_ip_address.c
@@ -34,7 +34,7 @@ int capwap_in_capwap_control_ip_address(struct cw_ElemHandler *eh,
sprintf(key,"%s/address",eh->key);
idx = cw_ktv_idx_get(params->conn->remote_cfg,key,0,CW_TYPE_IPADDRESS);
- printf("SKEY is %s , idx: %d\n",key,idx);
+/* printf("SKEY is %s , idx: %d\n",key,idx);*/
sprintf(key,"%s/address.%d",eh->key,idx+1);
cw_ktv_add(params->conn->remote_cfg,key,CW_TYPE_IPADDRESS,data,len-2);
diff --git a/src/wtp/config.ktv b/src/wtp/config.ktv
index ace2fda8..0577276a 100644
--- a/src/wtp/config.ktv
+++ b/src/wtp/config.ktv
@@ -26,6 +26,7 @@ wtp-descriptor/bootloader/vendor:Dword:906090
wtp-descriptor/bootloader/version:Bstr16:.x171312
wtp-descriptor/max-radios:Byte:2
-radio/1/wtp-radio-information:Dword:04
-radio/2/wtp-radio-information:Dword:03
+radio/1/wtp-radio-information:Dword:01
+radio/2/wtp-radio-information:Dword:02
+wtp-name:Bstr16:WFAT01