MixSoda ver 7 / 2024.02.06 --- [update] - 5 / 2022.06.23 + first release. - 6 / 2022.11.30 + cmd 0x34 (get multiple bytes of data from the server) + cmd 0xd3 (get remain bytes) + cmd 0xd4 (set PLMN) + cmd 0xd5 (get PLMN) + cmd 0xd6 (get connection status) - 7 / 2024.02.06 + cmd 0x22 (send 4bytes - Do not wait until LTE communication is completed) + cmd 0x25 (send all data in queue - Do not wait until LTE communication is completed) --- [reference] protocol: I2C slave address: 0x4f MixDake firmware: 1.1.3 * 0x21 4byteのデータを1つ送信する (LTE通信が完了もしくはタイムアウトするまでI2Cバスがロックされます) write: 8byte (0x21, dummy, dummy, dummy, d0, d1, d2, d3) data = (d0<<0) | (d1<<8) | (d2<<16) | (d3<<24) read : 3byte (status, 0, 0) status| 1:success, 5:error * 0x22 4byteのデータを1つ送信する (LTE通信の完了を待たずにI2Cバスのロックを解除します) write: 8byte (0x22, dummy, dummy, dummy, d0, d1, d2, d3) data = (d0<<0) | (d1<<8) | (d2<<16) | (d3<<24) read : 3byte (status, 0, 0) status| 1:accepted * 0x20 送信キューに8byte値をためる MAX: 256byte write: 12byte (0x20, dummy, dummy, dummy, d0, d1, d2, d3, d4, d5, d6, d7) read : 3byte (status, 0, 0) status| 1:success, 5:error * 0x24 送信キューの中身を全て送信する (LTE通信が完了もしくはタイムアウトするまでI2Cバスがロックされます) write: 1byte (0x24) read : 3byte (status, 0, 0) status| 1:success, 5:error * 0x25 送信キューの中身を全て送信する (LTE通信の完了を待たずにI2Cバスのロックを解除します) write: 1byte (0x25) read : 3byte (status, 0, 0) status| 1:accepted * 0x30 4byteのデータを1つ取得する (LTE通信が完了もしくはタイムアウトするまでI2Cバスがロックされます) write: 1byte (0x30) read : 8byte (status, dummy, dummy, dummy, d0, d1, d2, d3) status| 1:success, 5:error data = (d0<<0) | (d1<<8) | (d2<<16) | (d3<<24) * 0x34 データを取得する (LTE通信が完了もしくはタイムアウトするまでI2Cバスがロックされます) MAX: 128byte write: 1byte (0x34) read : (2+n)byte (status, length, data0, data1, ..., data(n-1)) status| 1:success, 5:error * 0xc0 GPS位置情報を取得する write: 1byte (0xc0) read : 29byte (status, 27, longitude0, longitude1, longitude2, longitude3, latitude0, latitude1, latitude2, latitude3, altitude0, altitude1, altitude2, altitude3, speed0, speed1, speed2, speed3, direction0, direction1, direction2, direction3, date_year0, date_year1, date_month, date_day, date_hour, date_min, date_sec) status| 1:success, 2:busy, 5:error * 0xc1 GPSをON/OFFする 1:ON, 0:OFF write: 2byte (0xc1, on/off) * 0xd0 ICCIDを取得する write: 1byte (0xd0) read : 10byte (1, 8, iccid0, iccid1, iccid2, iccid3, iccid4, iccid5, iccid6, iccid7) iccid = (iccid0<<0) | (iccid1<<8) | (iccid2<<16) | (iccid3<<24) | (iccid4<<32) | (iccid5<<40) | (iccid6<<48) | (iccid3<<56) * 0xd1 IMEIを取得する write: 1byte (0xd1) read : 10byte (1, 8, imei0, imei1, imei2, imei3, imei4, imei5, imei6, imei7) imei = (imei0<<0) | (imei1<<8) | (imei2<<16) | (imei3<<24) | (imei4<<32) | (imei5<<40) | (imei6<<48) | (imei3<<56) * 0xd2 通信量の上限を設定する(単位はbyte、4byteで指定) Default: 0x00100000 (1MB) write: 5byte (0xd2, b0, b1, b2, b3) maxbyte = (b0<<0) | (b1<<8) | (b2<<16) | (b3<<24) * 0xd3 通信可能なバイト数を取得する write: 1byte (0xd3) read : 6byte (1, 4, b0, b1, b2, b3) remainbyte = (b0<<0) | (b1<<8) | (b2<<16) | (b3<<24) * 0xd4 PLMNを設定する write: 3byte (0xd4, plmn0, plmn1) plmn = (plmn0<<0) | (plmn1<<8) read : 2byte (status, 0) status| 1:success, 5:error * 0xd5 PLMNを取得する write: 1byte (0xd5) read : 4byte (1, 2, plmn0, plmn1) plmn = (plmn0<<0) | (plmn1<<8) * 0xd6 接続状況を取得する write: 1byte (0xd6) read : 1byte (status) status| 0:not connect, 1:connect, 5:error * 0xff MixSodaのバージョンを取得する write: 1byte (0xff) read : 1byte (ver) * 0xfe ascii文字をuart送信する(末尾に'\n'を自動付加) uart送信後に受信した1行を取得 write: (1+n)byte (0xfe, char0, char1, ..., char(n-1)) read : Nbyte (char0, char1, char2, ..., char(N-1))