wasm-openFPGALoader-port/wasmFPGALoader.html
2024-01-27 16:56:40 +09:00

75 lines
2.3 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>wasmFPGAloader -- FPGAOL-CE</title>
</head>
<body>
<button id="connectBtn">Connect USB Device</button>
<button id="testBtn">openFPGAloader --detect</button>
<p id="status0"></p>
<input type="file" id="upload" onchange="uploadFile()"><br>
<button id="testBtn2">Blast</button>
<script>
const connectBtn = document.getElementById('connectBtn');
connectBtn.addEventListener('click', connect_a_device);
async function connect_a_device() {
console.log('connect_a_device')
await navigator.usb.requestDevice({ filters: [] });
}
const testBtn = document.getElementById('testBtn');
testBtn.addEventListener('click', ofl_detect);
async function ofl_detect() {
console.log('openFPGAloader detect')
try{
await Module.callMain(["--detect"]);
}
catch (err) {
console.log("Detecting JTAG downloader error: " + err.message)
}
}
const testBtn2 = document.getElementById('testBtn2');
testBtn2.addEventListener('click', test_usb_2);
async function test_usb_2() {
console.log('test_usb_2')
await Module.callMain(["-b", "tangnano9k", "" + document.getElementById('upload').files[0].name]);
}
var Module = {
onRuntimeInitialized: function() {
console.log('wasm loaded');
},
print: function(text) {
console.log(text);
},
printErr: function(text) {
console.log('Err: ' + text);
}
};
function uploadFile() {
var fileInput = document.getElementById('upload');
var file = fileInput.files[0];
var reader = new FileReader();
reader.onload = function() {
// Create a Uint8Array from file content
var data = new Uint8Array(reader.result);
// Use Emscripten's FS API to write the file to the virtual filesystem
FS.writeFile('' + file.name, data);
console.log('File writen to WASM file system: ' + file.name);
// Optionally, call a function defined in your WebAssembly module that needs access to the file
// For example, if your module has a function that takes the file path as argument
// Module.ccall('yourFunctionName', 'returnType', ['param1Type'], ['/working/' + file.name]);
};
reader.readAsArrayBuffer(file);
}
</script>
<script src="./wasmFPGALoader.js"></script>
</body>
</html>