How can I convert arraybuffer to visible data in python? - arrays
I have API that work with JS perfect as showsn as(response typ is arraybuffer ):
hrOverride.responseType = 'arraybuffer';
My_request = $.ajax({
url: 'my url api ',
method: 'GET'
My_request.done(function(data) {
Rcv_data = {
buffer: data,
};
myFunction(Rcv_data );
}
...
when I reqquest to API in python:
My_request = requests.get('my url api')
print(My_request .text)
output:�0�Ɗ���$����Fp�#�Uk�K�u�jq,�
How can I convert arraybuffer to visible data in python?
I try convert response to base64 then to string and convert response to byteArray then to string that but data was not visible yet.
OutPut base64: 7MovzZ2UtYi97OovzNGpDbz46OW9+OhKqvhOdvEHsokJ+CaqtZXofTbM6Ym+6Ogd54aFlA==
OutPut ByteArray: [ 236, 202, 47, 205, 157, 148, 181, 136, 189, 236, 234, 47, 204, 209, 169, 13, 188, 248, 232, 229, 189, 248, 232, 74, 170, 248, 78, 118, 241, 7, 178, 137, 9, 248, 38, 170, 181, 149, 232, 125, 54, 204, 233, 137, 190, 232, 232, 29, 231, 134,133, 148
]
Related
Getting error: No identifiers allowed directly after numeric literal
I am getting the error : [SyntaxError: No identifiers allowed directly after numeric literal] Actually I am using #solana/web3.js and #solana/spl-token libraries. /* param is {"amount": "1", "mintAddress": "8hhtxFeTfwjxM6E5CCMyAwAD2FyYPhFptkd7NG1kCXcD", "network": "devnet", "privateKey": [63, 187, 34, 85, 159, 44, 110, 254, 116, 129, 35, 146, 244, 255, 155, 211, 159, 242, 54, 58, 203, 80, 192, 199, 201, 245, 83, 120, 199, 209, 45, 200, 244, 225, 78, 38, 107, 204, 74, 92, 219, 98, 200, 117, 166, 82, 140, 165, 121, 161, 190, 47, 129, 123, 66, 42, 89, 147, 160, 22, 184, 133, 113, 213], "toAddress": "Dd77w197tyyst5wXYXUHVCbWBYyWbTdBBHecpqLD6z16"} */ const connectionCluster = new web3.Connection(web3.clusterApiUrl('devnet')); const TokenAddress = new web3.PublicKey(param.mintAddress); const recipientAddress = new web3.PublicKey(param.toAddress); const senderKeypair = web3.Keypair.fromSecretKey(param.privateKey); const txSigner: web3.Signer = { publicKey: senderKeypair.publicKey, secretKey: senderKeypair.secretKey } // getting error in below line // No identifiers allowed directly after numeric literal const addRecipientTokenAccount = await spl.getOrCreateAssociatedTokenAccount( connectionCluster, txSigner, TokenAddress, recipientAddress getOrCreateAssociatedTokenAccount() definition can be seen here: https://solana-labs.github.io/solana-program-library/token/js/modules.html#getOrCreateAssociatedTokenAccount I am doing everything right (I believe). I have checked several times, but still don't know why the error is coming at build time. When I comment out the line getOrCreateAssociatedTokenAccount - error goes away. The problem is the error does not show any stack trace - it says no stack
Problem using PROGMEM with pointer to an int array
my arduino nano drives an LED Matrix. evrything works fine. but my "outline path" ist too big for the SRAM, so i try to put it into PROGMEM. Now reading values from this progmem array leads to totally wrong integers. what am i doing wrong? thx for helping!! bye andre void progStarsWarp() { const static PROGMEM int outlinePath[] = {30, 31, 29, 28, 27, 26, 36, 42, 43, 44, 45, 46, 25, 9, 8, 0, 1, 2, 4, 3, 16, 17, 56, 57, 91, 92, 101, 102, 111, 112, 121, 122, 162, 192, 193, 229, 230, 262, 263, 274, 275, 276, 277, 270, 269, 254, 239, 240, 241, 242, 243, 244, 253, 252, 251, 250, 249, 211, 210, 176, 177, 178, 179, 175, 161, 152, 151, 142, 141, 132, 131, 77, 72, 73, 74, 75, 76, 37, 31}; int *pointerOutlinePath; FastLED.clear(); for (unsigned int i = 0; i < 79; i++) { pointerOutlinePath = &outlinePath[i]; int test = pgm_read_word(pointerOutlinePath); leds.m_LED[outlinePath[test]] = CRGB(getRandomColorValue(), getRandomColorValue(), getRandomColorValue()); } FastLED.show(); delay(60000); }
FastLED on Arduino with int[] Array
I built a LED Matrix with ws2812b LEDs. It is driven by an arduino nano. I use the CLED lib in combination with FastLED. It works fine! Now I have a very simple routine here that wont work although there is no error or warning. The problem seems to be the array which is a path of LEDs I want to activate. So what am I missing? When I activate this on the arduino it freezes. The getRandomColorValue() function simply returns a color value 0-255. that one works like a charm. int outlinePath[] = {30, 31, 29, 28, 27, 26, 26, 42, 43, 44, 45, 46, 25, 9, 8, 0, 1, 2, 4, 3, 16, 17, 56, 57, 91, 92, 101, 102, 111, 112, 121, 122, 162, 192, 193, 229, 230, 262, 263, 274, 275, 276, 277, 270, 269, 254, 239, 240, 241, 242, 243, 244, 253, 252, 251, 250, 249, 211, 210, 176, 177, 178, 179, 175, 161, 152, 151, 142, 141, 132, 131, 77, 72, 73, 74, 75, 76, 37, 31}; FastLED.clear(); for (int i = 0; i < 70; i++) { int test = outlinePath[i]; leds.m_LED[test] = CRGB(getRandomColorValue(), getRandomColorValue(), getRandomColorValue()); } FastLED.show(); delay(1000); And this one works very well: void progFastBlingBling() { FastLED.clear(); leds.m_LED[random(0, anz_LEDs)] = CRGB(getRandomColorValue(), getRandomColorValue(), getRandomColorValue()); FastLED.show(); }
building an array from several ranges
I want to build an array out of several ranges. The following works: array_of_ranges = (70..89).to_a + (184..193).to_a + (224..233).to_a + (296..304).to_a + (336..345).to_a => [70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 296, 297, 298, 299, 300, 301, 302, 303, 304, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345] and it's certainly much nicer than typing in a bunch of numbers - but I suspect there's a nicer, cleaner way to do this. Any ideas?
You can use the splat operator to do this quite cleanly: [*70..89, *184..193, *224..233, *296..304, *336..345] Result: [70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 296, 297, 298, 299, 300, 301, 302, 303, 304, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345]
def arrays_from *ranges ranges.map do |r| r.to_a end.flatten end or def arrays_from *ranges ranges.map( &:to_a ).flatten end arrays_from 70..89, 184..193, 224..233 => [70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233]
sine function on 16-bit microcontroller
I need to generate a sine wave to fill a char table of size 1024. The word size on the microcontroller is 16-bit and floating-point operations are not available. The sine wave itself will oscillate between the value of 0 to 255, with 127 being the center point. Any ideas?
You only actually need to store one quarter of the sine wave -- you can lookup the other three quarters from the first quadrant. So you only need 256 bytes. To generate the values on the micro controller, implement CORDIC. You can store one value, and generate the whole sine wave from that.
Create a precomputed array on your PC. You only have to create a fourth of the array if ROM (or equivalent, such as flash or code segment) space is at a premium, then mirror this part out to the other 768 bytes of the array.
Write a sin table generator in your favorite language using float. Scale and round the results to desired ranges 1024/-127..+128 (you may do that right away). From the table, generate a source file in ASM or C, what ever works better for you. Make sure the generated table in marked "const" in C or make go to a approbiate section in ASM so it goes to FLASH rather than RAM. Include the file in your project. Now intsin(x)1 is: int intsin(int x) limit x // 0..360° or 2PI scale to 1024 read table at x return x You can improve resolution by using the table for the first quadrant only. You can than use positive values only, too (0..255). Then your intsin(x) would need to determine the quadrant and mirror the first quadrant results.
You just generate table on your PC and use it on your MCU. As somebody said you just need a quater period, but to answer your question fully, here are all 1024 chars: for k := 0 to 1023 do buffer[k] := (round(128+127*sin(2*pi*k/1024))); 128, 129, 130, 130, 131, 132, 133, 133, 134, 135, 136, 137, 137, 138, 139, 140, 140, 141, 142, 143, 144, 144, 145, 146, 147, 147, 148, 149, 150, 150, 151, 152, 153, 154, 154, 155, 156, 157, 157, 158, 159, 160, 160, 161, 162, 163, 163, 164, 165, 166, 166, 167, 168, 169, 169, 170, 171, 172, 172, 173, 174, 174, 175, 176, 177, 177, 178, 179, 179, 180, 181, 182, 182, 183, 184, 184, 185, 186, 186, 187, 188, 189, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 199, 200, 200, 201, 202, 202, 203, 204, 204, 205, 206, 206, 207, 207, 208, 209, 209, 210, 210, 211, 212, 212, 213, 213, 214, 214, 215, 216, 216, 217, 217, 218, 218, 219, 219, 220, 221, 221, 222, 222, 223, 223, 224, 224, 225, 225, 226, 226, 227, 227, 228, 228, 229, 229, 230, 230, 230, 231, 231, 232, 232, 233, 233, 234, 234, 234, 235, 235, 236, 236, 237, 237, 237, 238, 238, 239, 239, 239, 240, 240, 240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, 246, 246, 246, 246, 247, 247, 247, 248, 248, 248, 248, 249, 249, 249, 249, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 249, 249, 249, 249, 248, 248, 248, 248, 247, 247, 247, 246, 246, 246, 246, 245, 245, 245, 244, 244, 244, 243, 243, 243, 242, 242, 242, 241, 241, 241, 240, 240, 240, 239, 239, 239, 238, 238, 237, 237, 237, 236, 236, 235, 235, 234, 234, 234, 233, 233, 232, 232, 231, 231, 230, 230, 230, 229, 229, 228, 228, 227, 227, 226, 226, 225, 225, 224, 224, 223, 223, 222, 222, 221, 221, 220, 219, 219, 218, 218, 217, 217, 216, 216, 215, 214, 214, 213, 213, 212, 212, 211, 210, 210, 209, 209, 208, 207, 207, 206, 206, 205, 204, 204, 203, 202, 202, 201, 200, 200, 199, 199, 198, 197, 197, 196, 195, 195, 194, 193, 193, 192, 191, 191, 190, 189, 189, 188, 187, 186, 186, 185, 184, 184, 183, 182, 182, 181, 180, 179, 179, 178, 177, 177, 176, 175, 174, 174, 173, 172, 172, 171, 170, 169, 169, 168, 167, 166, 166, 165, 164, 163, 163, 162, 161, 160, 160, 159, 158, 157, 157, 156, 155, 154, 154, 153, 152, 151, 150, 150, 149, 148, 147, 147, 146, 145, 144, 144, 143, 142, 141, 140, 140, 139, 138, 137, 137, 136, 135, 134, 133, 133, 132, 131, 130, 130, 129, 128, 127, 126, 126, 125, 124, 123, 123, 122, 121, 120, 119, 119, 118, 117, 116, 116, 115, 114, 113, 112, 112, 111, 110, 109, 109, 108, 107, 106, 106, 105, 104, 103, 102, 102, 101, 100, 99, 99, 98, 97, 96, 96, 95, 94, 93, 93, 92, 91, 90, 90, 89, 88, 87, 87, 86, 85, 84, 84, 83, 82, 82, 81, 80, 79, 79, 78, 77, 77, 76, 75, 74, 74, 73, 72, 72, 71, 70, 70, 69, 68, 67, 67, 66, 65, 65, 64, 63, 63, 62, 61, 61, 60, 59, 59, 58, 57, 57, 56, 56, 55, 54, 54, 53, 52, 52, 51, 50, 50, 49, 49, 48, 47, 47, 46, 46, 45, 44, 44, 43, 43, 42, 42, 41, 40, 40, 39, 39, 38, 38, 37, 37, 36, 35, 35, 34, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29, 29, 28, 28, 27, 27, 26, 26, 26, 25, 25, 24, 24, 23, 23, 22, 22, 22, 21, 21, 20, 20, 19, 19, 19, 18, 18, 17, 17, 17, 16, 16, 16, 15, 15, 15, 14, 14, 14, 13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 19, 19, 19, 20, 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 46, 46, 47, 47, 48, 49, 49, 50, 50, 51, 52, 52, 53, 54, 54, 55, 56, 56, 57, 57, 58, 59, 59, 60, 61, 61, 62, 63, 63, 64, 65, 65, 66, 67, 67, 68, 69, 70, 70, 71, 72, 72, 73, 74, 74, 75, 76, 77, 77, 78, 79, 79, 80, 81, 82, 82, 83, 84, 84, 85, 86, 87, 87, 88, 89, 90, 90, 91, 92, 93, 93, 94, 95, 96, 96, 97, 98, 99, 99, 100, 101, 102, 102, 103, 104, 105, 106, 106, 107, 108, 109, 109, 110, 111, 112, 112, 113, 114, 115, 116, 116, 117, 118, 119, 119, 120, 121, 122, 123, 123, 124, 125, 126, 126, 127