1// ============================================================================= 2// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab 3// Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS 4// 5// This file is distributed under the same license as the Scilab package. 6// ============================================================================= 7// <-- CLI SHELL MODE --> 8function writedata(name, str) 9 f = mopen(TMPDIR + "/" + name + ".dat", "wb"); 10 data = hex2dec(str); 11 mput(data, "uc", f); 12 mclose(f); 13endfunction 14function res = readdata(name) 15 f = mopen(TMPDIR + "/" + name + ".dat", "rb"); 16 res = mgeti(3, name, f); 17 mclose(f); 18endfunction 19// 20//prepare data 21// 22ul1 = uint64(123); //0x7B 23ul2 = uint64(45678);//0xB26E 24ul3 = uint64(123456);//0x0001E240 25l1 = int64(-123); //0x7B 26l2 = int64(-23456);//0xB26E 27l3 = int64(-123456);//0x0001E240 28ui1 = uint32(123); //0x7B 29ui2 = uint32(45678);//0xB26E 30ui3 = uint32(123456);//0x0001E240 31i1 = int32(-123); //0x85 32i2 = int32(-23456);//0xA460 33i3 = int32(-123456);//0xFFFE1DC0 34i3t = int32(7616);//0x1DC0 35us1 = uint16(123); //0x7B 36us2 = uint16(45678);//0xB26E 37us3 = uint16(123456);//0x0001E240 38s1 = int16(-123); //0x85 39s2 = int16(-23456);//0xA460 40s3 = int16(-123456);//0xFFFE1DC0 41s3t = int16(7616);//0x1DC0 42//unsigned long big endian 43writedata("ulb", ["00" "00" "00" "00" "00" "00" "00" "7B" "00" "00" "00" "00" "00" "00" "B2" "6E" "00" "00" "00" "00" "00" "01" "E2" "40"]); 44//unsigned long little endian 45writedata("ull", ["7B" "00" "00" "00" "00" "00" "00" "00" "6E" "B2" "00" "00" "00" "00" "00" "00" "40" "E2" "01" "00" "00" "00" "00" "00"]); 46//unsigned int big endian 47writedata("uib", ["00" "00" "00" "7B" "00" "00" "B2" "6E" "00" "01" "E2" "40"]); 48//unsigned int little endian 49writedata("uil", ["7B" "00" "00" "00" "6E" "B2" "00" "00" "40" "E2" "01" "00"]); 50//unsigned short big endian 51writedata("usb", ["00" "7B" "B2" "6E" "E2" "40"]); 52//unsigned short little endian 53writedata("usl", ["7B" "00" "6E" "B2" "40" "E2"]); 54//long big endian 55writedata("lb", ["FF" "FF" "FF" "FF" "FF" "FF" "FF" "85" "FF" "FF" "FF" "FF" "FF" "FF" "A4" "60" "FF" "FF" "FF" "FF" "FF" "FE" "1D" "C0"]); 56//long little endian 57writedata("ll", ["85" "FF" "FF" "FF" "FF" "FF" "FF" "FF" "60" "A4" "FF" "FF" "FF" "FF" "FF" "FF" "C0" "1D" "FE" "FF" "FF" "FF" "FF" "FF"]); 58//int big endian 59writedata("ib", ["FF" "FF" "FF" "85" "FF" "FF" "A4" "60" "FF" "FE" "1D" "C0"]); 60//int little endian 61writedata("il", ["85" "FF" "FF" "FF" "60" "A4" "FF" "FF" "C0" "1D" "FE" "FF"]); 62//short big endian 63writedata("sb", ["FF" "85" "A4" "60" "1D" "C0"]); 64//short little endian 65writedata("sl", ["85" "FF" "60" "A4" "C0" "1D"]); 66res = readdata("ulb"); 67assert_checkequal(res, [ul1, ul2, ul3]); 68res = readdata("ull"); 69assert_checkequal(res, [ul1, ul2, ul3]); 70res = readdata("lb"); 71assert_checkequal(res, [l1, l2, l3]); 72res = readdata("ll"); 73assert_checkequal(res, [l1, l2, l3]); 74res = readdata("uib"); 75assert_checkequal(res, [ui1, ui2, ui3]); 76res = readdata("uil"); 77assert_checkequal(res, [ui1, ui2, ui3]); 78res = readdata("usb"); 79assert_checkequal(res, [us1, us2, us3]); 80res = readdata("usl"); 81assert_checkequal(res, [us1, us2, us3]); 82res = readdata("ib"); 83assert_checkequal(res, [i1, i2, i3]); 84res = readdata("il"); 85assert_checkequal(res, [i1, i2, i3]); 86res = readdata("sb"); 87assert_checkequal(res, [s1, s2, s3]); 88res = readdata("sl"); 89assert_checkequal(res, [s1, s2, s3]); 90// check default output type of mgeti 91file1 = fullfile(TMPDIR,'test1.bin'); 92fd1=mopen(file1,'wb'); 93mput(1996,'ull',fd1); 94mclose(fd1); 95fd1=mopen(file1,'rb'); 96a=mgeti(1); 97assert_checkequal(typeof(a), "int32"); 98assert_checkequal(a, int32(1996)); 99