I found difference in behaviour on how Android and IOS application sends custom data to ESP32.
Below are my findings for IOS and Android data transfer:-
Data string being used to transfer
{"product_type":4,"cert":"-----BEGIN CERTIFICATE----- MIIDNTCCAh2gAwIBAgIUUg+wiCV2dsAOtDfA0TmBxP3hPvkwDQYJKoZIhvcNAQEL BQAwMTEvMC0GA1UEAwwmOTgzOGYwYWQ4NzU5NDQyZWE5ODIzYTVmYjhiOTQ4NWMu bG9jYWwwHhcNMTkwMjA3MDYzMDU1WhcNMjkwMjA0MDYzMDU1WjAxMS8wLQYDVQQD DCY5ODM4ZjBhZDg3NTk0NDJlYTk4MjNhNWZiOGI5NDg1Yy5sb2NhbDCCASEwDQYJ KoZIhvcNAQEBBQADggEOADCCAQkCggEAK3FMcNTU6GXh6ZRwKZtCQ6v+c6h5tJYl Bn/lLFy8KW6ogX2xP91j09i9D4K68jBfrimhbjqNSRpTVJot2fbypfVY4ZhwLJZE mNQa841jjcdkI4mMUTyoH6LPRUheC6U5SHiE0BzM1PH38yDLWcqtMSvlVvYFdZjI 7EGxV8ajS3kf1Srj+2ZWYyH9MSRFXWIYvaXSenqdVS768HhU6wur7VeZk0AOxFL0 2L6yhNZDJ3UNuOQhnFQdGp99icPqOI2TROcjw0xQiopuVlisq1fRHYg6lwydMun/ Vzkj/Nc8w2uZ5qAZ2iqjwREeyK8B1x9BYihlclyj42n64OXxqiYqiwIDAQABo0Yw RDAPBgNVHRMECDAGAQH/AgEAMDEGA1UdEQQqMCiCJjk4MzhmMGFkODc1OTQ0MmVh OTgyM2E1ZmI4Yjk0ODVjLmxvY2FsMA0GCSqGSIb3DQEBCwUAA4IBAQAUYiFCaKNs s40SUfSM12w+GMrXYNE3iav9b1yPZxmUk9bIwv28YSCzvtCj3W9ZgSxNjeOB+ueC 1PENko0XTbX/JnjYMLxEPn44uJS/gLv/W1LBFD8yvxg0lWNnn2qwIOAnnNvH9tfj d0O1NTCO1DIpO8xMWX7YxPMp7kbNPFDor4liSyDzYRwS1JJG5f2eRci2u4Vtk6Sa Xy1eYcd8EfJLbn3wpZeo3/EeToX9obGQ++MIIcU/Vfn9tVJlMxEO2t+BQTMiU6e1 Rq/magvqxHT9Le1abtbCf/ambLxtusY+eesvJx5BdUF1cSnm/wqY3rCR3/26xvia cfN7/NaYHZM3 -----END CERTIFICATE----- ","product_id":"b8f5cf2fd779404590892e28566fd32e","product_ip":"192.168.1.202"}
Data sent from an Android application and received at ESP32
1. Data is transferred in a single fragment for any data size
2. This is the expected behaviour
Below are the logs from ESP32 while it receives the data from the Android, transferred via Bluetooth
I (279440) HA.Node.blufi: Recv Custom Data 1277
I (279454) Custom Data in char : {"product_type":
I (279469) Custom Data in char : 4,"cert":"-----B
I (279483) Custom Data in char : EGIN CERTIFICATE
I (279497) Custom Data in char : ----- MIIDNTCCAh
I (279510) Custom Data in char : 2gAwIBAgIUUg+wiC
I (279529) Custom Data in char : V2dsAOtDfA0TmBxP
I (279547) Custom Data in char : 3hPvkwDQYJKoZIhv
I (279560) Custom Data in char : cNAQEL BQAwMTEvM
I (279575) Custom Data in char : C0GA1UEAwwmOTgzO
I (279593) Custom Data in char : GYwYWQ4NzU5NDQyZ
I (279607) Custom Data in char : WE5ODIzYTVmYjhiO
I (279622) Custom Data in char : TQ4NWMu bG9jYWww
I (279639) Custom Data in char : HhcNMTkwMjA3MDYz
I (279652) Custom Data in char : MDU1WhcNMjkwMjA0
I (279667) Custom Data in char : MDYzMDU1WjAxMS8w
I (279680) Custom Data in char : LQYDVQQD DCY5ODM
I (279698) Custom Data in char : 4ZjBhZDg3NTk0NDJ
I (279711) Custom Data in char : lYTk4MjNhNWZiOGI
I (279726) Custom Data in char : 5NDg1Yy5sb2NhbDC
I (279740) Custom Data in char : CASEwDQYJ KoZIhv
I (279753) Custom Data in char : cNAQEBBQADggEOAD
I (279766) Custom Data in char : CCAQkCggEAK3FMcN
I (279779) Custom Data in char : TU6GXh6ZRwKZtCQ6
I (279794) Custom Data in char : v+c6h5tJYl Bn/lL
I (279807) Custom Data in char : Fy8KW6ogX2xP91j0
I (279821) Custom Data in char : 9i9D4K68jBfrimhb
I (279834) Custom Data in char : jqNSRpTVJot2fbyp
I (279848) Custom Data in char : fVY4ZhwLJZE mNQa
I (279861) Custom Data in char : 841jjcdkI4mMUTyo
I (279875) Custom Data in char : H6LPRUheC6U5SHiE
I (279889) Custom Data in char : 0BzM1PH38yDLWcqt
I (279903) Custom Data in char : MSvlVvYFdZjI 7EG
I (279917) Custom Data in char : xV8ajS3kf1Srj+2Z
I (279930) Custom Data in char : WYyH9MSRFXWIYvaX
I (279943) Custom Data in char : SenqdVS768HhU6wu
I (279956) Custom Data in char : r7VeZk0AOxFL0 2L
I (279969) Custom Data in char : 6yhNZDJ3UNuOQhnF
I (279983) Custom Data in char : QdGp99icPqOI2TRO
I (279997) Custom Data in char : cjw0xQiopuVlisq1
I (280011) Custom Data in char : fRHYg6lwydMun/ V
I (280024) Custom Data in char : zkj/Nc8w2uZ5qAZ2
I (280038) Custom Data in char : iqjwREeyK8B1x9BY
I (280050) Custom Data in char : ihlclyj42n64OXxq
I (280064) Custom Data in char : iYqiwIDAQABo0Yw
I (280077) Custom Data in char : RDAPBgNVHRMECDAG
I (280090) Custom Data in char : AQH/AgEAMDEGA1Ud
I (280104) Custom Data in char : EQQqMCiCJjk4Mzhm
I (280118) Custom Data in char : MGFkODc1OTQ0MmVh
I (280132) Custom Data in char : OTgyM2E1ZmI4Yjk
I (280145) Custom Data in char : 0ODVjLmxvY2FsMA0
I (280158) Custom Data in char : GCSqGSIb3DQEBCwU
I (280171) Custom Data in char : AA4IBAQAUYiFCaKN
I (280183) Custom Data in char : s s40SUfSM12w+GM
I (280197) Custom Data in char : rXYNE3iav9b1yPZx
I (280210) Custom Data in char : mUk9bIwv28YSCzvt
I (280224) Custom Data in char : Cj3W9ZgSxNjeOB+u
I (280237) Custom Data in char : eC 1PENko0XTbX/J
I (280250) Custom Data in char : njYMLxEPn44uJS/g
I (280263) Custom Data in char : Lv/W1LBFD8yvxg0l
I (280276) Custom Data in char : WNnn2qwIOAnnNvH9
I (280289) Custom Data in char : tfj d0O1NTCO1DIp
I (280304) Custom Data in char : O8xMWX7YxPMp7kbN
I (280316) Custom Data in char : PFDor4liSyDzYRwS
I (280329) Custom Data in char : 1JJG5f2eRci2u4Vt
I (280343) Custom Data in char : k6Sa Xy1eYcd8EfJ
I (280355) Custom Data in char : Lbn3wpZeo3/EeToX
I (280369) Custom Data in char : 9obGQ++MIIcU/Vfn
I (280382) Custom Data in char : 9tVJlMxEO2t+BQTM
I (280395) Custom Data in char : iU6e1 Rq/magvqxH
I (280408) Custom Data in char : T9Le1abtbCf/ambL
I (280421) Custom Data in char : xtusY+eesvJx5BdU
I (280434) Custom Data in char : F1cSnm/wqY3rCR3/
I (280448) Custom Data in char : 26xvia cfN7/NaYH
I (280461) Custom Data in char : ZM3 -----END CER
I (280474) Custom Data in char : TIFICATE----- ",
I (280486) Custom Data in char : "product_id":"b8
I (280499) Custom Data in char : f5cf2fd779404590
I (280513) Custom Data in char : 892e28566fd32e",
I (280526) Custom Data in char : "product_ip":"19
I (280539) Custom Data in char : 2.168.1.202"}
Data sent from an IOS and received at ESP32
1. Data is sent in multiple fragments rather than a single fragment(16 splits)
2. Each fragment contains a incorrect character at the beginning
3. Some initial characters are not getting transferred
Below are the logs from ESP32 while it receives the data from the IOS, transferred via Bluetooth
I (10390) HA.Node.blufi: Recv Custom Data 82
I (10395) Custom Data in char : P
I (10397) Custom Data in char : ":4,"cert":"----
I (10400) Custom Data in char : -BEGIN CERTIFICA
I (10404) Custom Data in char : TE----- MIIDNTCC
I (10409) Custom Data in char : Ah2gAwIBAgIUUg+w
I (10414) Custom Data in char : iC
E (10418) HA.Node.blufi: Internal error : P
I (10507) HA.Node.blufi: Recv Custom Data 82
I (10512) Custom Data in char : P
I (10514) Custom Data in char : xP3hPvkwDQYJKoZI
I (10516) Custom Data in char : hvcNAQEL BQAwMTE
I (10520) Custom Data in char : vMC0GA1UEAwwmOTg
I (10525) Custom Data in char : zOGYwYWQ4NzU5NDQ
I (10531) Custom Data in char : yZ
E (10535) HA.Node.blufi: Internal error : P
I (10570) HA.Node.blufi: Recv Custom Data 82
I (10576) Custom Data in char : P
I (10578) Custom Data in char : iOTQ4NWMu bG9jYW
I (10580) Custom Data in char : wwHhcNMTkwMjA3MD
I (10584) Custom Data in char : YzMDU1WhcNMjkwMj
I (10589) Custom Data in char : A0MDYzMDU1WjAxMS
I (10595) Custom Data in char : 8w
E (10599) HA.Node.blufi: Internal error : P
I (10630) HA.Node.blufi: Recv Custom Data 82
I (10635) Custom Data in char : P
I (10638) Custom Data in char : DM4ZjBhZDg3NTk0N
I (10640) Custom Data in char : DJlYTk4MjNhNWZiO
I (10644) Custom Data in char : GI5NDg1Yy5sb2Nhb
I (10649) Custom Data in char : DCCASEwDQYJ KoZI
I (10654) Custom Data in char : hv
E (10659) HA.Node.blufi: Internal error : P
I (10691) HA.Node.blufi: Recv Custom Data 82
I (10696) Custom Data in char : P
I (10698) Custom Data in char : ADCCAQkCggEAK3FM
I (10700) Custom Data in char : cNTU6GXh6ZRwKZtC
I (10704) Custom Data in char : Q6v+c6h5tJYl Bn/
I (10710) Custom Data in char : lLFy8KW6ogX2xP91
I (10715) Custom Data in char : j0
E (10719) HA.Node.blufi: Internal error : P
I (10778) HA.Node.blufi: Recv Custom Data 82
I (10783) Custom Data in char : P
I (10785) Custom Data in char : hbjqNSRpTVJot2fb
I (10787) Custom Data in char : ypfVY4ZhwLJZE mN
I (10791) Custom Data in char : Qa841jjcdkI4mMUT
I (10796) Custom Data in char : yoH6LPRUheC6U5SH
I (10802) Custom Data in char : iE
E (10806) HA.Node.blufi: Internal error : P
I (10840) HA.Node.blufi: Recv Custom Data 82
I (10846) Custom Data in char : P
I (10848) Custom Data in char : qtMSvlVvYFdZjI 7
I (10850) Custom Data in char : EGxV8ajS3kf1Srj+
I (10854) Custom Data in char : 2ZWYyH9MSRFXWIYv
I (10859) Custom Data in char : aXSenqdVS768HhU6
I (10865) Custom Data in char : wu
E (10869) HA.Node.blufi: Internal error : P
I (10901) HA.Node.blufi: Recv Custom Data 82
I (10907) Custom Data in char : P
I (10909) Custom Data in char : 2L6yhNZDJ3UNuOQh
I (10911) Custom Data in char : nFQdGp99icPqOI2T
I (10915) Custom Data in char : ROcjw0xQiopuVlis
I (10920) Custom Data in char : q1fRHYg6lwydMun/
I (10926) Custom Data in char : V
E (10930) HA.Node.blufi: Internal error : P
I (10960) HA.Node.blufi: Recv Custom Data 82
I (10966) Custom Data in char : P
I (10968) Custom Data in char : Z2iqjwREeyK8B1x9
I (10970) Custom Data in char : BYihlclyj42n64OX
I (10974) Custom Data in char : xqiYqiwIDAQABo0Y
I (10979) Custom Data in char : w RDAPBgNVHRMECD
I (10985) Custom Data in char : AG
E (10989) HA.Node.blufi: Internal error : P
I (11020) HA.Node.blufi: Recv Custom Data 82
I (11025) Custom Data in char : P
I (11028) Custom Data in char : UdEQQqMCiCJjk4Mz
I (11030) Custom Data in char : hmMGFkODc1OTQ0Mm
I (11034) Custom Data in char : Vh OTgyM2E1ZmI4Y
I (11039) Custom Data in char : jk0ODVjLmxvY2FsM
I (11045) Custom Data in char : A0
E (11049) HA.Node.blufi: Internal error : P
I (11080) HA.Node.blufi: Recv Custom Data 82
I (11086) Custom Data in char : P
I (11088) Custom Data in char : wUAA4IBAQAUYiFCa
I (11090) Custom Data in char : KNs s40SUfSM12w+
I (11094) Custom Data in char : GMrXYNE3iav9b1yP
I (11099) Custom Data in char : ZxmUk9bIwv28YSCz
I (11105) Custom Data in char : vt
E (11109) HA.Node.blufi: Internal error : P
I (11140) HA.Node.blufi: Recv Custom Data 82
I (11146) Custom Data in char : P
I (11148) Custom Data in char : +ueC 1PENko0XTbX
I (11150) Custom Data in char : /JnjYMLxEPn44uJS
I (11154) Custom Data in char : /gLv/W1LBFD8yvxg
I (11160) Custom Data in char : 0lWNnn2qwIOAnnNv
I (11165) Custom Data in char : H9
E (11169) HA.Node.blufi: Internal error : P
I (11200) HA.Node.blufi: Recv Custom Data 82
I (11207) Custom Data in char : P
I (11209) Custom Data in char : IpO8xMWX7YxPMp7k
I (11212) Custom Data in char : bNPFDor4liSyDzYR
I (11215) Custom Data in char : wS1JJG5f2eRci2u4
I (11222) Custom Data in char : Vtk6Sa Xy1eYcd8E
I (11226) Custom Data in char : fJ
E (11230) HA.Node.blufi: Internal error : P
I (11290) HA.Node.blufi: Recv Custom Data 82
I (11297) Custom Data in char : P
I (11299) Custom Data in char : oX9obGQ++MIIcU/V
I (11301) Custom Data in char : fn9tVJlMxEO2t+BQ
I (11305) Custom Data in char : TMiU6e1 Rq/magvq
I (11310) Custom Data in char : xHT9Le1abtbCf/am
I (11316) Custom Data in char : bL
E (11320) HA.Node.blufi: Internal error : P
I (11350) HA.Node.blufi: Recv Custom Data 82
I (11356) Custom Data in char : P
I (11358) Custom Data in char : dUF1cSnm/wqY3rCR
I (11360) Custom Data in char : 3/26xvia cfN7/Na
I (11364) Custom Data in char : YHZM3 -----END C
I (11369) Custom Data in char : ERTIFICATE-----
I (11375) Custom Data in char : ",
E (11379) HA.Node.blufi: Internal error : P
I (11412) HA.Node.blufi: Recv Custom Data 77
I (11417) Custom Data in char : "product_id":"b8
I (11420) Custom Data in char : f5cf2fd779404590
I (11422) Custom Data in char : 892e28566fd32e",
I (11427) Custom Data in char : "product_ip":"19
I (11432) Custom Data in char : 2.168.1.202"}
For IOS correct data is being sent only in the cases where there is only a single fragment being transferred(small data size)
Data being sent from IOS to ESP32
{"product_type":4,","product_ip":"192.168.1.202"}
1. It transferred correct data when single fragment is being transferred from an IOS
ESP32 logs transferred from an IOS below
I (75253) HA.Node.blufi: Recv Custom Data 49
I (75269) Custom Data in char : {"product_type":
I (75284) Custom Data in char : 4,","product_ip"
I (75297) Custom Data in char : :"192.168.1.202"
I (75311) Custom Data in char : }
My questions
1. How can we send data in IOS just like the way android does(in a single fragment)?
2. The multiple fragment transmission in IOS is sending incorrect data which may be corrected although I would request code changes to make transfer in a single fragment